Главная » Хабрахабр » Модуль управления силовым преобразователем: разработка и сборка

Модуль управления силовым преобразователем: разработка и сборка

Не для кого не секрет, что сложные современные преобразователи, например, online UPS, работают под управлением DSP/МК или ASIC. Основными поставщиками DSP для силовой электроники являются две компании — Texas Instruments и Infineon, но сегодня речь пойдет о продукции компании STMicroelectronics — серии STM32F334. Данная линейка МК предназначена для управления электроприводом и построения силовых преобразователей: PFC, инверторов, импульсных блоков питания, UPS и прочих.

Старший камень STM32F334R8T6 стоит 5$, имеет на борту необходимый набор периферии (HRPWM, ADC, компараторы) и производительность для построения достаточно мощных преобразователей (десятки кВт) с хорошей надежностью и устойчивостью к отказу. Конечно, серия F334 не может противостоять «мощи» таких популярных решений как TMS320F28335 и прочим, но у нее есть одно важное преимущество — стоимость.

У TI все это имеется, да — дорого, да — сложно купить, но есть и именно поэтому в большинстве современных решений в области электропривода и энергетики стоят TMS320. Для разработчика электроники важна экосистема вокруг того DSP/МК с которым он работает: документация, отладочные средства, примеры кода и железа. Что же — будем исправлять этот недостаток. Компания ST же почему-то обошла вниманием серию F334, хотя документация хорошего качество как и на любой STM32 имеется, а вот примеры железа с полноценным кодом и отладочные платы отсутствуют (игрушка F3348-Disco не считается).

Сегодня я расскажу о 2-м (всего их будет 3) модуле, который позволяет реализовать любую топологию преобразователя и при этом стоит в разы дешевле конкурентов. В своей прошлой статье я рассказал о своем проекте «комплекта разработчика» и даже продемонстрировал один из компонентов — силовой модуль. Проект разумеется открыт и все исходники можно посмотреть в конце данной статьи.

Идея

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

Приведу всего два примера: Давайте теперь посмотрим парочку примеров того, как данную идею уже реализовали другие люди/компании.

  • TMS320F28379D Control card — стоимость 160$. Экосистема отличная, есть отладочные комплексы под нее, но цена… Она небольшая, если вы работаете в зажиточном R&D-центре, а если вы решили собрать UPS для себя или работаете в компании по проще? Да и модуль за 160$ спалить, мне кажется, всем жалко будет;
  • VectorCARD К1921ВК01Т — отличное решение, да еще и на отечественном камне народ в НИИ и ВПКшники ликуют, есть отладочный комплекс в виде частотника, аналог (pin-to-pin) с модулем от ti, но цена — 19 000 руб. Для сурового отечественного индастриала и ВПК дешево, а остальным не очень.

И так, что же хотелось сделать в итоге… Модуль, который можно использовать и как отладочное средство и как компонент в мелкой серии. От сюда ряд требований, которые у меня набрались:

  • Наличие HRPWM и быстрого АЦП
  • RS-485 на борту
  • UART с выходом на разъем для подключения дисплея (совместим с Nextion)
  • Реализация аппаратной защиты на логике
  • Питание 12В, чтобы использовать один AC/DC на 12В модуль и для «мозга» и для драйверов силовой части
  • Стоимость хотя бы в 3 раза ниже стоимости TMS320F28379D Control card, то есть 50$ максимум
  • Вход датчика температуры для радиатора
  • Парочка GPIO, например, реле дернуть
  • Вход и выход сигналов синхронизации, чтобы можно было параллелить работу нескольких устройств

В итоге получилась вот такая структурная схема:

Заказывал я комплектующие на 5 плат, где компоненты обошли в ~70$, то есть 14$/модуль. Стоит сразу отметить, что мне удалось еще и значительно снизить стоимость модуля. Арифметика простая: заказать 5 плат в 4 слоя стоит 80-100$, то есть еще 14-20$ на каждый модуль, согласитесь не гуманно? Тут правда хитрость — это стоимость всех компонентов, но без печатной платы. Те, кому надо 20-30 плат или 100$ вас не смущают, смогут уже сами заказать, благо гербера подготовленные так же будут. При количество 100 штук, стоимость платы уже составляет 1,5$/шт, поэтому в обозримом будущем я планирую заказать 100-200 плат (посмотрю как дешевле выйдет) и у желающих будет возможность купить платы в разы дешевле, чем 14$.

