Разработка драйвера шагового двигателя KD36

Контроллеры, драйверы, датчики, управляющие устройства.
AlexSVC
Кандидат
Сообщения: 47
Зарегистрирован: 27 мар 2014, 21:40
Репутация: 16
Настоящее имя: Коршун Александр Иванович
Откуда: Украина, г.Харьков.
Контактная информация:

Разработка драйвера шагового двигателя KD36

Сообщение 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 или смотреть через консоль.
Приветсвую критику и различного рода обсуждение. Насколько интересен и актуален такой драйвер сегодня ? Может я отстал от жизни и это уже прошлый век...
Последний раз редактировалось AlexSVC 19 окт 2018, 17:28, всего редактировалось 1 раз.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение MX_Master »

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

Re: Разработка драйвера шагового двигателя KD36

Сообщение Serg »

AlexSVC писал(а):Поддержка квадратурного входа используя те-же выходы Step\Dir. Квадратурный Step\Dir даст возможность снизить физическую частоту степов в 4 раза с сохранением логической частоты, одновременным повышением помехоустойчивости и как бонус увеличение пропускной способности оптопар без замены на более дорогостоящие (т.е. оптика на 1МГц будет пропускать логических 4 МГц).
А можно поподробнее?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
AlexSVC
Кандидат
Сообщения: 47
Зарегистрирован: 27 мар 2014, 21:40
Репутация: 16
Настоящее имя: Коршун Александр Иванович
Откуда: Украина, г.Харьков.
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение AlexSVC »

MX_Master писал(а):powerSTEP01
Спасибо! Очень интересный чип. Для фрезеров сгодится. Долго не вникал, но то что сразу заметил
1. Это чип. Со всеми вытекающими последствиями. Т.е. транзистор накрылся - весь чип меняй (он 10$ стоит...) и это не транзистор поменять, принципиальная невозможность работы в условиях диких помех (хотел бы я глянуть что с ним будет когда его в плазморез всунут рядом с китайским источником плазмы с ВЧ поджигом :) ) из за того что логика физически на одном кристалле с силовой частью и изолировать ее ну крайне проблематично. Опять таки нагрев логики от силовой части ну и т.д.
2. Здесь применен старый подход к управлению двигателем (это видно по схеме моста) в DM556 более прогрессивный метод.

Почитаю еще про него...
UAVpilot писал(а):А можно поподробнее?
Квадратурный сигнал (2655 просмотров) <a class='original' href='./download/file.php?id=148707&mode=view' target=_blank>Загрузить оригинал (23.99 КБ)</a>
Квадратурный сигнал
Степы передаются фронтом сигнала. По сути ничем от энкодера не отличается, кроме того, что сигнал формируется контроллером. Почему все в Step\Dir ударились для меня остается загадкой...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение MX_Master »

