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

Мощность управляемых модулем двигателей может быть в пределах нескольких сотен ватт и напряжение до 30В. Это двигатели различных механизмов и устройств, таких как: 3D-принтеры, автоматические двери, автоматические роллеты, автономные насосы, вентиляторы, замки, электроинструмент, стабилизаторы положения, моторы и сервомеханизмы RC моделей, роботов и проч.

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

Все эти свойства модуля получаются благодаря классической 3-х фазной полумостовой схеме с датчиками тока и напряжения и производительному микроконтроллеру.


(Кликнуть для увеличения)


Для ускорения процесса разработки схемы силовой части был взят за основу один из типовых проектов, предлагаемых фирмой TI.

Я остановился на проекте платы TIDA-00901.

(Кликнуть для увеличения)


Плата обладает хорошими характеристиками: ток до 20 A, мощность двигателя до 200 Вт, номинальное напряжение 12 В. Предназначена для эксплуатации в автомобиле.

В качестве драйвера силовых ключей используется микросхема DRV8305. Некоторые поиски привели к выводу, что это одна из лучших микросхем драйверов для таких приложений.

Очень полезным для разработки является документ Automotive 12 V 200 W (20 A) BLDC Motor Drive Reference Design.

Плата имеет специфическую круглую форму, в качестве управляющего элемента применен контроллер C2000 LaunchPad. К сожалению программное обеспечение предоставляется не полностью открытым в части библиотек управления моторами. C2000 LaunchPad выполнен на базе DSP процессора семейства F2802x Piccolo. Это семейство процессоров специализировано для разработки несложных преобразователей энергии, и не отличается большой универсальностью и объемом ресурсов.

Архитектура модуля.


В данном проекте решено было выполнить модуль в виде составной конструкции из 2-х плат. Основная плата содержит силовой драйвер, подсистему питания и некоторые периферийные функции. На основную плату устанавливается плата процессора. В качестве процессорной выбрана
плата проекта K66BLEZ1 (ещё статьи по этому проекту — 1, 2, 3, 4 ) с микроконтроллером семейства Kinetis фирмы NXP на базе ядра ARM Cortex-M4. (180 МГц, 2 МБ Flash память, 256 КБ ОЗУ + micro SD карта, часы реального времени с автономным питанием, USB device/host high speed, отдельный чип Bluetooth LE 4/ZigBee )


(Кликнуть для увеличения)


Модуль питается в диапазоне напряжений от 8.5 до 30 В. Несколько датчиков температуры — в микроконтроллере, вблизи силовых ключей и один внешний предохраняют модуль и мотор от опасных перегревов. Вся элементная база подобрана для работы при температуре до -40 град. С.

Силовые ключи управления мотором рассчитаны на ток в импульсе до 200 А. Измерение тока производится резистивными шунтами с сопротивлением 0.001 Ом. Благодаря встроенным в микросхему драйвера DRV8305 регулируемым усилителям, модуль способен измерять токи от 300 А и до 0.1 А.

Шина CAN дает возможность объединять множество подобных модулей в общую синхронизированную сеть.

Микросхема MPU-9250 полезна в случае если требуется управление ориентацией модуля в пространстве и инерциальная навигация, а также для мониторинга вибраций и ударов.

Встроенный в модуль DС-DC преобразователь с выходным напряжением 5В рассчитан на ток до 3.5 А. Сам модуль потребляет от этого преобразователя не более 150 мА, остальной запас тока может быть отдан на внешнюю нагрузку с разъема X4. Разъем X4 удобно использовать для подключения элементов освещения и индикации, таких как светодиодные RGB ленты на основе чипов WS2812B и аналогичных. Процессором аппаратно поддерживается формирование на цифровых выходах протокола кодирования бит в формате WS2812B, а также PPM, PCM, PWM кодирование. Аналогично без труда с минимальной загрузкой процессора модуль может принимать PPM и PCM сигналы.

Расчет максимальной частоты переключения и обоснование выбора силовых транзисторов


Перепроверим таблицу сравнения транзисторов, предлагаемую в документе от TI. Все параметры заново выписаны из даташитов.



(Кликнуть для увеличения)


Здесь у меня, как и у специалистов TI выбор пал на CSD1854Q5B. По величине максимального тока это лучший выбор. А частота переключения в 122 КГц далеко уходит за разумный предел достижимый при управлении от семейства Kinetis.

Расчет максимальной пульсации тока и обоснование выбора фильтрующих конденсаторов


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


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

