Цифровой источник питания синхронного выпрямления Buck-Boost на базе STM32 с открытым исходным кодом

Четырёхканальный Buck-Boost цифровой источник питания на базе STM32G474 с поддержкой входа PD через интерфейс TypeC и входа DC5.5, максимальное входное/выходное напряжение 48В 10А. Это мой дипломный проект, который я открываю, включая принципиальные схемы, печатные платы, исходный код программы, 3D-модели корпуса и другие материалы.

Работа выполнена на среднем уровне, просьба без критики, приветствуются дружеские обсуждения.

Видео демонстрации проекта: https://www.bilibili.com/video/BV1Ui421y7ip/

Открытый исходный код интеллектуальной электронной нагрузки на базе CH32V307, работа конкурса встроенных систем: https://blog.zeruns.com/archives/785.html

Ссылка на открытую платформу立创 для этого проекта: https://url.zeruns.com/noGf0

QQ-группа для обсуждения электроники и микроконтроллеров: 2169025065

Адреса для загрузки материалов находятся в конце статьи.

Аппаратные схемы разработаны с использованием программного обеспечения嘉立创 EDA, которое действительно очень удобно.

Введение

Данный проект представляет собой синхронный выпрямительный Buck-Boost цифровой источник питания на базе STM32. Электрическая схема источника состоит из схемы управления MOSFET, четырёхканальной схемы Buck-Boost, схемы обработки сигналов, схемы протокола быстрой зарядки PD, вспомогательной схемы питания, схемы управления микроконтроллером и других компонентов.

Источник питания может получать питание через интерфейс DC или интерфейс Type-C. Интерфейс Type-C поддерживает связь с зарядным устройством по протоколу быстрой зарядки PD, автоматически запрашивает и получает рабочее напряжение до 20В. Источник использует микроконтроллер STM32G474 для мониторинга входного и выходного напряжения и тока в реальном времени, регулирует коэффициент заполнения PWM выходного сигнала с помощью алгоритма управления PID, реализует защиту от перенапряжения и перетока, а также может отбирать температуру материнской платы для реализации защиты от перегрева. Кроме того, параметры источника можно просматривать в реальном времени через экран OLED и устанавливать выходное напряжение и ток с помощью поворотного энкодера и кнопок. Через второй интерфейс Type-C можно осуществлять связь с хост-компьютером, через программное обеспечение хост-компьютера можно просматривать все параметры и волновые формы источника в реальном времени.

Параметры проектирования

Параметры проектирования источника питания приведены в таблице ниже:

Пункт Параметр
Диапазон входного напряжения 12Vdc~48Vdc
Диапазон входного тока 0~10A
Максимальная выходная мощность 450W
Диапазон выходного напряжения 0.5Vdc~48Vdc
Диапазон выходного тока 0~10A
Пульсация выходного напряжения Размах ≤200mV
Частота переключения 181.333kHz

Фотографии готового изделия

Используя VOFA+ в качестве программного обеспечения хост-компьютера, можно просматривать все параметры источника в реальном времени (входное напряжение и ток, выходное напряжение и ток, температуру материнской платы, температуру MCU, эффективность преобразования источника и т.д.) и изменения волновых форм. Как показано на рисунках ниже.

Диаграмма архитектуры системы

Проектирование аппаратной схемы

Расчёт выбора компонентов

Расчёт индуктивности

В синхронном источнике BUCK-BOOST расчёт индуктивности необходимо проводить с учётом работы в режимах BUCK и BOOST, чтобы обеспечить соответствие требованиям схемы в обоих режимах. Обычно выбор индуктивности основывается на режиме, который предъявляет более высокие требования к индуктивности.

Когда источник работает в режиме BUCK понижающего преобразования, предположим, что максимальное входное напряжение составляет 48В, минимальное выходное напряжение составляет 5В, рассчитаем минимальный коэффициент заполнения PWM:

D_{min} = \frac{V_{out\\_min}}{V_{in\\_max}} = \frac{5V}{48V} = 10.417\\%

Определим колебание тока индуктивности (25% максимального номинального тока пульсации, максимальный номинальный ток составляет 10А):

\\Delta I_L = 25\\% \\cdot I_{out\\_nom} = 25\\% \\times 10A = 2.5A

Рассчитаем минимально необходимую индуктивность BUCK:

L_{minBuck} = \\frac{V_{out\\_min} \\cdot (1 - D_{min})}{\\Delta I_L \\cdot f_{switch}} = \\frac{5V}{2.5A \\times 181333Hz} \\times (1 - 10.417\\%) \\approx 9.88\\mu H

