Наш магазин на eBay Наш магазин на AliExpress Наш канал в telegram

Базовая схема для экспериментов с BLDC-моторами (на ATtiny2313)

фото bldc-мотора

Представленная ниже схема является основой для экспериментов с bldc-моторами. Для тех, кто не в курсе, BLDC — это одна из разновидностей синхронных моторов, которая используется, например, в винчестерах, сидирумах, дисководах и т.п. (типа таких, как на картинке справа).

Теорию работы синхронных движков в общем виде можно почитать здесь, чуть конкретнее про BLDC — вот здесь.

Схема позволяет организовать необходимое для питания BLDC-моторов трёхфазное напряжение из обычного однофазного (с помощью ШИМ-модуляции).

Никаких специальных возможностей управления работой мотора (по датчикам Холла или по обратной ЭДС обмоток) в этой схеме не предусмотрено. Про различные варианты такого управления мы поговорим позже, а здесь я постараюсь подробно описать исходя из каких соображений и как рассчитываются элементы именно базовой схемы.

Итак, схема:

простая схема управления bldc-моторами

Как видите, нам понадобятся: 1 контроллер ATtiny2313, 3 микрухи спаренных полевиков FDS4542 (N- и P-channel в одном восьминогом корпусе), 6 биполярных транзисторов (я использовал FMMT2222 — маленькие биполярнички в корпусах SOT23 c маркировкой 1P), 3 диода (я взял LL4148) и некоторое количество всяких резисторов и кондёров. (их номиналы будут указаны ниже).

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

То есть каждое из плеч можно включать и выключать независимо от другого, что даёт возможность получить на выходе полумоста три разных состояния: Hi — выход полумоста подключен к питанию (верхний полевик открыт, нижний — закрыт), Lo — выход полумоста подключен к общему проводу (верхний полевик закрыт, нижний — открыт) и Z — выход полумоста отключен и от питания, и общего провода (оба полевика закрыты).

В принципе, можно получить ещё и четвёртое состояние — когда оба полевика открыты, но в этом случае получится КЗ и один из полевиков просто сгорит. Поэтому такое состояние мы будем считать запрещённым и с ним нам как раз придётся всеми способами бороться.

В схеме предусмотрено отдельное питание для схемы управления (+5В) и для силовой части (+12В), поэтому для верхнего плеча пришлось делать развязку на транзисторах T1, T2. Два транзистора были использованы для того, чтобы умощнить эту развязку и сделать её характеристику симметричной, чтобы она могла не только быстро заряжать, но и разряжать затвор верхнего полевика (то есть это ещё и драйвер).

Нижний полевик управляется без всякого драйвера, напрямую от ноги микроконтроллера.

Резисторы R7, R8 — это необязательные подтяжки, назначение которых — предотвратить самопроизвольные открытия полевиков в тот момент, когда ноги микроконтроллера ещё не настроены на выход и находятся в Z-состоянии (при старте). Соответственно, номиналы этих резисторов не очень важны, они просто должны быть намного больше номиналов резисторов R5 и R6, чтобы не мешать нормальной работе схемы после запуска контроллера. Более того, поскольку нам главное, чтобы полевики оба сразу не открылись (если один откроется — шут с ним), можно оставить только R8. Я так и сделал, — взял номинал резистора R8 равным 10 кОм, а резистор R7 вообще выкинул.

Стоит отметить, что помимо функции подтяжки, R7 может выполнять ещё и функцию борьбы с наводками на линию управления транзистором T2. Ток в этой линии очевидно будет гораздо меньше, чем через R5 и в случае, если такие наводки всё же будут, резистор R7 придётся вернуть (это если вы свою разводку платы будете делать).

Ну что, дальше давайте считать. Исходить будем из двух предпосылок: 1) полевиками нужно рулить максимально быстро, но без фанатизма; 2) высшая математика — удовольствие на любителя (особенно когда есть осциллограф и можно всё проверить на практике). В связи с этими, особой точностью и правильностью я увлекаться не буду, но, по крайней мере, рассчёты позволят на что-то ориентироваться.

Начнём с нижнего полевика (N-канальник). Для максимально быстрого управления этим полевиком нам нужно выжать с ноги микроконтроллера максимальный ток и в то же время эту ногу не поджарить.

Пиковый ток на ногу в документации на ATtiny2313 не указан, поэтому будем исходить из значений, указанных в Absolute maximum ratings — 40 мА. При этом максимальный ток у нас будет протекать в самом начале заряда, когда разность потенциалов на затворе и ножке микроконтроллера максимальна. Таким образом, получается R5=5В/40мА=125 Ом. Ближайшее большее значение стандартного номинала — 150 Ом, но мы возьмём 200 Ом, чтобы был небольшой запас. Максимальный ток при этом получится 5/200=25 мА.

