Каждый год мы приступаем к созданию нового контроллера взамен какого-либо старого. Пришла очередь контроллера сервопривода. Нужно больше универсальности, технологичности, удобства эксплуатации и инсталляции, больше новых программных технологий и готовность к ИИ.

Проект первого контроллера сервоприводов опубликован здесь. Он был сделан на микроконтроллерах Kinetis. Использовался фреймворк на RTOS MQX 4.2. Контроллер хорошо вписался в качестве автоматического доводчика дверей и калиток, где необходима дружественная среда для людей с ограниченными возможностями.

Блок управления автоматической калиткой
Блок управления автоматической калиткой

Для чего предназначен наш сервопривод

Для управления BLDC/PMSM моторами и приводами на их основе, с датчиками Холла или квадратурными энкодерами или без них. Контроллером можно управлять раздвижными и распашными дверями , калитками, шлагбаумами, рольставнями, маркизами, навесами, автоматическими жалюзи. Можно приспособить для самокатов и велосипедов, использовать в манипуляторах и различных моделях техники.

Для чего НЕ предназначен наш сервопривод

Контроллер не управляет шаговыми двигателями и асинхронными высоковольтными двигателями, низко индуктивными авиамодельными BLDC и гибридными моторами.

Возможности контроллера

Выходной 3-фазный драйвер контроллера рассчитан на средний ток оценочно 20А (с типичными условиями конвекции), пиковый ток до 100 А и напряжение 12-30 В. При напряжении 24 В это даёт возможность управлять моторами мощностью до 500 Вт методом векторной модуляции или методом 6-шаговой аппаратной коммутации.

Контроллер имеет интерфейсы полевых шин CAN и RS485. Для локальной связи с компьютером предусмотрен интерфейс USB-C. Диагностика, настройка и индикация режимов выводится на съёмный RGB дисплей 240x240 пикселей. Управлять устройством пользователь может с помощью ручного энкодера с подсветкой, установленного на плате.

Диагностику и логи контроллер накапливает на SD карте. Она же используется для перепрошивки устройства и размещения аудиовизуального контента для вывода на дисплей и динамик.

Сервопривод в качестве сенсора может использовать переменный резистор или квадратурный энкодер.

Часто места установки устройства не предусматривают подводки к нему никаких кабелей кроме питания, иногда остаётся только автономное питание. Поэтому контроллер снабжён универсальным радиотрансивером на отдельном SoC. Это позволяет управлять контроллером дистанционно с брелков, и организовывать контроллеры в сети без необходимости в дополнительных кабелях. Антенна может использоваться либо встроенная, установленная на плате , либо внешняя.

Выбор элементной базы

Главный SoC выбран из экосистемы Synergy. Скажем сразу, что Synergy - семейство не из лёгких. Производятся фирмой Renesas, которая издавна отличается самобытностью в подходе к архитектуре периферии, документированию и поддержке. Демонстрационные примеры нельзя так просто скачать и запустить, их после скачивания надо регенерировать в среде разработки, что часто заканчивается конфликтами версий и ревизий тулсов и сорсов. Тут резкий контраст с экосистемами типа STM32. Розничная цена на чипы Synergy выше средней. Но возможно поэтому данное семейство всегда присутствовало на складах дистрибуторов, даже в разгар кризиса полупроводников. Такая стабильность привлекает при всех прочих сложностях.

SoC Synergy способны выполнять аппаратно 6-шаговую коммутацию для BLDC моторов использую штатную периферию таймеров.

Несмотря на то что Synergy содержат только два независимых АЦП, они могут одновременно сэмплировать 6 разных аналоговых сигналов, благодаря специальному входному модулю сэмплирования. Таким образом снимается проблема корректировки данных для учёта фазовых задержек при работе с 3-фазными сигналами.

Не последнюю роль играет 640 Кбайт внутренней RAM у чипа. Это серьёзно облегчает развёртывание коммуникационных стеков и разнообразных движков ИИ.

Программная экосистема Synergy базируется на Azure RTOS и снабжена пакетом конфигурирования системы наподобие STM32 CubeMX и автогенерации сорсов. Также есть некий слой абстаракции периферии типа HAL и много специфичных драйверов. Предоставляется IDE на базе Eclipse под названием E2Studio с интегрированными тулсами конфигурирования, автогенерации сорсов и отладки

Вид окна IDE E2Studio
Вид окна IDE E2Studio

Радиотрансивер выполнен на чипе EFR32MG24A021F1024IM40. Трансиверы серии EFR32MG24 отличаются уникальной гибкостью распиновки. Нужную альтернативную функцию там можно вывести почти на любой пин. Это сокращает время на освоение чипа, не нужно тщательно планировать и перепроверять подсоединения интерфейсов. Всегда позже можно исправить неточности подключения, программно перенастроив альтернативные функции пинов. Радиотрасивер способен работать по протоколам:

  • Matter

  • OpenThread

  • Zigbee

  • BLE

  • Bluetooth mesh

  • Proprietary 2.4 GHz

  • Несколько перечисленных выше работающие вместе. Например OpenThread и BLE могут работать одновременно.