Когда источник работает в режиме BOOST повышающего преобразования, используя номинальное входное напряжение 24В в качестве расчётной точки, рассчитаем коэффициент заполнения PWM:

D_{Bo} = 1 - \\frac{V_{in\\_nom}}{V_{out\\_max}} = 1 - \\frac{24V}{48V} = 50\\%

В режиме Boost при токе 1А (I_{minb}) Boost переходит в непрерывный режим (CCM), рассчитаем индуктивность:

L_{minBoost} = \\frac{V_{out\\_max} \\cdot D_{Bo}(1-D_{Bo})^2}{2 \\cdot I_{minb} \\cdot f_{switch}} = \\frac{48V \\times 50\\% \\times (1 - 50\\%)^2}{2 \\times 1A \\times 181333Hz} = 16.544\\mu H

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

Учитывая вышеизложенные факторы, в данном проекте выбрана индуктивность 22 мкГн в корпусе 1770 с током насыщения более 10А в качестве элемента индуктивности схемы BUCK-BOOST.

Расчёт ёмкости

Для получения хорошей пульсации выходного напряжения установим расчётную пульсацию напряжения на уровне 50 мВ.

\\Delta V_{out} = 0.05V

Выбранная выше индуктивность составляет 22 мкГн, поэтому используем это значение в расчётах:

L_{BB}=22\\mu H

Рассчитаем отдельно минимальную ёмкость, необходимую при работе в режиме BUCK понижающего преобразования и режиме BOOST повышающего преобразования, C_{minBuck} и C_{minBoost}:

C_{minBuck}=\\frac{V_{out\\_min}\\cdot(1-\\frac{V_{out\\_min}}{V_{in\\_max}})}{8\\cdot L_{BB}\\cdot \\Delta V_{out}\\cdot {f_{switch}}^2}=15.48\\mu F
C_{minBoost}=\\frac{I_{out\\_nom}\\cdot(1-\\frac{Vin\\_min}{Vout\\_max})}{\\Delta Vout\\cdot fswitch}=413.6\\mu F

Проектирование требует определённого запаса, а также для более низкой пульсации выходного напряжения выбран один конденсатор низкого ESR ёмкостью 220 мкФ и один обычный электролитический конденсатор ёмкостью 470 мкФ, всего 690 мкФ.

Расчёт выбора MOS

В пределах номинального диапазона входного и выходного напряжения рассчитаем действующее значение тока MOS на входе:

i_{mos\\_rms}=7.098A

При выборе MOSFET номинальный ток I_D MOS-транзистора должен быть в 2 раза больше максимального тока, протекающего через MOS-транзистор (чтобы предотвратить повреждение от ударного тока при отказе или коротком замыкании).

2×i_{mos\\_rms}=14.196A

Номинальное напряжение MOSFET V_{DS} при выборе должно быть больше чем в 1,5 раза максимальное входное напряжение (чтобы предотвратить пробой от скачков напряжения)

1.5×Vin\\_max=72V

После ссылки на вышеуказанные расчёты для обычных сценариев применения можно выбрать MOSFET с номинальным током более 15 ампер (А) и классом напряжения 100 вольт (В). Выбор нижнего MOS-транзистора такой же, как верхнего. Учитывая тепловыделение, для максимального снижения потерь энергии при проводимости и переключении следует отдать предпочтение MOSFET с низким сопротивлением проводимости (R_{DS(on)}) и низкой выходной ёмкостью (Coss).

В данном проекте выбран MOSFET модели CJAC80SN10, производимый компанией Jiangsu Changjing Semiconductor Co., Ltd., это отечественный MOSFET. Он имеет напряжение сток-исток (V_{DS}) 100В и максимальный ток сток-исток (I_D) 80А. Его сопротивление проводимости (R_{DS(on)}) составляет всего 6,2 мОм, эта низкая характеристика сопротивления способствует снижению потерь мощности устройства в состоянии проводимости. Одновременно выходная ёмкость Coss устройства имеет типичное значение 420 пФ, эта относительно низкая ёмкость способствует снижению динамических потерь при переключении. Поэтому CJAC80SN10, удовлетворяя электрическим характеристикам, требуемым проектом, также может эффективно снизить потери энергии и повысить общую эффективность системы.

Проектирование схемы платы питания

Основная силовая схема