Теперь давайте оценим время переключения нашего полевика с резистором 200 Ом в затворе. Оценить это время можно по формуле t=Qg/I, где Qg — total gate charge (берём из документации на FDS4542), I — ток драйвера (мы возьмём максимальный расчётный зарядный ток, чтобы точно не ошибиться в меньшую сторону). Получаем t=28 нК / 25 мА = 1,12 мкс.

Зачем нам нужно время переключения? Очень просто. Когда мы будем писать программу управления — мы должны будем учитывать, что полевики закрываются не мгновенно и вводить задержки между закрытием полевика в одном плече и открытием полевика в другом плече, во избежание возникновения сквозных токов (когда полевики в обоих плечах приоткрыты).

Переходим к P-канальному полевику. Тут ситуация попроще и ногу контроллера нам нагружать не нужно, зато нужно не спалить биполярные транзисторы и диод.

Резисторы R1 и R3 в обвязке p-канальника — это просто высокоомные подтяжки и их номиналы не должны нас особо сильно волновать, поэтому я для начала взял их по 10 кОм (чтобы токи через них можно было не учитывать) и про них забыл.

Затворные токи здесь определяются резисторами R2 и R4, а сама обвязка работает следующим образом: при открытии транзистора T2 потенциал базы транзистора T1 падает ниже потенциала его эмиттера, T1 закрывается, а затвор полевика разряжается через диод и резистор R4; при закрытии транзистора T2 потенциал базы транзистора T1 растёт быстрее, чем на его эмиттере, что приводит к открытию T1 и резкому заряду затвора через R2.

Сначала разберёмся с зарядом. По документации ток через FMMT2222 может быть до 600 мА, а для LL4148 — до 450 мА импульсный и до 150 постоянный, поэтому ориентироваться будем на диод и возьмём для расчётов, скажем 150 мА (чтобы ничего сильно не грелось). Исходя из этого, получим сопротивление резистора R4 = (12-0,5)В/150мА = 76,6 Ом. Далее аналогично, — возьмём ближайший стандартный номинал больше расчётного — 100 Ом. Пересчитываем обратно в ток, получаем I = 115 мА. Ну что ж, пусть будет так. При этом время заряда можно оценить на уровне t = 36 нК / 115 мА = 313 нс.

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

Теперь проверим, насколько правильно мы выбрали R1. Чтобы транзистор T1 нормально открывался, ток базы должен быть не более чем в h21 раз меньше тока коллектора. Ток коллектора у нас 100 мА, h21 (из доки) не менее 35, значит ток базы нам нужен не менее 2,86 мА. А он у нас получается 12В/10кОм = 1,2 мА. Ну, тогда возьмём R1 = 3,3 кОм. В этом случае ток базы = 12/3,3 = 3,6 мА. Так и оставим.

Тот же расчёт проделаем для транзистора T2. Ток коллектора у него такой же, как и у T1, значит ток базы тоже должен быть не менее 2,86 мА. Значит R6 должен иметь номинал менее 5/2,86=1,75 кОм. Возьмём с запасом резистор на 1 кОм.

В итоге получилось: R1=3,3 кОм, R2=R4=100 Ом, R3=10 кОм, R5=200 Ом, R6=1 кОм, R7 мы выкинули, R8=10 кОм. При этом время переключения нижнего полевика мы ожидаем на уровне 1,12 мкс, а верхнего — на уровне 313 нс.

Что у нас осталось? Во-первых, конденсаторы. С1=С2=20 пФ, С3=100 мкФ, С4=0,1 мкФ. При проектировании платы C3,C4 нужно расположить как можно ближе к силовым ногам ключей. Во-вторых, на схеме не полностью показана обвязка микроконтроллера. Нужно подтянуть ногу MCLR к питанию через резистор 1 — 10 кОм, а так же поставить конденсатор 0,1 мкФ между питанием и общим проводом поближе к ножкам контроллера.

Что ж, — собираем и тестим.

Скачать плату в формате DipTrace 2.3

Готовый девайс:

фото устройства для экспериментов с bldc-моторами

Для снятия осциллограмм была написана тестовая программа, в которой транзисторы специально переключались с интервалами гораздо больше расчётных (на случай, если расчёты окажутся слишком кривыми).

Осциллограммы:

осциллограммы переключений N-канальных транзисторов
осциллограммы переключений P-канальных транзисторов

Как видите, наши рассчёты дали примерно адекватные результаты, по крайней мере корректировать ничего не нужно.

Простейшая программка для контроллера (пуск / стоп / реверс / изменение питающего напряжения и частоты вращения)

Небольшое видео, демонстрирующее работу устройства

Добавить комментарий