
Основное назначение модуля — управление синхронными бесколлекторными двигателями (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.
Программная часть проекта будет рассмотрена в следующей статье.