На рисунке ниже показана основная силовая схема синхронного BUCK-BOOST источника питания. Слева находится вход. Синхронная схема BUCK понижающего преобразования состоит из MOS-транзисторов Q2 и Q4 и индуктивности L1. Синхронная схема BOOST повышающего преобразования состоит из MOS-транзисторов Q3 и Q5 и индуктивности L1. Между затвором и истоком каждого MOS-транзистора параллельно подключен резистор 10 кОм, чтобы обеспечить, что затвор MOS не висит в воздухе и предотвратить ошибочное включение.

Основная силовая схема в целом имеет симметричную структуру слева направо. На входных и выходных портах установлены по одному электролитическому конденсатору 470 мкФ/63В и одному твёрдотельному алюминиевому электролитическому конденсатору 220 мкФ/63В. Кроме того, есть 2 небольших конденсатора MLCC (многослойные керамические конденсаторы) параметрами 10 мкФ/50В для фильтрации высокочастотных помех на портах. R9 и R10 служат в качестве фиктивных нагрузок на входных и выходных портах, позволяя быстро рассеивать остаточную энергию в схеме при отключении источника. R13 и R14 — это высокоточные резисторы 5 мОм, используемые для отбора тока, с дифференциальным усилительным каскадом на выходе для усиления сигналов входного и выходного тока. CNT1 и CNT2 — выходные клеммы. L1 и L2 — это соответственно индуктивности в корпусе 1770 для поверхностного монтажа и индуктивности с магнитопроводом для сквозного монтажа. Можно припаять одну из них, обе нарисованы для удобства тестирования эффекта и производительности различных индуктивностей.

Схема входа питания и протокола быстрой зарядки

На рисунке ниже показана схема входного интерфейса источника и схема связи протокола быстрой зарядки PD.

Источник питания использует два типа входных интерфейсов: гнездо DC5.5*2.5 мм и гнездо TypeC. Интерфейс TypeC поддерживает несколько протоколов быстрой зарядки, включая BC1.2, PD3.0/2.0. Используемый чип протокола быстрой зарядки — CH224K, который может связываться с зарядным устройством быстрой зарядки, заставляя его выдавать напряжение до 20В, максимально поддерживая мощность 100Вт.

Диоды D1, D3, D4 предотвращают обратный ток напряжения от интерфейса DC к интерфейсу TypeC. По проектированию не допускается одновременное подключение двух интерфейсов. D5 — диод защиты от обратной полярности. FH1 — держатель предохранителя входа питания с предохранителем 12А.

Схема управления

В проектировании синхронного BUCK-BOOST источника питания как схема BUCK, так и схема BOOST содержат высокосторонний N-MOSFET. Традиционно управление этими высокосторонними N-MOSFET обычно осуществляется с помощью трансформаторной изолированной схемы управления, но этот метод усложняет схему и увеличивает размер печатной платы.

В данном проекте выбраны два чипа управления MOS-транзистором EG3112 со встроенной функцией самозагрузки для управления MOS-транзисторами схем BUCK и BOOST. EG3112 — это неизолированный комплементарный двухканальный чип управления. Его выходной ток управления 2А обеспечивает быстрое включение MOSFET. Чип также имеет встроенную функцию управления мёртвой зоной для предотвращения прямого прохождения выходных сигналов управления, повышая стабильность системы. Конкретная схема показана на рисунке ниже.

На примере управления MOS-транзистором схемы BOOST повышающего преобразования PWM2L и PWM2H — это сигналы PWM, выводимые микроконтроллером STM32G474, подаваемые на выводы LIN и HIN чипа управления EG3112. LO — выходной сигнал управления нижним транзистором с сопротивлением управления 10 Ом. HO — выходной сигнал управления верхним транзистором с сопротивлением управления 10 Ом. D7 — диод самозагрузки схемы управления верхним транзистором. Диоды D9 и D11 используются для быстрого отвода заряда затвора, ускоряя отключение MOS-транзистора. C14 — конденсатор самозагрузки.

Резистор управления служит для того, чтобы во время переключения MOSFET сигнал управления мог создавать отражения и колебания на печатной плате, распределённых ёмкостях, индуктивностях и других элементах. Последовательное подключение резистора может снизить эти колебания, повышая стабильность и надёжность системы.

Вспомогательное питание

На рисунке ниже показана принципиальная схема вспомогательного питания платы питания.