AlexSVC писал(а):1. Это чип. Со всеми вытекающими последствиями. Т.е. транзистор накрылся - весь чип меняй (он 10$ стоит...) и это не транзистор поменять
С точки зрения бизнеса - это хорошо (:
AlexSVC
Кандидат
Сообщения: 47
Зарегистрирован: 27 мар 2014, 21:40
Репутация: 16
Настоящее имя: Коршун Александр Иванович
Откуда: Украина, г.Харьков.
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение AlexSVC »

Почитал повнимательней про powerSTEP01. Этот чип предназначен для управления типа циклических передвижений. Т.е. у него нет обработчика сервоциклов, а в место него набор внутренних макросов.

Для координатных ЧПУ он не подходит. Или я чего пропустил ?
Вот назначение из PDF:
– Stage lighting
– Surveillance systems
– Textile and sewing machines
– Pick and place machines
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение MX_Master »

К этому чипу в пару нужна STM'ка, которая будет делать все, что чип не может, STM32F103C8T6 в самый раз (:
AlexSVC
Кандидат
Сообщения: 47
Зарегистрирован: 27 мар 2014, 21:40
Репутация: 16
Настоящее имя: Коршун Александр Иванович
Откуда: Украина, г.Харьков.
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение AlexSVC »

MX_Master писал(а):К этому чипу в пару нужна STM'ка, которая будет делать все, что чип не может, STM32F103C8T6 в самый раз (:
Чесно говоря сомневаюсь что удастся. В нем нет буфера команд и все исполняется после получения (проблема зазора между концом и началом следующей команды). Причем заканчивается команда всегда остановом мотора. Т.е. когда мотор крутится поменять скорость без останова не выйдет.
И потом : 4 IR2104 + 8 IRF540N = 2,6$ против 10$ и без сложностей с платой\пайкой.
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение N1X »

AlexSVC писал(а):Fback: Контроль усилия на двигателе. Позволяет контролировать усилие которое развивает двигатель для совершения работы вращения. Дает возможность регулировать скорость обработки в зависимости от усилия всех участвующих приводов.
А каким образом?
AlexSVC
Кандидат
Сообщения: 47
Зарегистрирован: 27 мар 2014, 21:40
Репутация: 16
Настоящее имя: Коршун Александр Иванович
Откуда: Украина, г.Харьков.
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение AlexSVC »

N1X писал(а):А каким образом?
Анализируя мощность, которую потребляет драйвер и передавая ее в контроллер ЧПУ (ну там еще математики немного). Она весьма зависит от мощности отбираемой на валу двигателя.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение MX_Master »

AlexSVC писал(а):
MX_Master писал(а):К этому чипу в пару нужна STM'ка, которая будет делать все, что чип не может, STM32F103C8T6 в самый раз (:
Причем заканчивается команда всегда остановом мотора. Т.е. когда мотор крутится поменять скорость без останова не выйдет
И ты в это веришь?

Буфер, кстати не нужен, связь настолько быстрая и короткая, что можно эту пару считать единым чипом. Если хочется обратной связи, в сервопериоде можно спрашивать чё, как и где.
AlexSVC писал(а):И потом : 4 IR2104 + 8 IRF540N = 2,6$ против 10$ и без сложностей с платой\пайкой.
Цена софта, который ты напишешь для комплектухи за 2.6$, будет в десятки раз дороже готового чипа за 10$.
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение N1X »

А точность нормальная получается?
Просто нужно знать сколько в тепло может, иначе на малых мощностях погрешность большая будет, а это в свою очередь требует знания сопротивления меди.

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

Re: Разработка драйвера шагового двигателя KD36

Сообщение MX_Master »

А шо такое KD36 и SAN36A ?
AlexSVC
Кандидат
Сообщения: 47
Зарегистрирован: 27 мар 2014, 21:40
Репутация: 16
Настоящее имя: Коршун Александр Иванович
Откуда: Украина, г.Харьков.
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение AlexSVC »

MX_Master писал(а):И ты в это веришь?
Ну попробуй составить последовательность команд (вручную) для обхода окружности. И прикинь задержки между "я доехал" и "давай едь еще". Может и нормально будет.
Ну и о мега крутом подавлении резонанса с помощью гармоник придется забыть. Как и о всяких дивных режимах работы :) . Там тока разные режимы спада\нарастания тока. С этим я уже наигрался.
Как по мне профита меньше чем проблем. Была-б загружаемая таблица синуса и буферированная поддержка сервоцикла с непрямой ОС по току, тогда другое дело.
N1X писал(а):А точность нормальная получается?
Просто нужно знать сколько в тепло может, иначе на малых мощностях погрешность большая будет, а это в свою очередь требует знания сопротивления меди.
Дифференциал и табличная арифметика с аппроксимацией между точками - наше все :). Ясно что перед использованием обработать напильником откалибровать прийдется.
N1X писал(а):Векторное управление не рассматривали?
Для синхронных моторов с магнитным редуктором (коим является шаговый двигатель) прикрутить векторное управление будет весьма проблематично т.к. потребует энкодера с очень мелким шагом. И боюсь сил у STMки не хватит, там математика сильно злая :)
Векторное хорошо для шпинделя - где полюсов у ротора допустим 8 , тогда у нас 45 градусов для энкодера, при 1024 имп\об энкодера имеем 128 имп на 45 гр. Для шагвого - 1.8 градуса (далее потеря синхронизма) при 1024 имп\об имее 5 отсчетов - негусто. А более точные очень дороги. В общем овчинка выделки стоит ?
MX_Master писал(а):А шо такое KD36 и SAN36A ?
KD36 - так драйвер обозвал.
SAN36A - система управления напряжением на силовой части драйвера 36 - напряжение до которого может сам поднять. Если это осилю то потом и 80 и ... будет.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение MX_Master »

