Публикация была переведена автоматически. Исходный язык: Русский
Всем привет. Я хочу рассказать, о своем пути в разработке проекта на который я потратил кучу времени, спалил несколько транзисторов и микросхем, но в итоге добился нужного результата и собрал понижающий DC/DC преобразователь 24В→1В 100А с цифровым управлением на ПЛИС Altera MAX 10. ПЛИС — Программируемая Логическая Интегральная Схема (на англ. FPGA — Field-Programmable Gate Array), устройство, имеющее множество логических элементов, которые можно выстроить удобным вам способом. Другими словами, это микросхема или процессор, функции которого можно каждый раз менять под свои нужды.
В этой статье будет описан мой путь, мои ошибки, мои выводы. Я изложу в первой части своё начало в основных этапах проекта и некоторые выводы, которые я сделал по ходу разработки.
Мне понадобился очень стабильный и мощный низковольтный источник для одного эксперимента. Готовые модули либо не подходили по параметрам, либо стоили, как маленький автомобиль. И я подумал: «Лучше сделать свой» Оказалось это не так просто и дешево, но очень сильно расширило понимание силовой и цифровой электроники.
В этой серии статей я пройдусь по всем этапам так, как это было на самом деле:
1. Как я сформулировал задачу и чуть не провалился на самом старте.
2. Как рассчитывал компоненты и почему симуляция спасла меня от ошибки.
3. Как разводил платы и что категорически нельзя делать с силовыми цепями.
4. Как осознал возможности ПЛИС.
5. Как писал прошивку, чтобы устройством можно было управлять с компьютера.
6. И как всё это собрал, включил и что из этого вышло.
Главный урок, который я вынес: в проекте 80% успеха — это грамотное планирование и понимание всех процессов. Можно идеально спаять плату, но, если изначально была ошибка в концепции — работать ничего не будет. Поэтому первая статья — именно о том, как я торопился и не продумал проект, прежде чем купить первую деталь.
Изначально я хотел пойти по простому пути: взять готовый многофазный ШИМ-контроллер. Но быстро упёрся в два факта:
ШИМ — Широтно-импульсная модуляция (англ. pulse-width modulation, PWM) — метод управления средним значением напряжения или мощности сигнала за счёт изменения длительности импульсов при постоянной частоте.
1. Управлять 50 фазами (а именно столько нужно для равномерного распределения тока в 100А) — для готовых контроллеров это часто предел или запредельная задача.
2. Мне хотелось полного контроля и возможности гибкой отладки — видеть все параметры в реальном времени, менять алгоритмы на лету.
После изучения литературы и серфинга в интернете я узнал про ПЛИС. Я выявил для себя подходящую ПЛИС с встроенным АЦП — Altera Max 10. Для удобства разработки и отладки проекта была приобретена Макетная плата EK-10M08E144.
АЦП — Аналогово-Цифровой Преобразователь (англ. ADC — Analog-to-Digital Converter), устройство, преобразующее аналоговый сигнал в цифровой. Он нужен для того, чтобы преобразовать сигнал в код, с которым дальше система сможет работать. В большинстве случаев, как и в этом, АЦП преобразует напряжение входного сигнала в цифровой код.
ПЛИС, которое я использовал, отличают следующие характеристики [2]:
- 8000 логических элементов
- 144 пина
- Встроенный АЦП последовательного приближения с разрядностью 12 бит и кумулятивной частотой дискретизации до 1 МSPS
- Пользовательская флеш-память
- 24 встроенных умножителя
- 378 Кб M9K памяти
Что меня убедило в ПЛИС:
- Параллелизм: В ПЛИС я могу создать 50 независимых блоков-генераторов ШИМ, и они будут работать одновременно. Для микроконтроллера такая задача очень сложна.
- Всё в одном: В этой же MAX 10 есть встроенный АЦП. Значит, не нужна внешняя микросхема для измерения тока и напряжения.
- Гибкость: Внутри ПЛИС можно «вшить» процессорное ядро Nios II и писать логику управления на C. Это как иметь микроконтроллер и программируемую логику в одном флаконе.
Итог: Я принял, пожалуй, самое важное решение в проекте — строить управление вокруг ПЛИС.
Устройство на 100А — это по определению опасно. Короткое замыкание на выходе или перегрев могут за секунды спалить кучу денег.
Я заложил два независимых контура, которые должны мгновенно всё отключать:
1. Защита от перегруза по току:
Порог: 115А. Чуть выше рабочего максимума, чтобы не срабатывало зря.
Как работает: АЦП ПЛИС постоянно измеряет ток через шунт. Если больше 115А — программа мгновенно обнуляет все ШИМ-сигналы. Без всяких раздумий.
2. Защита от перегрева:
Порог: +140°C на радиаторе с ключами.
Термистор контактирует с транзистором. Если температура больше 140°C — ШИМ обнуляются.
По началу для того, чтобы проверить выходное напряжение и скважность импульсов управления нужно было подключать осциллограф и для экономии времени был реализован UART интерфейс. Как оказалось с UART интерфейсом намного быстрее и удобнее работать, ведь все изменяющиеся параметры видны сразу. К ПЛИС подключил USB-UART адаптер, и вот что получилось:
YAT (Yet Another Terminal) — бесплатный инструмент для разработки, тестирования и отладки последовательной связи.
Что я сделал в интерфейсе:
Авто-вывод статуса: Раз в секунду устройство само пишет в порт все ключевые параметры:
U = V | I = A | T1 = C | T2 = C | PWM: % | PID: OFF
Одно окно терминала — и полная картина.
Команды с клавиатуры: чтобы не лезть в код, добавил простые команды:
Цифры 0-9 — ручная установка мощности (0%, 10%, ... 90%).
Буква `p` — включить/выключить автоматический режим (ПИД-регулятор).
ПИД-регулятор (пропорционально-интегрально-дифференцирующий регулятор) — устройство в управляющем контуре с обратной связью, которое автоматически поддерживает некоторый параметр процесса на определённом уровне.
Буква `t` — запустить тест (проверить, как работают все фазы).
90% отладки я провёл, просто смотря в это окно и отправляя команды.
И в идеале к этому моменту у меня могло не быть ни одной детали, но был чёткий план:
1. Мозг: ПЛИС Altera MAX 10 на готовой отладочной плате.
2. Страховка: Принцип работы защиты, вшитый в архитектуру.
3. Представление рабочей концепции UART-интерфейса.
Я не был уверен, что всё получится, но хотя бы понимал, что именно я пытаюсь получить.
В следующей статье я расскажу, о конкретных расчётах. Как считал индуктивность дросселя, как выбирал транзисторы и симуляции в PSIM.
PSIM — программное обеспечение для моделирования электронных схем, разработанное специально для использования в силовой электронике и моделировании электропривода.
1. Intel Corporation. Intel® MAX® 10 FPGA Device Overview [Электронный ресурс]. — Intel, 2023. — URL: https://www.intel.com/content/www/us/en/products/details/fpga/max/10.html
2. Коспанов, Т. Передача данных с АЦП ПЛИС Altera Max 10 на ПК. Часть 1 [Электронный ресурс] / Т. Коспанов. — Астана: Astana Hub, 2025. — URL: https://astanahub.com/ru/blog/peredacha-dannykh-s-atsp-plis-altera-max-10-na-pk-chast-21760615739
3. Altera (Intel). Embedded Peripherals IP User Guide [Электронный ресурс] / UG-01085. — 2023. — URL: https://www.intel.com/content/www/us/en/docs/programmable/683130/
4. Коспанов, Т. Передача данных с АЦП ПЛИС Altera Max 10 на ПК. Часть 2 [Электронный ресурс] / Т. Коспанов. — Астана: Astana Hub, 2025. — URL: https://astanahub.com/ru/blog/razrabotka-po-dlia-plis1756626565
Всем привет. Я хочу рассказать, о своем пути в разработке проекта на который я потратил кучу времени, спалил несколько транзисторов и микросхем, но в итоге добился нужного результата и собрал понижающий DC/DC преобразователь 24В→1В 100А с цифровым управлением на ПЛИС Altera MAX 10. ПЛИС — Программируемая Логическая Интегральная Схема (на англ. FPGA — Field-Programmable Gate Array), устройство, имеющее множество логических элементов, которые можно выстроить удобным вам способом. Другими словами, это микросхема или процессор, функции которого можно каждый раз менять под свои нужды.
В этой статье будет описан мой путь, мои ошибки, мои выводы. Я изложу в первой части своё начало в основных этапах проекта и некоторые выводы, которые я сделал по ходу разработки.
Мне понадобился очень стабильный и мощный низковольтный источник для одного эксперимента. Готовые модули либо не подходили по параметрам, либо стоили, как маленький автомобиль. И я подумал: «Лучше сделать свой» Оказалось это не так просто и дешево, но очень сильно расширило понимание силовой и цифровой электроники.
В этой серии статей я пройдусь по всем этапам так, как это было на самом деле:
1. Как я сформулировал задачу и чуть не провалился на самом старте.
2. Как рассчитывал компоненты и почему симуляция спасла меня от ошибки.
3. Как разводил платы и что категорически нельзя делать с силовыми цепями.
4. Как осознал возможности ПЛИС.
5. Как писал прошивку, чтобы устройством можно было управлять с компьютера.
6. И как всё это собрал, включил и что из этого вышло.
Главный урок, который я вынес: в проекте 80% успеха — это грамотное планирование и понимание всех процессов. Можно идеально спаять плату, но, если изначально была ошибка в концепции — работать ничего не будет. Поэтому первая статья — именно о том, как я торопился и не продумал проект, прежде чем купить первую деталь.
Изначально я хотел пойти по простому пути: взять готовый многофазный ШИМ-контроллер. Но быстро упёрся в два факта:
ШИМ — Широтно-импульсная модуляция (англ. pulse-width modulation, PWM) — метод управления средним значением напряжения или мощности сигнала за счёт изменения длительности импульсов при постоянной частоте.
1. Управлять 50 фазами (а именно столько нужно для равномерного распределения тока в 100А) — для готовых контроллеров это часто предел или запредельная задача.
2. Мне хотелось полного контроля и возможности гибкой отладки — видеть все параметры в реальном времени, менять алгоритмы на лету.
После изучения литературы и серфинга в интернете я узнал про ПЛИС. Я выявил для себя подходящую ПЛИС с встроенным АЦП — Altera Max 10. Для удобства разработки и отладки проекта была приобретена Макетная плата EK-10M08E144.
АЦП — Аналогово-Цифровой Преобразователь (англ. ADC — Analog-to-Digital Converter), устройство, преобразующее аналоговый сигнал в цифровой. Он нужен для того, чтобы преобразовать сигнал в код, с которым дальше система сможет работать. В большинстве случаев, как и в этом, АЦП преобразует напряжение входного сигнала в цифровой код.
ПЛИС, которое я использовал, отличают следующие характеристики [2]:
- 8000 логических элементов
- 144 пина
- Встроенный АЦП последовательного приближения с разрядностью 12 бит и кумулятивной частотой дискретизации до 1 МSPS
- Пользовательская флеш-память
- 24 встроенных умножителя
- 378 Кб M9K памяти
Что меня убедило в ПЛИС:
- Параллелизм: В ПЛИС я могу создать 50 независимых блоков-генераторов ШИМ, и они будут работать одновременно. Для микроконтроллера такая задача очень сложна.
- Всё в одном: В этой же MAX 10 есть встроенный АЦП. Значит, не нужна внешняя микросхема для измерения тока и напряжения.
- Гибкость: Внутри ПЛИС можно «вшить» процессорное ядро Nios II и писать логику управления на C. Это как иметь микроконтроллер и программируемую логику в одном флаконе.
Итог: Я принял, пожалуй, самое важное решение в проекте — строить управление вокруг ПЛИС.
Устройство на 100А — это по определению опасно. Короткое замыкание на выходе или перегрев могут за секунды спалить кучу денег.
Я заложил два независимых контура, которые должны мгновенно всё отключать:
1. Защита от перегруза по току:
Порог: 115А. Чуть выше рабочего максимума, чтобы не срабатывало зря.
Как работает: АЦП ПЛИС постоянно измеряет ток через шунт. Если больше 115А — программа мгновенно обнуляет все ШИМ-сигналы. Без всяких раздумий.
2. Защита от перегрева:
Порог: +140°C на радиаторе с ключами.
Термистор контактирует с транзистором. Если температура больше 140°C — ШИМ обнуляются.
По началу для того, чтобы проверить выходное напряжение и скважность импульсов управления нужно было подключать осциллограф и для экономии времени был реализован UART интерфейс. Как оказалось с UART интерфейсом намного быстрее и удобнее работать, ведь все изменяющиеся параметры видны сразу. К ПЛИС подключил USB-UART адаптер, и вот что получилось:
YAT (Yet Another Terminal) — бесплатный инструмент для разработки, тестирования и отладки последовательной связи.
Что я сделал в интерфейсе:
Авто-вывод статуса: Раз в секунду устройство само пишет в порт все ключевые параметры:
U = V | I = A | T1 = C | T2 = C | PWM: % | PID: OFF
Одно окно терминала — и полная картина.
Команды с клавиатуры: чтобы не лезть в код, добавил простые команды:
Цифры 0-9 — ручная установка мощности (0%, 10%, ... 90%).
Буква `p` — включить/выключить автоматический режим (ПИД-регулятор).
ПИД-регулятор (пропорционально-интегрально-дифференцирующий регулятор) — устройство в управляющем контуре с обратной связью, которое автоматически поддерживает некоторый параметр процесса на определённом уровне.
Буква `t` — запустить тест (проверить, как работают все фазы).
90% отладки я провёл, просто смотря в это окно и отправляя команды.
И в идеале к этому моменту у меня могло не быть ни одной детали, но был чёткий план:
1. Мозг: ПЛИС Altera MAX 10 на готовой отладочной плате.
2. Страховка: Принцип работы защиты, вшитый в архитектуру.
3. Представление рабочей концепции UART-интерфейса.
Я не был уверен, что всё получится, но хотя бы понимал, что именно я пытаюсь получить.
В следующей статье я расскажу, о конкретных расчётах. Как считал индуктивность дросселя, как выбирал транзисторы и симуляции в PSIM.
PSIM — программное обеспечение для моделирования электронных схем, разработанное специально для использования в силовой электронике и моделировании электропривода.
1. Intel Corporation. Intel® MAX® 10 FPGA Device Overview [Электронный ресурс]. — Intel, 2023. — URL: https://www.intel.com/content/www/us/en/products/details/fpga/max/10.html
2. Коспанов, Т. Передача данных с АЦП ПЛИС Altera Max 10 на ПК. Часть 1 [Электронный ресурс] / Т. Коспанов. — Астана: Astana Hub, 2025. — URL: https://astanahub.com/ru/blog/peredacha-dannykh-s-atsp-plis-altera-max-10-na-pk-chast-21760615739
3. Altera (Intel). Embedded Peripherals IP User Guide [Электронный ресурс] / UG-01085. — 2023. — URL: https://www.intel.com/content/www/us/en/docs/programmable/683130/
4. Коспанов, Т. Передача данных с АЦП ПЛИС Altera Max 10 на ПК. Часть 2 [Электронный ресурс] / Т. Коспанов. — Астана: Astana Hub, 2025. — URL: https://astanahub.com/ru/blog/razrabotka-po-dlia-plis1756626565