Вспомогательная схема питания первого уровня с выходом 12В выбрана на основе чипа источника питания BUCK типа TPS54360B с интегрированным высокосторонним MOSFET. В соответствии с руководством чипа резистор, подключённый к выводу RT, может устанавливать частоту переключения. Здесь выбран резистор 110 кОм, соответствующая частота переключения составляет 876,5 кГц. Относительно высокая частота переключения позволяет выбрать меньшую индуктивность для экономии места. На основе этой частоты расчётное значение индуктивности должно быть больше 9,75 мкГн. Здесь выбрана индуктивность 10 мкГн, в качестве диода обратного тока выбран SS310. C26 и C27 — входные фильтрующие конденсаторы. Резисторы обратной связи R19 и R25 делят напряжение, выдавая 0,8В опорного напряжения на вывод FB чипа, обеспечивая выходное напряжение 12В. C18 и C19 — фильтрующие конденсаторы вспомогательного питания первого уровня 12В. Выход первого уровня 12В в основном используется для входа схемы понижающего преобразования второго уровня 6В, а также для схемы управления MOSFET и охлаждающего вентилятора.

Вспомогательная схема питания второго уровня с выходом 6В выбрана на основе чипа источника питания синхронного выпрямительного BUCK типа SY8205 с интегрированным MOSFET. В соответствии с руководством чипа частота переключения чипа фиксирована на 500 кГц. Выбрана индуктивность вспомогательной схемы BUCK 10 мкГн. C21 и C22 — входные фильтрующие конденсаторы. Резисторы обратной связи R23 и R26 делят напряжение, выдавая 0,6В опорного напряжения на вывод FB чипа, обеспечивая выходное напряжение 6В. C24 и C25 — фильтрующие конденсаторы вспомогательного питания второго уровня 6В. Поскольку прямое использование линейного регулятора для понижения напряжения с 12В до 5В вызовет значительные потери, сначала используется импульсный источник питания для понижения напряжения до напряжения, близкого к 5В, а затем линейный регулятор для понижения до целевого напряжения. Это обеспечивает высокую эффективность и низкую пульсацию выходного напряжения.

Выходное напряжение 6В второго уровня понижается до 5В через чип линейного регулятора AMS1117-5 в качестве третьего уровня вспомогательного питания, чип опорного напряжения REF3033 используется для обработки сигналов, дисплея OLED, связи USB и других функциональных схем.

Постоянный ток 5В понижается до 3,3В через чип линейного регулятора AMS1117-3.3 в качестве четвёртого уровня вспомогательного питания для MCU, зуммера, чипа Flash и других схем.

Чип опорного напряжения REF3033 выводит опорное напряжение 3,3В на вывод VREF MCU в качестве опорного напряжения встроенного АЦП MCU, повышая точность выборки АЦП.

Схема обработки сигналов

Как показано на рисунке выше, схема отбора и обработки входного и выходного напряжения в данном проекте использует технику дифференциального усиления. Топология дифференциального усиления может эффективно снизить помехи высокочастотного шума импульсного источника питания на схему обработки сигналов, повышая стабильность и надёжность сигнала. В этой схеме выбран операционный усилитель с низким нулевым смещением GS8558-SR для повышения точности преобразования. Операционный усилитель GS8558-SR имеет отличные характеристики постоянного тока и низкий ток смещения, что критически важно для повышения производительности всей схемы обработки сигналов.

Резисторы обратной связи дифференциального усилителя:

R_{38}=4.7kΩ
R_{36}=75kΩ

Рассчитаем коэффициент дифференциального усиления:

K_V=\\frac{R_{38}}{R_{36}}=0.062667

Максимальное напряжение выборки АЦП MCU составляет 3,3В, выводимое чипом опорного напряжения. Тогда можно рассчитать максимальное входное и выходное напряжение, которое можно отобрать:

V_{max}=\\frac{3.3V}{K_V}=52.66V

Для лучшего подавления помех высокочастотного шума импульсного источника питания на схему дифференциального усиления на выводы питания операционного усилителя добавлены развязывающие конденсаторы C40 и C41 для фильтрации. Конденсаторы выбраны MLCC (многослойные керамические конденсаторы). MLCC благодаря низкому ESR и ESL имеет лучший эффект при фильтрации высокочастотного шума. Одновременно на выходе добавлены резистор R35 и конденсатор C39, образующие RC низкочастотный фильтр для фильтрации высокочастотного шума.

Как показано на рисунке выше, схема обработки входного и выходного тока использует метод дифференциального усиления. Резистор отбора выходного тока:

R_{14}=5mΩ

Резисторы обратной связи дифференциального усилителя:

R_{48}=6.2kΩ
R_{46}=100Ω

