Страница 36 из 71
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 11:12
MX_Master
На данный момент не вижу никакого способа корректировки кривой напряжений на выходе. Кроме как программно подкручивать скважность входного
ШИМ. Это самый простой вариант. В середине выходного диапазона у нас самое большое отклонение, на
500mV. По краям всё боль мень пристойно.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 11:18
Lexxa
А обратную связь в МК нельзя завести?
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 11:39
Lunatic
Странный результат. Я делал простой ФНЧ 3-го порядка на 1 операционнике и 1 повторитель на выходе, все точно работало. Ну и чтобы около 0 точно работало нужно отрицательное питание.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 11:42
Lexxa
MX_Master писал(а):На данный момент не вижу никакого способа корректировки кривой напряжений на выходе. Кроме как программно подкручивать скважность входного
ШИМ. Это самый простой вариант. В середине выходного диапазона у нас самое большое отклонение, на
500mV. По краям всё боль мень пристойно.
2019-10-18_140939.jpg
2019-10-18_135703.jpg
2019-10-18_140857.jpg
2019-10-18_135543.jpg
Вариант работы на линейном участке не рассматривается?
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 11:58
MX_Master
Lexxa писал(а):А обратную связь в МК нельзя завести?
Быстрее и легче выдать юзеру возможность править таблицу корректировки

И предварительно эту самую таблицу заполнить.
Lexxa писал(а):Вариант работы на линейном участке не рассматривается?
Этот тест дополнительно показывает сколько времени надо ЦАПу, чтобы набрать с нуля нужное напряжение. Линейный участок, это как раз тот, что в конце теста.
Lunatic писал(а):Странный результат. Я делал простой ФНЧ 3-го порядка на 1 операционнике и 1 повторитель на выходе, все точно работало. Ну и чтобы около 0 точно работало нужно отрицательное питание.
Да, отрицательное там будет, потому что это будущий конвертер
pwm/dir >>>
+-10V. Ща проверю твою схему...
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 12:38
MX_Master
Проверил

При скважности
50% получается примерно также как у меня. Симулятор, еси чё, от
easyeda.
Схема для проверки -
https://easyeda.com/editor#mode=sim,id= ... a0c00f3f0b
Моя -
https://easyeda.com/editor#id=d32aad5ea ... a2064043ab
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 13:12
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)
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 13:22
Lunatic
Re: MACH3 ChargePump + аналоговый выход #4
Я из K-Flop делал схему и график снимал. У меня получилось снизу до 2.5В нелинейность и сверху где-то от 9.5В.
Получается снизу около 0 точность низкая, если корректировать в программе. Если оптоизоляция не нужна, я бы не стал такое делать.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 13:48
Сергей Саныч
Задай в симуляции реальную (ненулевую) длительность фронта и спада входного сигнала. Хотя бы по 10нс.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 15:08
Impartial
То что вы показываете это переходной процесс.
Выясните коэффициент усиления по постоянному току подав на вход 5 вольт и посмотрите напряжение на выходе.
Только после переходного процесса. Где то через 0.5с. Там примерно чуть больше 2.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 18 окт 2019, 17:08
MX_Master
Сергей Саныч, как обычно, прав! Что бы мы без него делали

И действительно, если у ШИМ генератора выставить ненулевые задержки фронта/спада, линейность вывода встаёт на место. Входная скважность
50% теперь соответствует
5V на выходе.
ЗЫ в симуляторах я полный новичок

Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 21 окт 2019, 16:42
MX_Master
Блин, что-то никак не придумаю, может, кто подскажет.
ДАНО
- Для каждого аналогового выхода (+-10V) у нас имеется 1 пин аппаратного ШИМ (0..5V) и 1 пин для смены направления. Второй пин аппаратно ШИМ не выводит, так что источником ШИМ всегда является 1-ый пин.
ТРЕБУЕТСЯ
- Получить отрицательный диапазон напряжений на выходе LM358.
ВАРИАНТЫ
- Первая идея - создать ШИМ с обратной полярностью (0..-5V) из оригинала, и как-то переключаться между двумя источниками ШИМ пином направления. Пока не придумал как. Буду рад совету.
- Вторая мысль - подавать оригинальный ШИМ на первый или второй вход LM358 в зависимости от пина направления. Как переключать тоже пока не придумал. Советы приветствуются.
- Какие ещё варианты могут быть?
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 21 окт 2019, 16:53
Duhas
а пин направления откуда вырос? это так надо или не понятно как по другому?
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 21 окт 2019, 16:55
Serg
MX_Master писал(а):Вторая мысль - подавать оригинальный ШИМ на первый или второй вход LM358 в зависимости от пина направления. Как переключать тоже пока не придумал. Советы приветствуются.
Перед преобразователем поставить "логику", которая будет подавать ШИМ на соотв. вход преобразователя.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 21 окт 2019, 17:24
MX_Master
Duhas писал(а):а пин направления откуда вырос? это так надо или не понятно как по другому?
Выходы
STEP/DIR являются источниками сигналов и для вывода
+-10V. Вместо сигналов
STEP можно выводить
ШИМ. Отсюда мы и имеем два сигнала
PWM/DIR. Можно, канеш, юзать один пин
ШИМ. Взяв за правило, что скважность
0-50% = -10В..0, а
50-100% = 0..+10В. Но что-то в этом способе мне не понравилось. Возможно, тот факт, что при любой скорости (даже 0) аппаратный таймер (вывод ШИМ) никогда не отдыхает.
UAVpilot писал(а):Перед преобразователем поставить "логику", которая будет подавать ШИМ на соотв. вход преобразователя.
Какой-нибудь
rail-to-rail bus switch?
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 21 окт 2019, 17:32
Lunatic
Вычитаем из сигнала (с диапазоном 0-5В) 2,5В и умножаем результат на 4. Получаем сигнал с диапазоном -10В +10В.
Но мне больше нравится как в YAPSC 10V сделано - 2 выхода (видимо на каждый по отдельному таймеру) и они вычитаются на ОУ. Или если есть возможность генерировать не STEP-DIR, а CW-CCW.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 21 окт 2019, 18:24
Serg
MX_Master писал(а):Какой-нибудь rail-to-rail bus switch?
Нет, просто логику (2И, НЕ) и аналоговую часть из YAPSC.
MX_Master писал(а):Можно, канеш, юзать один пин ШИМ. Взяв за правило, что скважность 0-50% = -10В..0, а 50-100% = 0..+10В. Но что-то в этом способе мне не понравилось. Возможно, тот факт, что при любой скорости (даже 0) аппаратный таймер (вывод ШИМ) никогда не отдыхает.
Придётся мутить, чтобы при неактивном enable на аналоговом выходе было ровно 0V.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 21 окт 2019, 18:32
Serg
Но я б делал два отдельных выхода ШИМ (два канала таймера с переключением), а для step/dir использовал-бы один канал таймера и просто ногу от второго канала.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 21 окт 2019, 18:56
MX_Master
UAVpilot писал(а):Но я б делал два отдельных выхода ШИМ (два канала таймера с переключением), а для step/dir использовал-бы один канал таймера и просто ногу от второго канала.
Я б, честно, тоже так сделал. Но вторые каналы есть не у всех таймеров, которые используются для вывода шагов

Все лучшие многоканальные таймеры используются под входы
ABZ с энкодеров. А что осталось - под
pwm/step генераторы.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 22 окт 2019, 00:37
wldev
Есть ещё четырех-канальная микросхема преобразования ШИМ в напряжение LTC2645. Чтобы было всё линейно.!