Как подсчитали специалисты TI при указанных на схеме конденсаторах модуль на частоте ШИМ 40 КГц может долгое время питать застопоренный мотор с током через обмотки более 80 А.

Схема основной платы модуля



(Кликнуть для увеличения)



(Кликнуть для увеличения)


Расположение разъёмов


Вид на основную плату сверху:


(Кликнуть для увеличения)


Вид на основную плату снизу


(Кликнуть для увеличения)


Габариты



(Кликнуть для увеличения)


Репозиторий проекта


Все материалы относящиеся к проекту хранятся здесь.
Схема и печатная плата разработаны в среде Altium Designer 17.0.6.
В репозитории можно найти 3D модель сборки в формате STEP.
Там же лежит файл расчетов для DC-DC преобразователя на A8586 в формате Mathcad.

Программная часть проекта будет рассмотрена в следующей статье.
Поделиться с друзьями
-->

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


  1. Smbdy_kiev
    26.04.2017 09:10
    +1

    Вот бы диапазон до 320В расширить (стиралки и холодильники)… Интересно, во что оно в итоге выльется. Всё круто. Реально круто. Но какая цель создания такого модуля? Чем он будет отличаться от инверторов (почему-то так называют подобные платы в бытовой технике) других производителей? Цена-диапазон применений? Спасибо.


  1. Indemsys
    26.04.2017 09:17

    Модуль уже нашел свое применение. От инвертеров он отличается большей интегрированной функциональностью.
    Проект инвертера на 320В я публиковал вот здесь https://habrahabr.ru/post/256611/


  1. greenkpz
    26.04.2017 10:50

    простите, а не изобретаете ли вы «велосипед»?
    вот такой ЕСЦ или подобный ему?
    https://www.banggood.com/ru/FVT-LittleBee-30A-ESC-2-6S-BLHeli-Supports-OneShot125-For-RC-Multirotors-p-1029502.html?rmmds=search


    1. Indemsys
      26.04.2017 10:53

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


  1. shodan_x
    26.04.2017 12:13
    +4

    Приятно видеть проект, в котором автор действительно старался. А не ту фигню которую сейчас публикуют криворукие любители.

    Респект!


  1. melchermax
    26.04.2017 12:32

    Отличная работа! А диоды, показанные на полевиках — это их внутренние «паразитные» или дополнительные? Я читал, что внутренние не слишком подходят для защиты полевиков при индуктивной нагрузке.


  1. madf
    26.04.2017 13:23
    -7

    избыточно, дорого


    1. shodan_x
      26.04.2017 13:27
      +6

      Это был явный пример комментария от любителя ардуино и кучки проводов навесным монтажом.
      Советую автору на такие комменты даже внимания не обращать.


      1. madf
        26.04.2017 14:37
        -5

        А это был явный пример комментария от: недалекого любителя/потребителя, не разбирающегося не в чем и жертвы маркетинга.


  1. RusikR2D2
    26.04.2017 15:53
    +1

    Интересный проект.

    Вопрос: можно ли подключать модельные сенсорные бесколлекторные двигатели?

    30А мало. Было бы интересно, если бы была возможность расширения, для увеличения допустимых токов до 200А или даже больше.

    Если ли обратная связь, чтобы можно было получать информацию о кол-ве совершенных оборотов и положении ротора. (Подключив, к примеру, к Ардуино)

    И последний вопрос: Продаваться будет? :)


    1. Indemsys
      26.04.2017 16:40
      +1

      Да, модельные моторы это одна из задач этого модуля.
      30А это ток который допустим без радиатора.
      С радиатором допустим ток 80А и больше. Сейчас ведутся испытания по определению максимальных режимов.

      Обратная связь конечно же есть. Это все будет описано в следующей статье.

      Да, модуль продается.


      1. k155la3
        26.04.2017 18:08
        -1

        А сколько?


      1. ProLimit
        26.04.2017 19:18
        +1

        При 80A шунты прегреются, или их тоже на радиатор поставите? Вообще, шунты не лучший выбор при таких токах.


        1. Indemsys
          27.04.2017 13:05

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


  1. donvictorio
    26.04.2017 16:25

    Если добавить поддержку энкодера, в проц влить пид и прочие плюшки, + разнообразие интерфейсов управления то получится серводрайвер PMSM.


    1. Indemsys
      26.04.2017 16:41

      Модуль имеет поддержку энкодера. Он и работает серводрайвером.


  1. Dark_Purple
    27.04.2017 00:51
    -1

    Дизайн PCB как-то неочень.., уверен вы можете лучше.


  1. Arxitektor
    27.04.2017 11:59

    А обороты мотора мерить может?


    1. Indemsys
      27.04.2017 13:04
      +1

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


  1. strelok_aka_vc
    03.05.2017 12:27

    Каких усилий будет стоить увеличение напряжения до 100.8 вольт и тока до 300ампер?


  1. buratino
    03.05.2017 12:27

    Как-то непонятно насчет гироскопа. «в случае если требуется управление ориентацией модуля в пространстве и инерциальная навигация, а также для мониторинга вибраций и ударов. „

    вибрации и удары логично измерять, “сидя на моторе», а ориентацию в пространстве — где-то подальше от трясущегося и вибрирующего мотора. В случае коптера у нас есть три мотора и гироскоп логично было бы использовать один, у центрального «думателя»


    1. Indemsys
      03.05.2017 13:28

      Все верно.
      Но есть технологическое оборудования где плата перемещается на платформах и вибрации измеряются не мотора, а платформ.


      1. buratino
        03.05.2017 13:46

        А можно чуть подробнее, чтобы хоть представление иметь о чем речь?


        1. Indemsys
          03.05.2017 13:55

          О стабилизаторах платформ, роботах и проч.


        1. NetBUG
          03.05.2017 16:59

          Например, портальный фрезерный станок и обратная связь по вибрациям


          1. buratino
            03.05.2017 20:41
            +1

            у таких станков подобные контроллеры стоят обычно отдельно, в отдельном неподвижном ящике или шкафу. А для размещения непосредственно на двигателе ИМХО подобная конструкция (с кучкой непаяных разъемов и процессорным блоком на большом разъеме) как-то некомильфо


  1. forgoty
    03.05.2017 13:26

    Подозреваю, что можно на базе этого устройства построить электрокарт с BLDC-приводом. Это будет хорошо.


  1. Archstrogg
    03.05.2017 13:29

    Просьба не пинать сильно за небольшой оффтоп, очень нужно привести в движение bldc движки от hdd, пробовал через l298 и просто по очереди дергать обмотки и шим, бесполезно, еле дергаются, есть трехконтактые и четырехконтактные, посоветуйте контроллер какой, наподобие девайса в статье


    1. Indemsys
      03.05.2017 13:29

      А чем дивайс в статье не подходит?


      1. caracal7
        03.05.2017 14:55

        Очевидно, что подходит. Только где девайс взять, если сам сделать не можешь?
        Ну и мне, как пока чайнику в управлении двигателями(все не соберусь никак купить себе «не серву» и поиграть) тоже интересно возможно ли управлять PMSM приводами с помощью L298 или L293d


        1. Indemsys
          03.05.2017 14:59

          Можно управлять и с помощью L298 и L293d, но их придется ставить два и все равно нужен микроконтроллер.
          Есть же более совершенные решения, например DRV10983


          1. caracal7
            03.05.2017 16:45

            L293d вроде и одного должно хватить.
            DRV10983 — интересная букашка и не дорогая. Почему её в этом открытом проекте не использовали?
            В чем плюс именно такой реализации? И думаю круглая форма платы тоже была бы предпочтительнее чтобы было удобнее сделать её частью сервы.

            P.S. Отличный проект. Ждем продолжения)


            1. Indemsys
              03.05.2017 17:10

              Да точно, L293d должно хватить и одной.

              Частью сервы плату я не мог сделать, поскольку она еще выполняет кучу функций в оборудовании.
              А DRV10983 слишком уж интегрированное решение, и не подходит для всех идей по применению которые есть относительно модуля.


    1. Archstrogg
      04.05.2017 15:57

      К чему вопрос был, была у меня мысль сделать дешевый «форк » Openrov проекта, подводного дрона, кому интересно, идея была проста распберри с камерой, Джанго с видеопотоком, кнопками управления движением и показаниями датчиков, управление проводное 4 жилы ethernet, корпус пвх трубы канализационные, сраный l298 избыточен, китайский мост греется и овермного потребляет, две батареи на 5 и 12 вольт балансировать, крайне неудобно, я за девайс представленный в статье много бы отдал, не больше конечно чем за pi, но купить негде, очередное фуфло, попирался на гигтаймсе, получил повышение зарплаты, и дальше паять платы для лифтов, это конечно все классно, только совок кончился, даёшь даташит, дай где купить, тут не журнал радиотехника, не за идею блять работаем, пропиарить товар, продай, готовы же купить…


      1. Indemsys
        04.05.2017 16:26

        Я могу продать готовые модули. Но розничная цена будет в несколько раз выше pi.
        Она не может быть сравнима с pi поскольку модули делаются небольшими партиями.
        Поэтому это и полностью открытый проект.
        Здесь тестируется концепция и юзкейсы. Предполагается на основе обратной связи совершенствовать проект.
        Продать модули — не самоцель.


        1. Archstrogg
          04.05.2017 18:20

          Спасибо за ответ, мой конкретный юзкейс, уместить в небольшую внутренность подводного Дрона плату, способную управлять тремя четырьмя движками сразу, притом способную насаживаться на распберри и логическое напряжение в 3,3 вольта, притом напряжение питания двигал около 12 вольт, потому как батареи компоновать проще, ваш проект просто супер, выходите уже на рынок


  1. Errbis
    04.05.2017 09:11

    Шунты заменить на датчики Холла. 20А продолжительно, 80А до минуты — это не про шунты. Есть уже интегрированные, с линеаризованной характеристикой.

    Чоппер (или хотя бы разводка под него) — где? Если это электротранспорт, как контролируемо тормозить собираетесь? И вообще для любого инерционного механизма он вам потом понадобится. Вообще рекомендую набирать инвертор не из отдельных ключей, а посмотреть в сторону уже готовых модулей мосфетных, там сразу в одном корпусе 6 ключей, чоппер, термодатчик, иногда выпрямитель и датчики тока.

    Схему с такими токами надо хорошо заземлять. Не вижу дорог заземления под крепежными элементами плат. Двигатель тоже надо заземлять, токи утечки на землю — мерить. Тем более если вы это собираетесь в металлический корпус ставить.


  1. Indemsys
    04.05.2017 09:23

    Спасибо за ценные советы. Все так и сделал в этом проекте https://habrahabr.ru/post/256611/
    А этот проект удешевленный.
    Его можно сказать смысл в том чтобы показать возможность работы в упрощенном варианте.
    Обратные ЭДС моторов в приложениях модуля были изучены, необходимости в чоппере нет.

    Насчет заземления я бы поспорил.
    Заземление нужно для защиты людей от ударов током. Если пытаетесь заземлить общий провод платы силового драйвера, то получите огромную электромагнитную эмиссию в полосе 1...30 МГц и не пройдете сертификацию. Нужно будет ставить глухой качественный экран, просто металлический корпус не поможет.
    А так без заземления можно повесить на все исходящие провода абсорберы и все будет нормально.


    1. Errbis
      06.05.2017 07:24
      +1

      Если это проект удешевленный — зачем мерить напряжение на фазах двигателя? Это минимум +3 качественных АЦП, + вычислительная мощность. Такое делается только в прецизионных сервоприводах, бест-оф-зе-бест. Обычно классическое управление по старшей производной: момент двигателя — скорость двигателя — положение вала. Момент — это ток двигателя, вот током и управляйте. Напряжение вторично, регулятор рэлейный: если тока не хватает — больше скважность ШИМ, если много — меньше.

      Чоппер (или схема рекуперации тока из конденсаторов обратно в батарею) ставится не для «обратных ЭДС». Вот поставил кто-то вашу схему в электровелосипед, к примеру. Вполне ведь возможно? Имеем по минимуму — это 5 м/с скорость, + 60кг масса человека, + сам велик. Кинетическая энергия при движении — 5^2*60/2=750 дж. А если скорость 36 км/ч, а масса в сумме 100кг, то и все 5000дж. При торможении в течении секунды — это мощность 5КВт будет. При каждом торможении надо либо греть двигатель на эти 5КВт, либо куда-то их сливать. Силовые конденсаторы ваши от 5КДж за секунды перезарядятся и взорвутся.
      Без этого можно будет только винты квадрокоптеров крутить да модельки машинок катать. И все. Даже для приводов 3Д-принтера (если он хоть какую-то приемлемую производительность имеет) рекуперация вам понадобится.

      Заземление нужно. Естественно заземляется не драйвер, он вообще гальванически изолирован должен быть. Заземляется двигатель, корпус устройства и минус батареи (если по автомобильному).

      Для программной части следующей статьи неплохо бы определиться на берегу: делаете ли вы шаговик, скалярное управление или векторное.


      1. Indemsys
        06.05.2017 09:44

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

        Что вы называете заземлением в движущихся объектах вроде велосипеда?
        Подключение общего провода драйвера на корпус? Да еще по углам платы?
        Так вы создадите просто еще один источник излучения.