Рассчитаем коэффициент дифференциального усиления:

K_I=\\frac{R_{48}}{R_{46}}=62

То есть каждый 1А тока выводит 310 мВ напряжения.

Максимальное напряжение выборки АЦП MCU составляет 3,3В, выводимое чипом опорного напряжения. Тогда можно рассчитать максимальный входной и выходной ток, который можно отобрать:

I_{max}=\\frac{3.3V}{K_I \\times R_{14}}=10.65A

Схема управления MCU

В данном проекте цифрового источника питания выбран чип STM32G474RET6 в качестве контроллера. Этот контроллер имеет такие выдающиеся характеристики, как простая периферийная схема, разнообразные способы управления и превосходные возможности расширения. Для реализации точного сигнала синхронизации контроллер использует внешний кварцевый генератор X1 — кварцевый кристаллический генератор с частотой 25 мегагерц (МГц). Кроме того, схема включает несколько фильтрующих конденсаторов, включая C45, C51, C56, C46 и C52, которые используются для различных выводов цифрового питания микроконтроллера (MCU) для обеспечения стабильности питания и снижения помех от шума. Резистор R49 и конденсатор C49 образуют схему сброса при включении питания. SW1 — кнопка сброса MCU. U11 — чип преобразования USB в последовательный порт модели CH340C, подключённый ко второму интерфейсу TypeC. Последовательный порт подключён к интерфейсу USART1 MCU. U10 — чип хранилища Flash модели W25Q64, используемый для хранения информации о параметрах и настройках, подключённый к интерфейсу SPI3 MCU. Q6 — MOS-транзистор управления зуммером для управления зуммером. Затвор MOS-транзистора подключён к выводу PB5 MCU. H1 — клемма порта SWD для программирования. H2 и H4 — разъёмы PH2.0, используемые для подключения к панели управления. Разъёмы предусматривают интерфейс USART2, что позволяет удобно заменить схему панели управления на последовательный экран, а также можно добавить ESP32 для добавления функций подключения к сети и беспроводного управления. D13 — диод защиты от обратной полярности 5В.

Схема управления охлаждающим вентилятором и отбора температуры материнской платы

Принципиальная схема отбора температуры материнской платы и схема управления охлаждающим вентилятором показаны на рисунке ниже. Принцип отбора температуры материнской платы источника питания заключается в использовании NTC термистора R2, соединённого последовательно с резистором R4 для делителя напряжения, выводимого на порт АЦП MCU для отбора. Используемый NTC термистор имеет сопротивление 10 кОм и значение B 3950K.​Охлаждающий вентилятор управляется N-MOS транзистором модели AO3400. На разъеме охлаждающего вентилятора параллельно подключен диод D2 для защиты от обратной электродвижущей силы (back EMF), создаваемой двигателем. Когда двигатель отключается, из-за инерции ротор не останавливается сразу, а продолжает вращаться и генерирует электродвижущую силу. Эта ЭДС может повредить транзисторы или интегральные схемы в цепи, особенно когда двигатель подключен к этим компонентам через полупроводниковые ключи (такие как MOSFET).

Проектирование схемы панели управления

​Принципиальная схема панели управления показана на рисунке ниже. SW1 — это поворотный энкодер, используемый для установки параметров и т. д., SW2 и SW3 — кнопки. SW2 используется для переключения пунктов настройки, SW3 — для управления включением и выключением выхода питания. LED1 — индикатор состояния работы системы, при нормальной работе мигает с интервалом 500 мс, LED2 — индикатор состояния выхода, загорается при включении выхода и гаснет при выключении. OLED1 — экран OLED, используется для отображения параметров питания, информации о состоянии и т. д.

Скриншоты печатной платы

Верхний слой платы питания

Слой GND платы питания

Внутренний слой 2 платы питания

Нижний слой платы питания

Верхний слой панели

Нижний слой панели

Инструкция по использованию

​Через кнопки и поворотный энкодер можно установить значения выходного напряжения и тока. Как показано на рисунке ниже, инвертированное значение показывает текущую позицию для установки. Поворотом энкодера можно увеличивать или уменьшать значение, нажатием на энкодер можно переключаться на следующую позицию для установки, кнопкой SW2 можно переключаться между пунктами настройки. Установленные данные автоматически сохраняются в микросхему Flash-памяти, при следующем включении данные считываются из памяти.

​Кнопка SW3 включает/выключает выход питания.