Программная экосистема EFR32MG24 также имеет развитый конфигуратор внутри IDE Simplicity Studio, автогенератор сорсов, отладчик, компилятор и множество готовых примеров. Эта IDE даже более удобна чем E2Studio, но к сожалению Silicon Labs не делает чипов подобных Synergy.

Вид окна IDE Simplicity Studio
Вид окна IDE Simplicity Studio

Непосредственно силовыми транзисторами управляем микросхема TMC6200-TA. Она очень близка по параметрам микросхеме DRV8305NPHPR, использованной в предыдущей разработке. Поэтому все расчёты проведённые там валидны и здесь.

Схемотехника

Подключение главного Soc
Подключение главного Soc
Периферийные интерфейсы
Периферийные интерфейсы
Питание и силовой 3-фазный драйвер
Питание и силовой 3-фазный драйвер
Родиотрансивер
Родиотрансивер

Схемотехника практически стандартная. Некоторая избыточность резисторов присутствует при подключении управляющих сигналов к микросхеме управления 3-фазным драйвером. Это нужно только лишь потому чтобы обеспечить некую свободу тюнинга при дальнейшей наладке и появлении ошибок подключения.

Плата способна измерять собственное потребление и внутренние напряжения для выявления аномальных состояний. Есть три аналоговых входа для подключения датчиков температуры мотора и потенциометров сервопривода.

Печатная плата

Размер платы 80 на 50 мм. Максимальная высота не более 30 мм при наличии ручного энкодера. Без него и дисплея высота 14 мм без учёта ответных частей разъёмов.

Распределение слоёв платы выглядит так:

Толщина меди выбрана исходя из минимальной величины зазоров, которая равна 0.15 мм. Внутренние слои максимально приближены к верхним для обеспечения лучшей экранировки и минимальных электромагнитных излучений.

Вид платы сверху
Вид платы сверху
Вид платы снизу
Вид платы снизу
3D модель контроллера
3D модель контроллера

По ходу запуска устройства и исправления ошибок планируется проект выложить в открытый доступ вместе с программным обеспечением.

Все схемы, изображения и параметры даны для справки и могут с течением времени сильно варьироваться.

