Ethernet контроллер для LinuxCNC (STM32, FPGA)
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
На данный момент не вижу никакого способа корректировки кривой напряжений на выходе. Кроме как программно подкручивать скважность входного ШИМ. Это самый простой вариант. В середине выходного диапазона у нас самое большое отклонение, на 500mV. По краям всё боль мень пристойно.
-
Lunatic
- Мастер
- Сообщения: 458
- Зарегистрирован: 09 мар 2015, 20:25
- Репутация: 75
- Настоящее имя: Дмитрий
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Странный результат. Я делал простой ФНЧ 3-го порядка на 1 операционнике и 1 повторитель на выходе, все точно работало. Ну и чтобы около 0 точно работало нужно отрицательное питание.
Последний раз редактировалось Lunatic 18 окт 2019, 11:50, всего редактировалось 1 раз.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Вариант работы на линейном участке не рассматривается?MX_Master писал(а):На данный момент не вижу никакого способа корректировки кривой напряжений на выходе. Кроме как программно подкручивать скважность входного ШИМ. Это самый простой вариант. В середине выходного диапазона у нас самое большое отклонение, на 500mV. По краям всё боль мень пристойно.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Быстрее и легче выдать юзеру возможность править таблицу корректировкиLexxa писал(а):А обратную связь в МК нельзя завести?
Этот тест дополнительно показывает сколько времени надо ЦАПу, чтобы набрать с нуля нужное напряжение. Линейный участок, это как раз тот, что в конце теста.Lexxa писал(а):Вариант работы на линейном участке не рассматривается?
Да, отрицательное там будет, потому что это будущий конвертер pwm/dir >>> +-10V. Ща проверю твою схему...Lunatic писал(а):Странный результат. Я делал простой ФНЧ 3-го порядка на 1 операционнике и 1 повторитель на выходе, все точно работало. Ну и чтобы около 0 точно работало нужно отрицательное питание.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Проверил
При скважности 50% получается примерно также как у меня. Симулятор, еси чё, от easyeda.
Схема для проверки - https://easyeda.com/editor#mode=sim,id= ... a0c00f3f0b
Моя - https://easyeda.com/editor#id=d32aad5ea ... a2064043ab
Схема для проверки - https://easyeda.com/editor#mode=sim,id= ... a0c00f3f0b
Моя - https://easyeda.com/editor#id=d32aad5ea ... a2064043ab
- donvictorio
- Мастер
- Сообщения: 2457
- Зарегистрирован: 11 окт 2012, 16:26
- Репутация: 683
- Настоящее имя: Виктор
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
а чо если взять кусочек схемки из 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)
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)
Re: MACH3 ChargePump + аналоговый выход #4
Я из K-Flop делал схему и график снимал. У меня получилось снизу до 2.5В нелинейность и сверху где-то от 9.5В.
Получается снизу около 0 точность низкая, если корректировать в программе. Если оптоизоляция не нужна, я бы не стал такое делать.
Я из 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)
То что вы показываете это переходной процесс.
Выясните коэффициент усиления по постоянному току подав на вход 5 вольт и посмотрите напряжение на выходе.
Только после переходного процесса. Где то через 0.5с. Там примерно чуть больше 2.
Выясните коэффициент усиления по постоянному току подав на вход 5 вольт и посмотрите напряжение на выходе.
Только после переходного процесса. Где то через 0.5с. Там примерно чуть больше 2.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Сергей Саныч, как обычно, прав! Что бы мы без него делали
И действительно, если у ШИМ генератора выставить ненулевые задержки фронта/спада, линейность вывода встаёт на место. Входная скважность 50% теперь соответствует 5V на выходе.
ЗЫ в симуляторах я полный новичок 
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Блин, что-то никак не придумаю, может, кто подскажет.
ДАНО
ДАНО
- Для каждого аналогового выхода (+-10V) у нас имеется 1 пин аппаратного ШИМ (0..5V) и 1 пин для смены направления. Второй пин аппаратно ШИМ не выводит, так что источником ШИМ всегда является 1-ый пин.
- Получить отрицательный диапазон напряжений на выходе LM358.
- Первая идея - создать ШИМ с обратной полярностью (0..-5V) из оригинала, и как-то переключаться между двумя источниками ШИМ пином направления. Пока не придумал как. Буду рад совету.
- Вторая мысль - подавать оригинальный ШИМ на первый или второй вход LM358 в зависимости от пина направления. Как переключать тоже пока не придумал. Советы приветствуются.
- Какие ещё варианты могут быть?
-
Duhas
- Мастер
- Сообщения: 1961
- Зарегистрирован: 10 окт 2015, 23:25
- Репутация: 285
- Настоящее имя: Андрей
- Откуда: Красноярск
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
а пин направления откуда вырос? это так надо или не понятно как по другому?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Перед преобразователем поставить "логику", которая будет подавать ШИМ на соотв. вход преобразователя.MX_Master писал(а):Вторая мысль - подавать оригинальный ШИМ на первый или второй вход LM358 в зависимости от пина направления. Как переключать тоже пока не придумал. Советы приветствуются.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Выходы STEP/DIR являются источниками сигналов и для вывода +-10V. Вместо сигналов STEP можно выводить ШИМ. Отсюда мы и имеем два сигнала PWM/DIR. Можно, канеш, юзать один пин ШИМ. Взяв за правило, что скважность 0-50% = -10В..0, а 50-100% = 0..+10В. Но что-то в этом способе мне не понравилось. Возможно, тот факт, что при любой скорости (даже 0) аппаратный таймер (вывод ШИМ) никогда не отдыхает.Duhas писал(а):а пин направления откуда вырос? это так надо или не понятно как по другому?
Какой-нибудь rail-to-rail bus switch?UAVpilot писал(а):Перед преобразователем поставить "логику", которая будет подавать ШИМ на соотв. вход преобразователя.
-
Lunatic
- Мастер
- Сообщения: 458
- Зарегистрирован: 09 мар 2015, 20:25
- Репутация: 75
- Настоящее имя: Дмитрий
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Вычитаем из сигнала (с диапазоном 0-5В) 2,5В и умножаем результат на 4. Получаем сигнал с диапазоном -10В +10В.
Но мне больше нравится как в YAPSC 10V сделано - 2 выхода (видимо на каждый по отдельному таймеру) и они вычитаются на ОУ. Или если есть возможность генерировать не STEP-DIR, а CW-CCW.
Но мне больше нравится как в YAPSC 10V сделано - 2 выхода (видимо на каждый по отдельному таймеру) и они вычитаются на ОУ. Или если есть возможность генерировать не STEP-DIR, а CW-CCW.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Нет, просто логику (2И, НЕ) и аналоговую часть из YAPSC.MX_Master писал(а):Какой-нибудь rail-to-rail bus switch?
Придётся мутить, чтобы при неактивном enable на аналоговом выходе было ровно 0V.MX_Master писал(а):Можно, канеш, юзать один пин ШИМ. Взяв за правило, что скважность 0-50% = -10В..0, а 50-100% = 0..+10В. Но что-то в этом способе мне не понравилось. Возможно, тот факт, что при любой скорости (даже 0) аппаратный таймер (вывод ШИМ) никогда не отдыхает.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Но я б делал два отдельных выхода ШИМ (два канала таймера с переключением), а для step/dir использовал-бы один канал таймера и просто ногу от второго канала.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Я б, честно, тоже так сделал. Но вторые каналы есть не у всех таймеров, которые используются для вывода шаговUAVpilot писал(а):Но я б делал два отдельных выхода ШИМ (два канала таймера с переключением), а для step/dir использовал-бы один канал таймера и просто ногу от второго канала.
- wldev
- Мастер
- Сообщения: 1650
- Зарегистрирован: 24 янв 2012, 16:04
- Репутация: 510
- Настоящее имя: Сергей Бочаров
- Откуда: Новосибирск
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Есть ещё четырех-канальная микросхема преобразования ШИМ в напряжение LTC2645. Чтобы было всё линейно.!