Страница 1 из 2
Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 16:32
AlexSVC
Решил заняться разработкой драйвера ШД используя семейство микроконтроллеров STM32 а точнее на основе STM32F103C8T6. Предпосылкой стала накопленная информация и идеи которые были получены в результате длительного общения с предыдущим поколением драйверов на основе PIC16F628A. А также толчком послужил реверс DM556 за 35$ и за 15$ купленных на Ali.
Извиняйте, далее многабукв.
Характеристики разрабатываемого драйвера:
1 - Электрические
- Напряжение от 18 до 50V или для SAN36A - 12V;
- Ток потребления до 6А или для SAN36A - 15А;
- Ток двигателя до 5.6А (Пиковый)
- Фазы мотора - 4
2 -Управляющие
- Микрошаг от 1 до 1/64 (более не вижу смысла) или от 200 до 12800 шагов на оборот. Возможность выбора любого кол-ва шагов на оборот (например 211 или 422).
- Фильтрация Step-ов. Планируется алгоритм фильтрации (FStep) подобный Stepmaster.
- Поддержка квадратурного входа используя те-же входы Step\Dir. Квадратурный Step\Dir даст возможность снизить физическую частоту степов в 4 раза с сохранением логической частоты, одновременным повышением помехоустойчивости и как бонус увеличение пропускной способности оптопар без замены на более дорогостоящие (т.е. оптика на 1МГц будет пропускать логических 4 МГц).
- Отдельный вход для связи MDrive (MDrive - протокол мультипроцессорной обработки перемещений это задел для отказа от Step\Dir как атавизма).
- Поддержка энкодера на валу двигателя или линейки на оси.
- Поддержка консоли (RS232\485) для просмотра и установки параметров.
3 - Системы
- SAN36: Система автоподстройки напряжения на силовой части. Дает минимальный нагрев двигателя в режиме стоп или медленное вращение, как бонус минимизируется неравномерность вращения вала, акустический шум, дает мощный антирезонансный эффект. Версия A дает возможность использовать только 12 источник питания, внутренний повышающий преобразователь может поднять напряжение до 36V. Версия B предположительно даст возможность использовать высокие входные напряжения (до ... В).
- FStep: Анализ входных Step-ов, фильтрация и планирование вращения. В режиме MDrive так-же работает.
- SensU: Мониторинг всех возможных параметров. Питания U,I,P; SAN36 U,I,P; температура драйвера\двигателя, мониторинг куллеров двигателя и драйвера, и т.д.
- MDrive: Обмен информацией с ведущей системой (CNCut). Позволяет получить доступ к SensU, управлять драйвером задавая как параметры перемещения так и любые внутренние настройки.
- SelfTest: Самотестирование при включении питания или по команде. Анализ подключенного двигателя (определение сопротивления линии и индуктивности). Диагностика силовой части для выявления неисправности. Так-же планируется 15 регистрируемых ошибок (остановка двигателя, CW CCW лимиты, перегрев драйвера, низкое/высокое напряжение, превышение тока, обрыв обмотки мотора, ошибка связи и пр.)
- RGS: Подавление резонанса (алгоритм как у DM556). SAN36 еще усиливает эффект.
- FanC: Контроль охлаждения драйвера и двигателя.
- Fback: Контроль усилия на двигателе. Позволяет контролировать усилие которое развивает двигатель для совершения работы вращения. Дает возможность регулировать скорость обработки в зависимости от усилия всех участвующих приводов. Так-же может быть использована для анализа качества механики (направляющих, ШВП ...). Работает только через MDrive или смотреть через консоль.
Приветсвую критику и различного рода обсуждение. Насколько интересен и актуален такой драйвер сегодня ? Может я отстал от жизни и это уже прошлый век...
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 16:45
MX_Master
Рекомендую приглядеться к чипу powerSTEP01 (:
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 16:45
Serg
AlexSVC писал(а):Поддержка квадратурного входа используя те-же выходы Step\Dir. Квадратурный Step\Dir даст возможность снизить физическую частоту степов в 4 раза с сохранением логической частоты, одновременным повышением помехоустойчивости и как бонус увеличение пропускной способности оптопар без замены на более дорогостоящие (т.е. оптика на 1МГц будет пропускать логических 4 МГц).
А можно поподробнее?
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 17:21
AlexSVC
MX_Master писал(а):powerSTEP01
Спасибо! Очень интересный чип. Для фрезеров сгодится. Долго не вникал, но то что сразу заметил
1. Это чип. Со всеми вытекающими последствиями. Т.е. транзистор накрылся - весь чип меняй (он 10$ стоит...) и это не транзистор поменять, принципиальная невозможность работы в условиях диких помех (хотел бы я глянуть что с ним будет когда его в плазморез всунут рядом с китайским источником плазмы с ВЧ поджигом

) из за того что логика физически на одном кристалле с силовой частью и изолировать ее ну крайне проблематично. Опять таки нагрев логики от силовой части ну и т.д.
2. Здесь применен старый подход к управлению двигателем (это видно по схеме моста) в DM556 более прогрессивный метод.
Почитаю еще про него...
UAVpilot писал(а):А можно поподробнее?

- Квадратурный сигнал
Степы передаются фронтом сигнала. По сути ничем от энкодера не отличается, кроме того, что сигнал формируется контроллером. Почему все в Step\Dir ударились для меня остается загадкой...
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 17:58
MX_Master
AlexSVC писал(а):1. Это чип. Со всеми вытекающими последствиями. Т.е. транзистор накрылся - весь чип меняй (он 10$ стоит...) и это не транзистор поменять
С точки зрения бизнеса - это хорошо (:
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 18:16
AlexSVC
Почитал повнимательней про powerSTEP01. Этот чип предназначен для управления типа циклических передвижений. Т.е. у него нет обработчика сервоциклов, а в место него набор внутренних макросов.
Для координатных ЧПУ он не подходит. Или я чего пропустил ?
Вот назначение из PDF:
– Stage lighting
– Surveillance systems
– Textile and sewing machines
– Pick and place machines
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 18:46
MX_Master
К этому чипу в пару нужна STM'ка, которая будет делать все, что чип не может, STM32F103C8T6 в самый раз (:
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 18:57
AlexSVC
MX_Master писал(а):К этому чипу в пару нужна STM'ка, которая будет делать все, что чип не может, STM32F103C8T6 в самый раз (:
Чесно говоря сомневаюсь что удастся. В нем нет буфера команд и все исполняется после получения (проблема зазора между концом и началом следующей команды). Причем заканчивается команда всегда остановом мотора. Т.е. когда мотор крутится поменять скорость без останова не выйдет.
И потом : 4 IR2104 + 8 IRF540N = 2,6$ против 10$ и без сложностей с платой\пайкой.
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 19:14
N1X
AlexSVC писал(а):Fback: Контроль усилия на двигателе. Позволяет контролировать усилие которое развивает двигатель для совершения работы вращения. Дает возможность регулировать скорость обработки в зависимости от усилия всех участвующих приводов.
А каким образом?
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 19:26
AlexSVC
N1X писал(а):А каким образом?
Анализируя мощность, которую потребляет драйвер и передавая ее в контроллер ЧПУ (ну там еще математики немного). Она весьма зависит от мощности отбираемой на валу двигателя.
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 19:30
MX_Master
AlexSVC писал(а):MX_Master писал(а):К этому чипу в пару нужна STM'ка, которая будет делать все, что чип не может, STM32F103C8T6 в самый раз (:
Причем заканчивается команда всегда остановом мотора. Т.е. когда мотор крутится поменять скорость без останова не выйдет
И ты в это веришь?
Буфер, кстати не нужен, связь настолько быстрая и короткая, что можно эту пару считать единым чипом. Если хочется обратной связи, в сервопериоде можно спрашивать чё, как и где.
AlexSVC писал(а):И потом : 4 IR2104 + 8 IRF540N = 2,6$ против 10$ и без сложностей с платой\пайкой.
Цена софта, который ты напишешь для комплектухи за 2.6$, будет в десятки раз дороже готового чипа за 10$.
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 19:38
N1X
А точность нормальная получается?
Просто нужно знать сколько в тепло может, иначе на малых мощностях погрешность большая будет, а это в свою очередь требует знания сопротивления меди.
Слишком много костылей как по мне... Векторное управление не рассматривали?
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 20:11
MX_Master
А шо такое KD36 и SAN36A ?
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 20:30
AlexSVC
MX_Master писал(а):И ты в это веришь?
Ну попробуй составить последовательность команд (вручную) для обхода окружности. И прикинь задержки между "я доехал" и "давай едь еще". Может и нормально будет.
Ну и о мега крутом подавлении резонанса с помощью гармоник придется забыть. Как и о всяких дивных режимах работы

. Там тока разные режимы спада\нарастания тока. С этим я уже наигрался.
Как по мне профита меньше чем проблем. Была-б загружаемая таблица синуса и буферированная поддержка сервоцикла с непрямой ОС по току, тогда другое дело.
N1X писал(а):А точность нормальная получается?
Просто нужно знать сколько в тепло может, иначе на малых мощностях погрешность большая будет, а это в свою очередь требует знания сопротивления меди.
Дифференциал и табличная арифметика с аппроксимацией между точками - наше все

. Ясно что перед использованием
обработать напильником откалибровать прийдется.
N1X писал(а):Векторное управление не рассматривали?
Для синхронных моторов с магнитным редуктором (коим является шаговый двигатель) прикрутить векторное управление будет весьма проблематично т.к. потребует энкодера с очень мелким шагом. И боюсь сил у STMки не хватит, там математика сильно злая

Векторное хорошо для шпинделя - где полюсов у ротора допустим 8 , тогда у нас 45 градусов для энкодера, при 1024 имп\об энкодера имеем 128 имп на 45 гр. Для шагвого - 1.8 градуса (далее потеря синхронизма) при 1024 имп\об имее 5 отсчетов - негусто. А более точные очень дороги. В общем овчинка выделки стоит ?
MX_Master писал(а):А шо такое KD36 и SAN36A ?
KD36 - так драйвер обозвал.
SAN36A - система управления напряжением на силовой части драйвера 36 - напряжение до которого может сам поднять. Если это осилю то потом и 80 и ... будет.
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 20:52
MX_Master
AlexSVC писал(а):Была-б загружаемая таблица синуса и буферированная поддержка сервоцикла с непрямой ОС по току, тогда другое дело.
Всё, ухожу, ухожу. Простите, что отвлекаю всякой ерундой

Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 22:07
N1X
AlexSVC писал(а):А более точные очень дороги. В общем овчинка выделки стоит ?
Ну я так, побеседовать. Замечания резонные вполне, согласен

Re: Разработка драйвера шагового двигателя KD36
Добавлено: 19 окт 2018, 23:03
Serg
AlexSVC писал(а):Квадратурный Step\Dir даст возможность снизить физическую частоту степов в 4 раза с сохранением логической частоты, одновременным повышением помехоустойчивости и как бонус увеличение пропускной способности оптопар без замены на более дорогостоящие (т.е. оптика на 1МГц будет пропускать логических 4 МГц).
AlexSVC писал(а):Степы передаются фронтом сигнала.
похоже не видели реальную форму сигнала на выходе оптрона, работающего близко к предельной частоте... Ну да ладно, пробуйте...
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 20 окт 2018, 09:41
N1X
UAVpilot писал(а):похоже не видели реальную форму сигнала на выходе оптрона, работающего близко к предельной частоте...
Особенно актуально для сферического оптрона, стоящего в сферическом устройстве работающем на сферической частоте, да?

О чем речь? Цифры там просто для примера - там 1, а там 4. А герцы, кило герцы, мегагерцы - не важно. Смысл в том, что двухбитная квадратура дает пропускную способность в 4 раза выше, чем однобитный импульсный сигнал - факт.
AlexSVC писал(а):Степы передаются фронтом сигнала.
Ну поправлю. Не фронтом сигнала, а состоянием двух сигналов. Сам фронт
не имеет значения имеет не решающее значение, в этом и плюс кода Грея.
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 25 окт 2018, 13:39
AlexSVC
N1X писал(а):Сам фронт не имеет значения имеет не решающее значение, в этом и плюс кода Грея.
Ну у меня решающее. Это так
инженегры инженеры из ST решили. Таймер на железном уровне ловит именно фронты (даже фильтров для правильного отлова насовали туда) .
Поднимая таймер для работы именно со Step\Dir словил дивность:
1. Если меандр Step шлем и на Dir (перемычка) то таймер дергается на месте. Читая док выяснил, что это запрещенная комбинация для таймера (ну по логике отлова фронта так и есть будет то вперед то назад - что логично).
2. При этом он периодически впадает в еще более дивное состояние, когда Dir инвертируется

. Вот этого я понять не могу.
Самое интересное, что если подать реальный Step Dir а не с генератора, то все замечательно работает.
Все не выходит из головы векторное управление двигателем. Прикидывал как туда прикрутить датчик обратной ЭДС но все оказалось сложнее чем с трехфазным мотором (все фазы всегда включены). Если есть у кого примеры схемотехники, с радостью глянул-бы.
Сегодня наткнулся на это
https://ru.aliexpress.com/item/New-Digi ... Title=true Возникли мысли как-бы его поставить между мотором и нагрузкой...

Но наверно забавно будет выглядеть схема запитки и снятия сигнала (она должна будет быть бесконтактной).
Re: Разработка драйвера шагового двигателя KD36
Добавлено: 25 окт 2018, 17:54
MX_Master
AlexSVC писал(а):Ну у меня решающее. Это так инженегры из ST решили. Таймер на железном уровне ловит именно фронты
Тот, кто не любит собак, просто, не умеет их правильно готовить.