Розробка

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

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

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

Для розробника електроніки важлива екосистема навколо того DSP/МК з яким він працює: документація, налагоджувальні кошти, приклади коду і заліза. У TI все це є, так — дорого, та — складно купити, але є і саме тому в більшості сучасних рішень в області електропривода та енергетики стоять TMS320. Компанія 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$ на кожен модуль, погодьтеся, не гуманно? При кількість 100 штук, вартість плати вже становить 1,5$/шт, тому в найближчому майбутньому я планую замовити 100-200 плат (подивлюся як дешевше вийде) і у бажаючих буде можливість придбати плати в рази дешевше, ніж 14$. Ті, кому треба 20-30 плат або 100$ вас не бентежать, зможуть вже самі замовити, благо гербера підготовлені так само будуть.

Розробка

У схемотехніці модуля немає нічого складного і незрозумілого, для початку пропоную вам відкрити принципову схему, щоб ви розуміли про що йдеться, і я розповім про те, як структурна схема вище перетворилася в готове рішення. Скачати схему можна тут — 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 гр банки, вона в них кращої якості (мабуть зберігають її правильно). По-друге, пасту зберігайте в холодильнику. По-третє, після використання трафарет обов’язково вимийте від пасти, звичайна губка і крапелька миючого (фэри найкраще) творять чудеса, потім висушіть трафарет і після висихання обмотайте в харчову плівку, якщо не будете його використовувати більше тижня. Пасту наносимо на плату:

Після нанесення отримуємо ось таку заготовку:

На даному етапі я перестрахуюсь: видалю пасту для корпусу LQFP-64 під мікроконтролер STM32F334R8T6. Справа в тому, що я міг накосячілі десь системі живлення і є ймовірність, що +12В потраплять на МК і спалять його, а мені не хотілося б винищувати камені по 5$. Тому я запаяю на цьому етапі всі, крім мікроконтролера, роз’ємів і зумера. Їх я встановлю вже в ручну після перевірки напруги +3.3 В і +5В. Тепер самий нудний етап — встановлювати компоненти, але нічого скоро і додому планую прикупити собі pick place верстат, буду тільки пити каву))

Компоненти встановлені і тепер відправляємо їх у піч:

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

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

Залишається перевірити готовий модуль до роботи, читається чи МК, щоб вже спокійно приступити до написання коду. Для цього можна встановити утиліту STM32CubeProgrammer. Відкриваємо її, у вас повинен визначитися ваш відладчик, якщо ви побачили в правому верхньому кутку його id, то натискаємо Connect і якщо все змонтовано правильно, то побачимо id мікроконтролера, ядро, серію самого МК (у мене F334):

От і все! Модуль готовий роботі і розробці різних перетворювачів.

Исходники

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

Висновок

Тепер є 2 модуля для розробки, цього вже достатньо, щоб зібрати перетворювач. Звичайно буде і 3-й модуль, але без HMI можна жити, а охочі можуть придбати nextion по своїй кишені. У наступній статті вже можна буде і зібрати повноцінний перетворювач, реалізувати П – і ПІ-регулятори про яких так старанно просили в коментарях. Для очевидності результатів наступні статті будуть по конкретних топологиям: їх розбір, розрахунки, прототипування, код і почну швидше за все з топології buck і boost, як найбільш простих і часто зустрічаються.

Хотілося б ще подякувати хлопцям з PCBway, які допомагають з платами будь-якої складності відмінної якості. Завдяки їм проект рухається досить активно і за пару місяців мені вдалося зробити те, що було лінь реалізувати попередні пару років.

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

Related Articles

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Close