AlexSVC писал(а):Была-б загружаемая таблица синуса и буферированная поддержка сервоцикла с непрямой ОС по току, тогда другое дело.
Всё, ухожу, ухожу. Простите, что отвлекаю всякой ерундой :hehehe:
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение N1X »

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

Re: Разработка драйвера шагового двигателя KD36

Сообщение Serg »

AlexSVC писал(а):Квадратурный Step\Dir даст возможность снизить физическую частоту степов в 4 раза с сохранением логической частоты, одновременным повышением помехоустойчивости и как бонус увеличение пропускной способности оптопар без замены на более дорогостоящие (т.е. оптика на 1МГц будет пропускать логических 4 МГц).
AlexSVC писал(а):Степы передаются фронтом сигнала.
похоже не видели реальную форму сигнала на выходе оптрона, работающего близко к предельной частоте... Ну да ладно, пробуйте...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение N1X »

UAVpilot писал(а):похоже не видели реальную форму сигнала на выходе оптрона, работающего близко к предельной частоте...
Особенно актуально для сферического оптрона, стоящего в сферическом устройстве работающем на сферической частоте, да? :) О чем речь? Цифры там просто для примера - там 1, а там 4. А герцы, кило герцы, мегагерцы - не важно. Смысл в том, что двухбитная квадратура дает пропускную способность в 4 раза выше, чем однобитный импульсный сигнал - факт.
AlexSVC писал(а):Степы передаются фронтом сигнала.
Ну поправлю. Не фронтом сигнала, а состоянием двух сигналов. Сам фронт не имеет значения имеет не решающее значение, в этом и плюс кода Грея.
AlexSVC
Кандидат
Сообщения: 47
Зарегистрирован: 27 мар 2014, 21:40
Репутация: 16
Настоящее имя: Коршун Александр Иванович
Откуда: Украина, г.Харьков.
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение AlexSVC »

N1X писал(а):Сам фронт не имеет значения имеет не решающее значение, в этом и плюс кода Грея.
Ну у меня решающее. Это так инженегры инженеры из ST решили. Таймер на железном уровне ловит именно фронты (даже фильтров для правильного отлова насовали туда) .
Поднимая таймер для работы именно со Step\Dir словил дивность:
1. Если меандр Step шлем и на Dir (перемычка) то таймер дергается на месте. Читая док выяснил, что это запрещенная комбинация для таймера (ну по логике отлова фронта так и есть будет то вперед то назад - что логично).
2. При этом он периодически впадает в еще более дивное состояние, когда Dir инвертируется :) . Вот этого я понять не могу.
Самое интересное, что если подать реальный Step Dir а не с генератора, то все замечательно работает.

Все не выходит из головы векторное управление двигателем. Прикидывал как туда прикрутить датчик обратной ЭДС но все оказалось сложнее чем с трехфазным мотором (все фазы всегда включены). Если есть у кого примеры схемотехники, с радостью глянул-бы.
Сегодня наткнулся на это https://ru.aliexpress.com/item/New-Digi ... Title=true Возникли мысли как-бы его поставить между мотором и нагрузкой... :freak: Но наверно забавно будет выглядеть схема запитки и снятия сигнала (она должна будет быть бесконтактной).
Последний раз редактировалось AlexSVC 26 окт 2018, 11:47, всего редактировалось 1 раз.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Разработка драйвера шагового двигателя KD36

Сообщение MX_Master »

AlexSVC писал(а):Ну у меня решающее. Это так инженегры из ST решили. Таймер на железном уровне ловит именно фронты
Тот, кто не любит собак, просто, не умеет их правильно готовить.
Ответить

Вернуться в «Электроника»