Ethernet контроллер для LinuxCNC (STM32, FPGA)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

На данный момент не вижу никакого способа корректировки кривой напряжений на выходе. Кроме как программно подкручивать скважность входного ШИМ. Это самый простой вариант. В середине выходного диапазона у нас самое большое отклонение, на 500mV. По краям всё боль мень пристойно.
2019-10-18_140939.jpg (1933 просмотра) <a class='original' href='./download/file.php?id=170633&mode=view' target=_blank>Загрузить оригинал (190.57 КБ)</a>
2019-10-18_135703.jpg (1933 просмотра) <a class='original' href='./download/file.php?id=170635&mode=view' target=_blank>Загрузить оригинал (193.18 КБ)</a>
2019-10-18_140857.jpg (1933 просмотра) <a class='original' href='./download/file.php?id=170634&mode=view' target=_blank>Загрузить оригинал (143.05 КБ)</a>
2019-10-18_135543.jpg (1933 просмотра) <a class='original' href='./download/file.php?id=170629&mode=view' target=_blank>Загрузить оригинал (121.99 КБ)</a>
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Lexxa »

А обратную связь в МК нельзя завести?
:bender:
Lunatic
Мастер
Сообщения: 458
Зарегистрирован: 09 мар 2015, 20:25
Репутация: 75
Настоящее имя: Дмитрий
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Lunatic »

Странный результат. Я делал простой ФНЧ 3-го порядка на 1 операционнике и 1 повторитель на выходе, все точно работало. Ну и чтобы около 0 точно работало нужно отрицательное питание.
ФНЧ.jpg (1915 просмотров) <a class='original' href='./download/file.php?id=170636&mode=view' target=_blank>Загрузить оригинал (39.29 КБ)</a>
Последний раз редактировалось Lunatic 18 окт 2019, 11:50, всего редактировалось 1 раз.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Lexxa »

MX_Master писал(а):На данный момент не вижу никакого способа корректировки кривой напряжений на выходе. Кроме как программно подкручивать скважность входного ШИМ. Это самый простой вариант. В середине выходного диапазона у нас самое большое отклонение, на 500mV. По краям всё боль мень пристойно.
2019-10-18_140939.jpg
2019-10-18_135703.jpg
2019-10-18_140857.jpg
2019-10-18_135543.jpg
Вариант работы на линейном участке не рассматривается?
:bender:
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Lexxa писал(а):А обратную связь в МК нельзя завести?
Быстрее и легче выдать юзеру возможность править таблицу корректировки :) И предварительно эту самую таблицу заполнить.
Lexxa писал(а):Вариант работы на линейном участке не рассматривается?
Этот тест дополнительно показывает сколько времени надо ЦАПу, чтобы набрать с нуля нужное напряжение. Линейный участок, это как раз тот, что в конце теста.
Lunatic писал(а):Странный результат. Я делал простой ФНЧ 3-го порядка на 1 операционнике и 1 повторитель на выходе, все точно работало. Ну и чтобы около 0 точно работало нужно отрицательное питание.
Да, отрицательное там будет, потому что это будущий конвертер pwm/dir >>> +-10V. Ща проверю твою схему...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Проверил :) При скважности 50% получается примерно также как у меня. Симулятор, еси чё, от easyeda.

Схема для проверки - https://easyeda.com/editor#mode=sim,id= ... a0c00f3f0b
Моя - https://easyeda.com/editor#id=d32aad5ea ... a2064043ab
2019-10-18_153228.jpg (1893 просмотра) <a class='original' href='./download/file.php?id=170640&mode=view' target=_blank>Загрузить оригинал (220.1 КБ)</a>
2019-10-18_153159.jpg (1893 просмотра) <a class='original' href='./download/file.php?id=170641&mode=view' target=_blank>Загрузить оригинал (106.79 КБ)</a>
Аватара пользователя
donvictorio
Мастер
Сообщения: 2457
Зарегистрирован: 11 окт 2012, 16:26
Репутация: 683
Настоящее имя: Виктор
Откуда: Санкт-Петербург
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение donvictorio »

а чо если взять кусочек схемки из KStep?
https://www.dynomotion.com/Help/Schemat ... er_Outputs (Optically isolated PWM to Analog Circuit)
там, конечно, тоже используется программная коррекция, но в довольно узких пределах.
https://www.dynomotion.com/Help/Schemat ... htm#analog (Analog Output)
Lunatic
Мастер
Сообщения: 458
Зарегистрирован: 09 мар 2015, 20:25
Репутация: 75
Настоящее имя: Дмитрий
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Lunatic »

Re: MACH3 ChargePump + аналоговый выход #4
Я из K-Flop делал схему и график снимал. У меня получилось снизу до 2.5В нелинейность и сверху где-то от 9.5В.
Получается снизу около 0 точность низкая, если корректировать в программе. Если оптоизоляция не нужна, я бы не стал такое делать.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Сергей Саныч »

Задай в симуляции реальную (ненулевую) длительность фронта и спада входного сигнала. Хотя бы по 10нс.
Чудес не бывает. Бывают фокусы.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Impartial »