Разработка

В схемотехнике модуля нет ничего сложного и непонятного, для начала предлагаю вам открыть принципиальную схему, чтобы вы понимали о чем речь и я расскажу о том, как структурная схема выше превратилась в готовое решение. Скачать схему можно тут — PDF.

  • У модуля есть 1 «основной разъем», где на 12 пинов выведены питание 12В, парочка GPIO, дополнительный UART (вдруг захотите ESP прикрутить), RS-485 и вход/выход для синхронизации устройств;
  • Имеется 5 каналов, все они абсолютно одинаковые. На каждый канал выведена комплементарная пара High result PWM (HRPWM), которая позволяет управлять полумостом. Так же 2 канала АЦП для реализации обратной связи по току и напряжению и вишенка на торте — вход ошибки (fault). Например, у вас КЗ в силовой части, компаратор засек превышение тока и выдал лог. 1 в знак аварии, так вот подача «1» на данный вход прерывает работу устройства;
  • Сигнал ошибки с входа fault поступает в 2 места: на вход BKIN у микроконтроллера и через инвертор на вход логического элемента AND. Вход BKIN тоже является аппаратной защитой и выключит генерацию ШИМ даже если МК завис, но я захотел перестраховаться и добавил еще логику чтобы она точно разорвала подачу сигнала;
  • На модуле в отдельный разъем CWF-4 выведен интерфейс SWD для удобной отладки, а так же на второй разъем выведен UART и питание для подключения дисплея или связи с другими модулями. Сейчас популярны дисплеи Nextion, поэтому разъем под них рассчитан и еще я делаю свою HMI панель с аналогичным способом связи (UART, +5D, GND);
  • Плата содержит PHY для интерфейса RS485 с терминирующим резистором и ESD защитой. Выбор на данный интерфейс пал по причине, что он есть где угодно, ибо является промышленным стандартом. Например, вы захотите объединить свой инвертор напряжения с дизелем и будет удобно отправлять/получать команды. Да и в любом ПЛК так же есть RS485;
  • Еще установил небольшую энергонезависимую память для хранения настроек или еще чего полезного.

Данная принципиальная схема в итоге превратилась в 4-х слойную печатную плату размером 115х40 мм. В принципе вы можете развести свой вариант в 2 слоя, но габариты вырастут. Мне важно было получить ширину не более 40 мм, чтобы после установки в разъемы PBD общая высота была 47-50 мм — по размеру электролитических конденсаторов 35х50 мм. Выглядит плата следующим образом:

К сожалению когда я заказывал платы, то вместо черной маски указал зеленую — главное фиаско этой ревизии)) Кто не понял как вставляется модуль, то предлагаю посмотреть вот сюда:


Это что-то вроде «материнской платы» для более удобного прототипирования. На первой картинке так же можно заметить некую плату с кучей разъемов и особо без компонентов. Все это позволяет не колхозить кучу проводов. Разъемы BH-10 (IDC-10) раздают те самые 5 каналов управления + на клеммники выведены интерфейсы общения и установлен разъем питания. «Материнские платы» заказывались отдельно, поэтому придут чуть позже и после проверки будут доступные исходники.

Сборка

Как и для прошлого модуля печатные платы были заказаны в PCBway, ребят предоставили бесплатные платы и еще трафарет. Последний существенно облегчил мне жизнь и сэкономил время, 5 плат с 200+ компонентами на каждой были собраны за 1 час. Через 2 недели после заказа мне курьеры принесли вот такую прелесть:


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

трафаретный принтер у меня имеется, а без рамки его туда не закрепить. Трафарет был заказан с рамкой из алюминиевого профиля, т.к. трафарет без рамки весит примерно 400 гр, а с рамкой 1,8 кг. Если принтера у вас нет, то заказывайте без рамки: вы сможете нанести пасту (на пару минут дольше провозитесь) и при этом еще сэкономите деньги, т.к. почта больше 2 кг не возит, только EMS и платить вам придется на 30-40$ больше, так что учтите. Из-за такого веса вы сразу попадаете на доставку курьером, т.к. Сам трафарет выглядит вот так:

Тут пара советов. Теперь необходимо установить плату в принтер и нанести пасту. Во-вторых, пасту храните в холодильнике. Во-первых, если берете пасту на алиэкспресс, то только 500 гр банки, она в них лучшего качества (видимо хранят ее правильно). Наносим пасту на плату: В-третьих, после использования трафарет обязательно вымойте от пасты, обычная губка и капелька моющего (фэри лучше всего) творят чудеса, затем высушите трафарет и после высыхания обмотайте в пищевую пленку, если не будете его использовать больше недели.

После нанесения получаем вот такую заготовку:

Дело в том, что я мог накосячить где-то системе питания и есть вероятность, что +12В попадут на МК и спалят его, а мне не хотелось бы истреблять камни по 5$. На данном этапе я перестрахуюсь: удалю пасту для корпуса LQFP-64 под микроконтроллер STM32F334R8T6. Их я установлю уже в ручную после проверки напряжений +3. Поэтому я запаяю на этом этапе все, кроме микроконтроллера, разъемов и зуммера. Теперь самый скучный этап — устанавливать компоненты, но ничего скоро и домой планирую прикупить себе pick place станок, буду только пить кофе)) 3В и +5В.

Компоненты установлены и теперь отправляем их в печь:

Теперь остается проверить уровни напряжения на выходе dc/dc и если все в норме, то запаиваем оставшиеся компоненты паяльником/феном, идем отмываем плату от остатков флюса и получаем вот такой результат:

2-ISOL с гальванической развязкой. Подключаем программатор, например, китайский свисток st-link, но я вам настоятельно советую приобрести фирмовый st-link v. Если ценник на родной st-link вас пугает, то есть вариант вместе с китайским свистком приобрести и модуль изолятора на Али, они обычно реализованы на ADuM-ах. Тут все как у админов с бекапами: «Одни уже спалили ноутбук и начали использовать изоляторы, другие пока не начали использовать изоляторы». Чтобы не мучиться с цоколевкой при подключении отладчика я сделал шнур для подключения именно этих модулей, теперь точно ошибку при подключение не допустить:

Для этого можно установить утилиту STM32CubeProgrammer. Остается проверить готов ли модуль к работе, читается ли МК, чтобы уже спокойно приступить к написанию кода. Открываем ее, у вас должен определиться ваш отладчик, если вы увидели в правом верхнем углу его id, то нажимаем Connect и если все смонтировано правильно, то увидим id микроконтроллера, ядро, серию самого МК (у меня F334):

Модуль готов с работе и разработке различных преобразователей. Вот и все!

Исходники

  • Принципиальная схема — PDF
  • Список компонентов (BOM) — Excel
  • Gerber-файлы для заказа печатных плат — RAR
  • Проект с pinout для STM32CubeMX — IOC

Заключение

Теперь есть 2 модуля для разработки, этого уже достаточно чтобы собрать преобразователь. Конечно будет и 3-й модуль, но без HMI можно жить, а желающие могут приобрести nextion по своему карману. В следующей статье уже можно будет и собрать полноценный преобразователь, реализовать П- и ПИ-регуляторы о которых так усердно просили в комментариях. Для очевидности результатов последующие статьи будут по конкретным топологиям: их разбор, расчеты, прототипирование, код и начну скорее всего с топологии buck и boost, как самых простых и часто встречающихся.

Благодаря им проект двигается достаточно активно и за пару месяцев мне удалось сделать то, что было лень реализовать предыдущие пару лет. Хотелось бы еще поблагодарить ребят из PCBway, которые помогают с платами любой сложности отличного качества.

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


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Иди-ка ты сам на… или правила общения в команде

Пост-ответ на статью "Иди-ка ты на !@# со своей "токсичностью"". Если бы я последовал советам из этой статьи, мне достаточно было бы проявить эмоцию и сказать автору "Иди-ка ты сам на на ..., ты ничего не понимаешь!". Поэтому давайте разберем ...

[Перевод] Сделал редизайн — потерял миллиард

Исследуем эпичные провалы редизайна и мотаем на ус. Менеджер по продукту заходит в отдел дизайна и заказывает редизайн сайта. «Наш сайт выглядит таким старым! У всех наших конкурентов есть более яркие сайты. Давайте перепроектируем его. Кнопки с разноцветными тенями — ...