​Можно переключиться на страницу отображения данных для просмотра текущих входного и выходного напряжения и тока питания, а также информации о температуре материнской платы и температуре MCU, как показано на рисунке ниже.

​Можно переключиться на страницу настроек для установки пороговых значений защиты от перегрева/перегрузки по току/перенапряжения, как показано на рисунке ниже. Установленные данные автоматически сохраняются в микросхему Flash-памяти, при следующем включении данные считываются из памяти.

Тест пульсаций

​Производительность выхода питания и пульсации выхода тестируются с помощью электронной нагрузки и осциллографа, как показано на рисунке ниже. При входе 36 В и выходе 12 В 2 А пиковое значение пульсации составляет примерно 42 мВ, как показано на рисунке ниже.

Тест эффективности преобразования

​КПД преобразования при входе 20 В и выходе 12 В 10 А составляет 92%, как показано на рисунке ниже.

​В таблице ниже приведены значения КПД преобразования при различных входных и выходных напряжениях, максимальный КПД составляет 94,3%.

Входное напряжение (В) Входной ток (А) Входная мощность (Вт) Выходное напряжение (В) Выходной ток (А) Выходная мощность (Вт) КПД преобразования (%)
20.003 4.035 80.712 15.010 5.000 75.050 92.985
47.999 5.335 256.075 24.040 9.900 237.996 92.940
48.000 7.875 378.000 36.020 9.900 356.598 94.338
48.000 9.860 473.280 45.030 9.900 445.797 94.193
23.998 8.835 212.022 48.070 4.000 192.280 90.689
23.998 9.830 235.900 35.998 6.001 216.024 91.574
12.099 9.166 110.899 24.070 4.000 96.280 86.817
20.008 2.645 52.921 4.970 9.000 44.730 84.522
20.008 10.550 211.084 24.030 8.000 192.240 91.073
36.000 6.418 231.048 24.010 9.000 216.090 93.526
36.000 10.540 379.440 35.950 9.800 352.310 92.850

Форма волны затвора MOS-транзистора

​Тестирование формы волны затвора каждого MOS-транзистора при входе 20 В и выходе 24 В.

​Форма волны напряжения верхнего и нижнего транзисторов схемы BUCK относительно земли:

​Форма волны напряжения верхнего и нижнего транзисторов схемы BOOST относительно земли:

Тест теплоотдачи

Тепловизионное изображение при холостом ходе:

Тепловизионное изображение после 10 минут работы с выходным током 10 А, температура MOS-транзистора около 100 градусов:

Распаковка и тестирование тепловизора Uni-Trend UTi261M: https://blog.zeruns.com/archives/798.html

Адреса покупки компонентов

Адреса покупки большинства компонентов, используемых в этом проекте, находятся здесь:- 0805 образец резисторов и конденсаторов: https://s.click.taobao.com/begdskt

Рекомендуется покупать компоненты в LiChuang Mallhttps://activity.szlcsc.com/invite/D03E5B9CEAAE70A4.html

В таблице BOM на странице открытого исходного кода LiChuang нажмите “Заказать сейчас в LiChuang Mall”, чтобы импортировать все необходимые компоненты в корзину одним щелчком.

Адреса для загрузки материалов

Следующие ссылки содержат материалы: проект LiChuang EDA, файлы PDF схем, техническое описание каждого чипа, архивы исходного кода проекта, некоторые справочные коды программ.

Адрес загрузки без ограничений скорости 123 Cloud Disk:https://www.123pan.com/ps/2Y9Djv-8yevH.html

Адрес загрузки Baidu NetDisk:https://url.zeruns.com/MW2d1

Адрес открытого исходного кода проекта Gitee:https://gitee.com/zeruns/STM32-Buck-Boost

Адрес открытого исходного кода проекта GitHub:https://github.com/zeruns/Synchronous-Rectification-Buck-Boost-Digital-Power-Supply-Based-on-STM32

Пожалуйста, поставьте звезду и лайк.

Известные проблемы

  1. Чип SY8205 во вспомогательном источнике питания переходит в режим PFM при низкой нагрузке, что приводит к низкой частоте и создает легкий шум.
  2. Программа управления PID в режиме постоянного тока написана плохо, стабильный ток достигается только при чисто резистивной нагрузке. (Режим постоянного напряжения работает нормально)