То что вы показываете это переходной процесс.
Выясните коэффициент усиления по постоянному току подав на вход 5 вольт и посмотрите напряжение на выходе.
Только после переходного процесса. Где то через 0.5с. Там примерно чуть больше 2.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Сергей Саныч, как обычно, прав! Что бы мы без него делали :hehehe: И действительно, если у ШИМ генератора выставить ненулевые задержки фронта/спада, линейность вывода встаёт на место. Входная скважность 50% теперь соответствует 5V на выходе.
ЗЫ в симуляторах я полный новичок :freak:
2019-10-18_200511.jpg (1830 просмотров) <a class='original' href='./download/file.php?id=170647&mode=view' target=_blank>Загрузить оригинал (162.18 КБ)</a>
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Блин, что-то никак не придумаю, может, кто подскажет.

ДАНО
  • Для каждого аналогового выхода (+-10V) у нас имеется 1 пин аппаратного ШИМ (0..5V) и 1 пин для смены направления. Второй пин аппаратно ШИМ не выводит, так что источником ШИМ всегда является 1-ый пин.
ТРЕБУЕТСЯ
  • Получить отрицательный диапазон напряжений на выходе LM358.
ВАРИАНТЫ
  • Первая идея - создать ШИМ с обратной полярностью (0..-5V) из оригинала, и как-то переключаться между двумя источниками ШИМ пином направления. Пока не придумал как. Буду рад совету.
  • Вторая мысль - подавать оригинальный ШИМ на первый или второй вход LM358 в зависимости от пина направления. Как переключать тоже пока не придумал. Советы приветствуются.
  • Какие ещё варианты могут быть?
Duhas
Мастер
Сообщения: 1961
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 285
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Duhas »

а пин направления откуда вырос? это так надо или не понятно как по другому?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Serg »

MX_Master писал(а):Вторая мысль - подавать оригинальный ШИМ на первый или второй вход LM358 в зависимости от пина направления. Как переключать тоже пока не придумал. Советы приветствуются.
Перед преобразователем поставить "логику", которая будет подавать ШИМ на соотв. вход преобразователя.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Duhas писал(а):а пин направления откуда вырос? это так надо или не понятно как по другому?
Выходы STEP/DIR являются источниками сигналов и для вывода +-10V. Вместо сигналов STEP можно выводить ШИМ. Отсюда мы и имеем два сигнала PWM/DIR. Можно, канеш, юзать один пин ШИМ. Взяв за правило, что скважность 0-50% = -10В..0, а 50-100% = 0..+10В. Но что-то в этом способе мне не понравилось. Возможно, тот факт, что при любой скорости (даже 0) аппаратный таймер (вывод ШИМ) никогда не отдыхает.
UAVpilot писал(а):Перед преобразователем поставить "логику", которая будет подавать ШИМ на соотв. вход преобразователя.
Какой-нибудь rail-to-rail bus switch?
Lunatic
Мастер
Сообщения: 458
Зарегистрирован: 09 мар 2015, 20:25
Репутация: 75
Настоящее имя: Дмитрий
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Lunatic »

Вычитаем из сигнала (с диапазоном 0-5В) 2,5В и умножаем результат на 4. Получаем сигнал с диапазоном -10В +10В.
Но мне больше нравится как в YAPSC 10V сделано - 2 выхода (видимо на каждый по отдельному таймеру) и они вычитаются на ОУ. Или если есть возможность генерировать не STEP-DIR, а CW-CCW.
yapsc-pwm.png (1705 просмотров) <a class='original' href='./download/file.php?id=170803&mode=view' target=_blank>Загрузить оригинал (13.27 КБ)</a>
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Serg »

MX_Master писал(а):Какой-нибудь rail-to-rail bus switch?
Нет, просто логику (2И, НЕ) и аналоговую часть из YAPSC.
MX_Master писал(а):Можно, канеш, юзать один пин ШИМ. Взяв за правило, что скважность 0-50% = -10В..0, а 50-100% = 0..+10В. Но что-то в этом способе мне не понравилось. Возможно, тот факт, что при любой скорости (даже 0) аппаратный таймер (вывод ШИМ) никогда не отдыхает.
Придётся мутить, чтобы при неактивном enable на аналоговом выходе было ровно 0V.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение Serg »

Но я б делал два отдельных выхода ШИМ (два канала таймера с переключением), а для step/dir использовал-бы один канал таймера и просто ногу от второго канала.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

UAVpilot писал(а):Но я б делал два отдельных выхода ШИМ (два канала таймера с переключением), а для step/dir использовал-бы один канал таймера и просто ногу от второго канала.
Я б, честно, тоже так сделал. Но вторые каналы есть не у всех таймеров, которые используются для вывода шагов :cry: Все лучшие многоканальные таймеры используются под входы ABZ с энкодеров. А что осталось - под pwm/step генераторы.
Аватара пользователя
wldev
Мастер
Сообщения: 1650
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение wldev »

Есть ещё четырех-канальная микросхема преобразования ШИМ в напряжение LTC2645. Чтобы было всё линейно.!
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Ответить

Вернуться в «LinuxCNC»