Комментарии (12)


  1. Albert2009Zi
    04.01.2023 23:27
    +1

    Эмм, ламерский вопрос, E1-E6 на схеме CAN и RS485 - это, что, варисторы??? Какую они несут там функцию (для чего они)? Не лучше ли гальванически развязать тогда?


    1. lelik363
      06.01.2023 15:59

      … варисторы??? Какую они несут там функцию (для чего они)? Не лучше ли гальванически развязать тогда?

      Гальваническая изоляция не заменит защитные компоненты — они дополняют друг друга.
      Подробнее можно почитать на analog.com


  1. totalmmaru
    05.01.2023 00:05
    +3

    Господи, как я хочу научиться во всем этом разбираться


    1. D_dMer
      05.01.2023 21:17

      И я, если узнаете как, то возьмите меня с собой!)


  1. sys_Arch
    05.01.2023 00:07
    +1

    Контроллер сервоприводов - не есть абстракция, схемотехническая или алгоритмическая
    исходно - это источник тока, работающий на комплексную нагрузку с нелинейным откликом и термо-механическими ограничениями (учет изменяющегося тогового момента и нагрева обмоток);
    и источник напряжения - работающий на датчик(и) обратной связи со своими передаточными характеристиками, для расчета сигнала(ов) обратной связи (учет изменения передаточной х-ки датчика от изменения амплитуды и формы питающего напряжения).

    Создание или получение математической модели - полной электромеханической нагрузки (двигатель, редуктор, исполнительноый "рычаг", ребра охлаждения итп) и физикоэлектрического отклика от датчика(ов) обратной связи; в том числе для семейства нагрузок и датчиков (ограничения к применению)

    • есть первый шаг к проектированию сервоконтроллера.

    Второй шаг - разработка API, то есть перечня функций которые реализуются для исполнительного объекта ("рычага"), для взаимодействия с внешне управляющей системой (от физических кнопок прямого действия до программируемых скриптов исполнения)..

    После чего возможно получить диапазоны амплитуды и формы токов / напряжений, которые нужно сгенерировать для катушек и интерпретировать от датчиков ОС.

    • чтобы иметь возможность сравнить в итоге на стенде или в полевых условиях, сигналы прямого воздействия, плюс отклика датчиков ОС и механического отклика исполнительного объекта;

    • в том числе для автоматической коррекции параметров управляющего алгоритма.

    Конструкторская, схемотехническая и экономическая задачи, генерации необходимых амплитуд и форм тока и напряжения и обработки электрических сигналов ОС

    • есть завершающая часть проектирования;

    • но не исходная (механическая нагрузка определяет двигатель, двигатель определяет привод).


  1. PKav
    05.01.2023 00:38

    Схемотехника такого драйвера довольно проста. Хотелось бы почитать описание алгоритмов работы, ведь именно в них кроется всё самое интересное.

    Вот только зачем такой микроконтроллер выбран не ясно. В статье описаны одни минусы, а из плюсов только доступность.


    1. beeptec
      05.01.2023 10:09

      Вот только зачем такой микроконтроллер выбран не ясно. В статье описаны одни минусы, а из плюсов только доступность.

      Вот и мне так подумалось. Автор построил программно аппаратный мультитул на весь головняк интеграторам, которые хотят взять простое железо и минимизировать его под свой GUI или то, что уже реализовано его программно аппаратным дизайном под свою удобную платформу.
      Вместо этого он вынужден капаться в Вашем SDK, если Вы его дадите и не поленитесь выложить там реализации под стороннюю попсу, и возводить дополнительные пирамиды. В конечном итоге имеем переизбыток инженерной мысли в простых задачах.
      Я бы назвал статью - "Делаем очередной 101 контроллер...для калитки"
      Ребята? Управление и его защита серваков с шаговиками это интеграция на базе общих контроллеров под универсальные драйвера с гальванической развязкой по питанию и нагрузке, а если это исключительно калитка со шлагбаумом, в таком случае это вполне мусорные 8 бит MCU без излишеств. Будьте ближе к народу.
      Если что, извините за прямоту, но все взято из практики.


      1. Indemsys Автор
        05.01.2023 10:54

        Из вашего текста не понял что вы предлагаете упростить?
        Но косвенно есть ощущение что ваши идеи ведут к усложнению.

        Первое усложнение - в неопределенном понятии "GUI под свою удобную платформу". Т.е. предлагаете делать в самой популярной экосистеме? Но таких две - Ардуино и Малина. Делать на их базе - это явное усложнение и удорожание.

        Второе усложнение - использование шаговиков. Контроллер не настолько универсален чтобы управлять еще и шаговиками. Нет, управления шаговиками точно не будет. Контроллер не предназначен для 3D принтеров.

        Третье усложнение - гальваническая развязка. Наш скромный опыт тысяч инсталляций по всему миру говорит о том, что гальваноразвязка удобна, но не обязательна с современной технологией многослойных плат и принятыми стандартами архитектур систем. Развязка удобна тем, что можно где-то игнорировать правила заземления, где-то правила трассировки. Но такое игнорирование потом все равно проявиться в сбоях какого-то стороннего оборудования. Оборудование работающее с высоким напряжением, типа инвертеров или ПЛК всегда имеют гальвано-изолированный интерфейс, даже самые дешевые китайские частотники. Поэтому практически невозможно встретить ситуацию когда CAN или RS485 нашего контроллера надо изолировать от общей шины. Драйвер мотора тоже не нуждается в изоляции поскольку топология трассировки многократно испытана, цепи затворов оптимизированы и референсы говорят о том же.


  1. Solgo
    05.01.2023 13:28

    Бросилось в глаза управление светодиодами на буферах с открытым стоком 74lvc1g17. Можно было бы использовать на много более дешевый транзистор 2n7002 или bc846 добавив в базовую цепь резистор. Мне кажется над стоимостью готового изделия вы особо не задумывались, раз такой заметный "угол" не срезали.


    1. Indemsys Автор
      05.01.2023 13:54

      Нам 74LVC1G17SE-7 обходится дешевле чем BC846 с резистором.
      Тут надо учесть, что при больших закупках имеет значение только вес кремния и других материалов включая припой.


      1. Solgo
        05.01.2023 14:58

        Посмотрел стоимость на mouser BC846BLT1G при партии 3000 штук стоит 0.027€, 74LVC1G17SE-7 - 0.043€. Резистор 0402 на 10К при партии 1000шт стоит 0.003€. Точек паек одинаковое количество по 5 в каждом варианте.
        Остался вес BC846 + резистор 30мг + 0.65мг = 30.65мг. 74LVC1G17SE-7 - 6мг. Не думаю что разница в 49.3мг сыграет какую-то существенную роль, хотя в варианте с 74LVC1G17SE-7 надо еще дорожку питания прокидывать до микросхем, что "положительно" скажется на увеличении веса. Стоит признать что разница в 0.026€ не такая уж и большая, я думал что будет больше.


        1. Indemsys Автор
          05.01.2023 15:37

          Проект то открытый, вы имеете полное право его копировать и модифицировать как хотите.

          На  74LVC1G17SE ещё предполагалось ШИМ-ить для изменения яркости. На биполярниках такое будет вызывать повышенное потребление.