Рекомендуемые другие проекты с открытым исходным кодом

  • Создал трехфазный сборщик электроэнергии с открытым исходным кодом, который может удобно контролировать потребление электроэнергии в доме:https://blog.zeruns.com/archives/771.html
  • Шаблон проекта LVGL на основе STM32F407 (экран MSP3526), включая версии FreeRTOS и версии без ОС:https://blog.zeruns.com/archives/788.html
  • Минимальная системная плата Qinheng CH32V307VCT6 с открытым исходным кодом:https://blog.zeruns.com/archives/726.html
  • Модуль DCDC источника питания LM25118 с автоматическим повышением и понижением напряжения:https://blog.zeruns.com/archives/727.html
  • Модуль синхронного выпрямления повышающего преобразователя EG1164 с открытым исходным кодом, максимальная эффективность 97%:https://blog.zeruns.com/archives/730.html
  • Узел мониторинга окружающей среды 4G на основе Hezhou Air700E (данные температуры, влажности, давления и т. д.), загружаемые на платформу IoT Alibaba Cloud через MQTT:https://blog.zeruns.com/archives/747.html
  • Интеллектуальная электронная нагрузка на основе HT32F52352 с открытым исходным кодом, работа конкурса Holtek Cup:https://blog.zeruns.com/archives/784.html

Рекомендуемое чтение

  • Рекомендация дешевых и экономичных VPS/облачных серверов:https://blog.zeruns.com/archives/383.html
  • Учебное пособие по открытию сервера Minecraft:https://blog.zeruns.com/tag/mc/
  • Создание блога без кода! Очень подробное руководство по созданию личного блога:https://blog.zeruns.com/archives/783.html
  • Учебное пособие по созданию сервера внутренней сети, учебное пособие по созданию и использованию NPS:https://blog.zeruns.com/archives/741.html
  • Тест производительности облачного сервера Ningbo 8272CL Yuyun с высокой защитой от DDoS, максимальная пропускная способность 500 Мбит/с и облачный диск 1 ТБ:https://blog.zeruns.com/archives/789.html
  • Тестирование и разборка зарядного устройства мощностью 120 Вт стоимостью 2,6 юаня из магазина Douyin:https://blog.zeruns.com/archives/786.html
5 лайков

Может, большой босс объяснит, как рассчитывается частота переключения? :grin:

1 лайк

Частоту коммутации выбирают самостоятельно, а затем по ней рассчитывают остальные параметры (индуктивность, ёмкость и т. д.).
При повышении частоты коммутации коммутационные потери (например, потери при включении/выключении ключа) обычно растут (чем больше переключений за единицу времени, тем выше потери, пропорционально частоте), но габариты фильтрующих элементов (индуктивности и конденсаторов) уменьшаются (на высокой частоте для заданного уровня пульсаций можно взять меньшие значения L и C); наоборот, при снижении частоты потери уменьшаются, но компоненты увеличиваются в размерах. Кроме того, частота коммутации ограничена быстродействием применяемых приборов (например, максимальной рабочей частотой силового MOSFET) и сложностью подавления электромагнитных помех (EMI) — на высоких частотах EMI труднее контролировать. В реальном проектировании выбирают компромисс между КПД, габаритами, стоимостью и EMI.

4 лайка

Привет, хотелось бы спросить, какие улучшения необходимо внести в эту работу для реализации двусторонней синхронной выпрямления? Спасибо :thinking:

1 лайк

Вспомогательное питание переключено на одновременное снятие напряжения с входа и выхода (через диоды), датчик тока переделан на двунаправленный (на неинвертирующий вход усилителя датчика тока подаётся смещение 1,25 В), код также нужно изменить; всё остальное практически не требует доработки.

2 лайка

Хороший проект :+1:

Очень хорошо :+1:

Узнал кое-что крутое! :smiley:

Здравствуйте, автор! Почему вы установили частоту переключения 181,333 кГц с десятичной дробью? Обычно она ведь целочисленная. Можете объяснить, почему так сделано? Спасибо!

Частоту, полученную с помощью умножения/деления частоты таймера, можно изменить

О, понял, спасибо

Как в целом определить, какие значения следует изначально задать для параметров ПИД этого регулятора?

Привет! При первоначальной настройке ПИД-регулятора в этих цифровых источниках питания я обычно начинаю с консервативных значений, основанных на ожидаемой динамике системы — например, устанавливаю низкое значение Ki, чтобы избежать перерегулирования, и подбираю Kp таким, чтобы получить реакцию без колебаний. Затем я корректирую параметры в реальном времени, отслеживая выходной сигнал с помощью осциллографа и следя за устойчивостью. Гибкость STM32 позволяет изменять параметры «на лету», что экономит часы проб и ошибок. Всегда начинайте с малого и корректируйте постепенно — поверьте, именно так можно избежать момента «упс, слишком большой коэффициент усиления»! :grinning_face_with_smiling_eyes:

Большой мастер, зачем нужно рассчитывать действующее значение для MOSFET? Разве недостаточно просто посмотреть пиковое значение тока дросселя и выбрать MOSFET с ID, превышающим пиковое значение тока?

Вежливо спрошу, какие шаги следует предпринять при конкретной отладке? Например, нужно ли проводить отладку в разомкнутом контуре? Как правильно выполнять отладку в замкнутом контуре? Есть ли какие-либо важные моменты, на которые стоит обратить внимание? Я также разрабатываю аналогичный источник питания с ЧПУ, но не знаю, как правильно выполнить отладку. При работе в разомкнутом режиме у меня дважды пробивались MOSFET-транзисторы. Возможно, сначала нужно переходить к замкнутому контуру? Причиной первого пробоя, возможно, стала насыщение дросселя или превышение допустимого напряжения MOSFET. Второй раз пробой мог произойти из-за отсутствия нагрузки — напряжение на дросселе стало слишком высоким и пробило транзистор. В первый раз произошёл пробой между стоком и истоком, а в третий раз — пробой всех трёх выводов одновременно.

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

Это одна из самых классических ошибок при проектировании импульсных источников питания:
выбирать MOSFET только по пиковому току дросселя — в краткосрочной перспективе не сгорит, но в долгосрочной обязательно выйдет из строя. Что на самом деле определяет, перегреется ли MOSFET или пробьётся — это действующее значение тока (RMS), а не пиковый ток.


1. Суть одним предложением

  • Пиковый ток дросселя: защищает от мгновенного пробоя и насыщения сердечника
  • Действующее значение тока: определяет нагрев, рост температуры и срок службы MOSFET

90 % случаев выхода MOSFET из строя — это тепловые повреждения, а не мгновенный перегруз по току.


2. Почему нагрев считается по «действующему значению», а не по «пиковому»?

Мощность потерь при открытом состоянии MOSFET:
\[
P_{loss} = I_{rms}^2 \times R_{ds(on)}
\]
Здесь I должно быть действующим значением, пиковый ток здесь ни при чём.

  • Пиковый ток — это лишь максимальное мгновенное значение, которое длится очень короткое время и не отражает средний уровень нагрева.
  • Действующее значение — эквивалент постоянного тока, который вызывает такой же нагрев, именно оно определяет температуру.

Например:

  • Пиковый ток дросселя: 10 А,
  • Но действующее значение может быть всего 4–6 А.

Если вы выбираете MOSFET только по пиковому току 10 А, но не учитываете нагрев от действующего значения, температура превысит допустимую — и MOSFET выйдет из строя от перегрева.


3. Чему служит пиковый ток, а чему — действующее значение?

① Пиковый ток дросселя Ipk

Отвечает только за два параметра:

  1. Не допустить насыщения дросселя
  2. Не превысить импульсный ток стока MOSFET (I_DM) — защита от мгновенного пробоя

Он не используется для расчёта нагрева.

② Действующее значение тока I_rms

Отвечает за одну, но самую важную вещь:

  • Будет ли MOSFET перегреваться, насколько возрастёт температура и не сгорит ли он
    Определяет, какое нужно выбрать значение R_ds(on), насколько большой нужен радиатор и какой класс тока должен выдерживать транзистор.

4. Правильная логика выбора компонентов (правильный порядок)

  1. Рассчитайте пиковый ток дросселя Ipk
    → Убедитесь, что I_DM > Ipk — защита от пробоя и насыщения
  2. Рассчитайте действующее значение тока через MOSFET I_rms
    → Посчитайте потери и нагрев, чтобы гарантировать долгосрочную работу
  3. Только после этого выбирайте MOSFET по номинальному току I_D и сопротивлению R_ds(on)

Учитывать только пиковый ток, игнорируя действующее значение — всё равно что работать без защиты.


5. Краткий итог

  • Пиковый ток: защита от мгновенной смерти
  • Действующее значение: защита от медленного перегрева до смерти

При разработке источников питания приоритет — тепловой расчёт, а не пиковый ток.

Уважаемый, хотел бы спросить, почему после включения питания измерение выходного напряжения мультиметром показывает 5 В, а на экране отображаются ненормальные значения входного и выходного напряжения и тока

Проверка сварки

Вежливо спрашиваю, как рассчитать параметры компенсации контура?