Разработка ESC для BLDC. Схема. #1
Хочу поделиться опытом разработки ESC. За время работы накопилось немного опыта и знаний по этой тематике. Написать статью — это как повод и возможность систематизировать в голове всю эту информацию.
ESC — электронное устройство, управляющее скоростью вращения электродвигателя, чаще всего бесколлекторного BLDC. Оно применяется в радиоуправляемых моделях, дронах, квадрокоптерах, электросамокатах, скейтбордах и других устройствах. По сути, в этом случае это драйвер BLDC.
Создание ESC началось в 2024 году в рамках масштабного проекта E-JETSURF. В итоге появились три прототипа плат. Здесь речь пойдет о первой версии. Конечная цель проекта — разработка собственной платы, легко переваривающей 300А+ номинального тока при напряжении питания до 60В, но об этом в другой раз.
В качестве основного микроконтроллера (МК) была выбрана микросхема Atmega328P в DIP-корпусе. AVR-архитектура оказалась предпочтительной из-за обилия информации и примеров на русском языке. DIP-корпус удобен тем, что позволяет вносить изменения в плату после её изготовления за счет наличия большого пустого пространства, что в дальнейшем оказалось оправдано.
Все три версии плат построены на двух микроконтроллерах. Основной МК AVR рулит BLDC, а вспомогательный ESP8266 отвечает за коммуникацию с внешним миром. Впервой версии платы для управления скоростью был использован переменный резистор, поэтому в принципе AVR может обойтись без ESP. МК взаимодействуют между собой через интерфейс I2C. ESP выполняет роль ведущего устройства. В четвертой уже боевой версии платы завершили использование разных МК и перешли на единственный ESP32-S3. Это упростило разработку кода, повысило стабильность и надежность работы ESC.
Первая версия работает только с двигателями, оснащенными встроенными датчиками Холла. Напряжение питания платы от 14 В до 40 В (зависит от применяемого первичного DC-DC Step Down). Максимальный ток зависит от выходных транзисторов в корпусе TO252 DPAK и системы охлаждения. Транзистор AOD2144 (Vds=40 В, Id=120 А) способен в пике с запасом выдержать ток до 50 А при напряжении 20 В, что дает мощность 1 кВт. Но ввиду отсутствия в схеме обратной связи по току, сэйберных цепочек, TVS-диодов не надо пытаться выжать из ESC такую мощность. И лучше брать за правило, что допустимое напряжение используемых компонентов (силовые ключи, защитные диоды и конденсаторы в полумостах) должно быть как минимум в два раза выше напряжения питания.
Для обзора я немного переделал схему, и она отличается от первого прототипа, но зато в ней учтены ошибки и реализованы дополнительные функции. Данный вариант платы можно использовать как учебный для погружения в мир ESC. Даже если в процессе экспериментов сгорят транзисторы и другие компоненты, их легко поменять, и можно дальше экспериментировать с железом и софтом. Схема создана с использованием как выводных, так и SMD компонентов 1206.
Обвязка микроконтроллеров минимальная. ESP8266 используется в виде модуля ESP-12S, в нем уже применена необходимая обвязка. Дополнительно к модулю можно установить электролитический конденсатор по питанию, а параллельно ему поставить керамический на 100 нФ. На схеме они отсутствуют. Ещё одно правило — везде, где только можно, ставить параллельно электролитическому конденсатору небольшой керамический, порядка 100 нФ.
Элементы для сброса и программирования ESP12S выполнен на кнопке K_RES1, В1. У МК Atmega схема сброса выполнена на кнопке RST и резисторе R1. Внешняя тактирующая схема на кварце X1 (можно применять до 20 МГц) и конденсаторах С1 и С2.
Конденсатор С3 по питанию, пин AVCC подключен к 5 В, а AREF через конденсатор С4 к GND.
Сигнал с потенциометра WH148 подключен к ADC3, он управляет скоростью вращения BLDC.
В схеме применяются датчики Холла (не показаны) с открытым коллектором, например Y3144. То есть сигнальный выход должен быть подтянут к питанию через резистор. На схеме это резисторы R5, R7, R8. Сигналы с датчиков Холла подключены к пинам PB0-PB2.
В схеме приема сигнала каждого датчика установлен RC-фильтр нижних частот первого порядка. Он фильтрует сигнал от помех. Для датчика Sns1 это R8 и С7. С номиналами RC можно поэкспериментировать, например, увеличить емкость. Подбор номиналов фильтра — отдельная история.
PD0 и PD1 подключены через резисторы к диодам для световой индикации состояния. Резисторы можно использовать любые в диапазоне номиналов от 220 Ом до 10 кОм, но 220 Ом — это будет слишком ярко.
SDA и SCL через преобразователи уровня соединены с пинами SDA и SCL ESP8266. Преобразователь уровня выполнен на транзисторе 2N7000 и двух резисторах. Номиналы резисторов плюс-минус можно немного менять. Транзистор можно заменить на любой полевой сигнальный. Главное, чтоб емкость затвора и напряжение открытия были небольшими, это влияет на скорость и работоспособность шины I2C.
Полумост строится на базе драйвера IR2108S. Это высоковольтный высокоскоростной драйвер полумоста, предназначенный для управления силовыми MOSFET или IGBT. Он выполняет роль «переходного звена» между логикой МК и затворами силовых ключей. Чип IR2108S уже снят с производства, но его обновлённый аналог IRS2108S полностью совместим и доступен. IR2108S можно заменить на EG2131. На просторах Ali они все в наличии.
Cхема накачки верхнего плеча за счет bootstrap-цепи.
Dead-Time Logic (защита от сквозного тока), внутренняя логика IRS2108S автоматически добавляет паузу между выключением одного ключа и включением другого. Это «железная» защита от короткого замыкания в полумосте, если в прошивке МК будет присутствовать ошибка.
Undervoltage Lockout (UVLO) не откроет ключи, если напряжение питания (VCC или напряжение bootstrap-конденсатора) упадёт ниже безопасного порога. Это предотвращает работу MOSFET в линейном режиме, где они мгновенно сгорят.
Сигналы с МК можно пропустить через небольшие резисторы 100–300 Ом для уменьшения генерации звона и влияния наводок.
В качестве бутстрепного диода применяется быстрый FR104 (Fast Recovery Rectifier). Он рассчитан на постоянный ток 1 А, импульсы до 30 А и обратное напряжение 400 В. При условии питания IRS2108S 12 В, из-за прямого падения напряжения на FR104 (около 1,2 В — 1,3 В), бутстрепный конденсатор заряжается примерно до 10,7 В. Этого напряжения достаточно для надежного открытия ключей. FR104 можно заменить на UF4004 / UF4007 (Ultra-Fast), они значительно быстрее FR104 (50-70 нс против 150 нс). Идеально будет поставить диоды Шоттки SB1100 / SR1100 на 100 В. Они в бутстрепе выигрывают у обычных отсутствием времени обратного восстановления и меньшим падением напряжения.
Емкость блокировочного конденсатора VCC (локальный фильтр) по питанию IRS2108S должна быть как минимум в 10 раз больше емкости бутстрепного конденсатора. Можно установить 22 мкФ (25V, X7R), параллельно зашунтировав его конденсатором 0,1 мкФ для гашения высокочастотных иголок.
Бутстрепный конденсатор работает как локальный изолированный источник питания для цепей управления верхним ключом, когда тот оторван от земли. При ШИМ на верхний ключ, конденсатор подзаряжается каждый такт. Для гарантированного удержания заряда рекомендуется использовать керамические конденсаторы номиналом 2.2 мкФ (X7R, 25V или 50V). Емкость конденсатора рассчитана исходя из требований режима ШИМ на верхнем ключе, блочной 6-шаговой коммутации (верхний ключ открыт весь электрический шаг) и учета деградации керамики.
Диод 1N4148 имеет высокое быстродействие. Время обратного восстановления кремниевого импульсного диода 1N4148 составляет всего 4 нс. Он успевает запереться до того, как драйвер начнет новый цикл заряда. Постоянный ток диода ограничен 150 мА, но пиковый неповторяющийся ток достигает 1–2 А, что более чем достаточно для наносекундного импульса разряда легкого затвора. Затворный резистор имеет номинал 22 Ом. Можно его немного увеличить, но уменьшать уже не рекомендуется.
Стягивающий резистор (pull-down) 10 кОм предотвращает самопроизвольное открытие ключа при плавающем затворе, пока микроконтроллер и драйвер проходят стадию инициализации при подаче питания. Номинал достаточно велик, чтобы ток утечки при открытии не нагружал драйвер.
Защитный диод 1N5819 установлен параллельно выводам Drain-Source (Сток–Исток) силовых ключей инвертора на каждой фазе и предназначен для разгрузка встроенных паразитных диодов MOSFET. Во время защитной паузы мертвого времени (Dead-Time ~540 нс), когда оба ключа полумоста закрыты, ток самоиндукции фазы двигателя вынужден замыкаться через защитные диоды. Внешний диод Шоттки имеет меньшее прямое падение напряжения. Он снижает импульсный нагрев силовых транзисторов во время Dead-Time. Внутренний диод MOSFET закрывается относительно медленно, что при открытии противоположного ключа вызывает кратковременный сквозной бросок тока из шины питания. Диод Шоттки защищает полумост от сквозных токовых ударов. При коммутации индуктивной нагрузки обмоток фазный потенциал уходит в отрицательную область относительно силовой земли. Если потенциал на выводе VS упадет ниже критического, в кристалле IR2108S возникнет тиристорное защелкивание, и микросхема сгорит. Диод Шоттки жестко ограничивает отрицательный выброс напряжения, защищая драйвер полумоста. При использовании 1N5819 не рекомендуется поднимать питание выше 20 В, а лучше ограничить его 16 В, либо заменить на более высоковольтный диод Шоттки.
Транзистор AOD2144 можно заменить на FDD8447L или AOD2606 или другие с похожими характеристиками. AOD2606 может работать до напряжения питания 30 В.
Сглаживающий конденсатор силовой шины 1000 мкФ на каждом полумосту обеспечивает надежное демпфирование индуктивных выбросов от обмоток для удержания напряжения в безопасных рамках. Конденсатор должен относиться строго к специализированным сериям Low-ESR / High Ripple Current (например, Panasonic FM/FR, Rubycon ZLH) и располагаться в непосредственной близости к полумостам каждой из фаз.
При желании, отдавая отчет, что это все повлияет на надежность и удобство эксплуатации схемы, можно из неё убрать некоторые элементы. Безболезненно: ESP-12S и сопутствующую обвязку, включая преобразователи уровня. DCDC на 3,3 В, OLED. Некритично: сигнальные диоды (без них трудно будет делать отладку и тестирование), резисторы в цепях Hin, Lin драйверов IR2108S и pull-down резисторы в цепях затворов. Критично: диоды 1N4148, 1N5819, конденсатор 1000 мкФ 50V, RC-фильтры на сигналы датчиков Холла.
Можно реализовать управление скоростью от стандартного сигнала сервопривода (сервотестера или приемника радиоуправления: импульсы PPM/PWM длительностью 1000–2000 мкс с частотой 50 Гц). Так как более подходящий пин PB0 уже занят, используется пин PC2. Для подключения в условиях мощных импульсных помех ESC требуется классическая защитная и фильтрующая обвязка. Токоограничительный резистор 1 кОм защищает вход MCU, согласовывает входной уровень сигнала и формирует с конденсатором 220 пФ – 470 пФ фильтр низких частот. Он срезает высокочастотный коммутационный звон частотой 30–100 МГц от переключения силовых MOSFET, но вносит задержку нарастания около 0.5 мкс, что не создает погрешности для сервоимпульса длиной 1000–2000 мкс. Стягивающий резистор 100 кОм защищает от обрыва. Если провод сервотестера/приемника случайно отключится, пин не повиснет в воздухе, собирая наводки. Линия будет жестко притянута к логическому «0», и контроллер мгновенно зафиксирует отсутствие сигнала управления и заглушит мотор.
На этом по схеме всё, программная часть в следующей статье.
Ссылка на работу ESC https://youtube.com/shorts/hxShpexjYBY
Еще больше интересных статей
Внешний извещатель.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Farm Manager 3.0: от первой Alpha к реальной работе.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Ультрабюджетный лазерный СО2 станок своими руками
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.


Комментарии и вопросы
Ваш скепсис описывает ровно то...
А зачем напрямую принтером све...
Благодарю за подробный ответ.....
Собираю Stealthmax V2 можно ск...
Прошу помочь разобраться. В 3д...
Мужики, быть может кто нибудь...
Купил Anycubic Mono 4. Пробую...