Comments 104
PCBway похоже раскидывает сеть. Тоже предлагает.
А вот нельзя как то индуктивность сделать из печатных плат (была статья на эту тему на хабре) и сразу заказать всё на PCBway? Сильно не хочется катушки искать/мотать. Для частоты 500 КГц например.
Соглашайтесь, можно больше своих проектов пилить))
Учитывая, что про планарника статья мною и написана, то однозначно можно. Правда планарник имеет смысл делать на частотах от 400 кГц и выше. Да и пакет из двухслоек конечно забавно, но кольцо проще намотать в реальности. Заказывать же плату 6-10 слоев под планарник выгодно только на очень большой серии, когда она будет стоить три копейки. В розницу на прототипы плата будет 300-600$ стоит, что как бы неразумно.
А чем решение с микроконтроллером лучше какого-нибудь условного трехдолларового Buck controller чипа, вроде LTC3703, который делает все то же самое, но аппаратно?

И какое именно напряжение подается на high side транзистор в итоге? А то в статье фигурируют 40 В местами, а исток-затвор выбранного транзистора 20 В.
Причина в конце, mppt алгоритм на LTC не запихнуть, да и 5-ти фазный buck с каналом на 20А тоже не сделать.

Затворы что на нижнем, что на верхнем ключе имеют по 1-му независимому драйверу и по 1-му развязанному dc/dc на 12-12В, поэтому на затворе всегда там 12В (исток-затвор).
А почему не транзистор с каким-нибудь открытым коллектором? Или тем же контроллером через диод и резистор открытым коллектором? Ставить dc/dc и драйвер это какой-то адов оверкил, нет?
Драйвер развязанный нужен, чтобы из силовой части срач помех не проникал в цифровую часть. Так что тут или dc/dc или бутстрепное питание, но последнее это для дешманских поделок больше подходит или для крупносерийного производства. Поэтому я не вижу оверкила в том, чтобы поставить лишний dc/dc за 1$.
Окей, допустим, с MPPT понятно, хотя и такие чипы тоже существуют (LT8490).
Но если мне как любителю нужен просто Buck на пару Ампер, имеет ли смысл городить микроконтроллер?

В статье, кстати, ни слова про частотную стабильность петли обратной связи. Это окей?
Чипы готовые кончаются на 10А, когда обычно токи от 20 до 100А нужны. Готовые микры разве что куда-то в датчики удаленные с питанием от солнца ставить.

Ради пары ампер конечно же не стоит, МК есть смысл ставить после 20А и далее. В статье я сделал пару ампер, чтобы любой желающих мог собрать на любых соплях и оно работало. Все таки 20А — это уже определенные требования к опыту и трассировке.
Ну, есть масса чипов под внешние ключи. Они, обычно, ещё и имеют лучшие возможности по внешнему управлению. Дёшево и сердито, как компромис.
Дешево это сколько? МК стоит 3$, а сколько стоит микросхемка у Linear или TI? Долларов 10 на digikey и в 1,5 раза дороже в РФ. При этом в нем не будет ни CAN, ни RS485.

Опять же — готового камня, который может и управлять силой и имеет специфичный алгоритм не так много. В МК с одного камня могу реализовать и MPPT-алгоритм и заряд для Li-ion сборки и при этом мониторить все подряд и отправлять данные на сервер. Цена будет при это значительно ниже готового решения и главное будет более гибким и понятным.
И ещё вопрос, а не проще действительно специализированный чип поставить, а потом им рулить через ЦАП контроллера и обратную связь, выбирая напряжение стабилизации?
Более, того есть такое ощущение, что если управляемый цифровой резистор поставить и им рулить выбирая напряжение стабилизации, то получится проще и лучше за те же деньги, нет?
Если бы я такое делал, то сначла смотрел бы в сторону специализированных микросхем и ЦАП. Никаких проблем с регулированием, предсказуемые характеристики, низкая сложность схемы и т.п.
Ох, еще раз… Надо MPPT с входом 15-150В с током 20А и чтобы он еще умел на входе 12/24/48В. Можно увидеть готовую микросхему, которая сможет это? А еще желательно, чтобы умела плеваться данными в RS485 или USB.
Контроллер оставить, но для преобразователя поставить специализированную микросхему, допускающую использование внешних ключей. Напряжение стабилизации задаётся контроллером через цепь обратной связи управляющей микросхемы при помощи ЦАП контроллера или управляемого цифрового сопротивления. Развязанное питание тоже есть ощущение, что избыточно. Как-то так. Очень просто всё получается по схемотехнике и управлению.
И никаких танцев с алгоритмами управления ШИМ, частотной стабильностью и т.п.
Еще раз: в заголовке статьи у вас одно, а в тексте по факту совсем другой девайс разрабатывается. А все вопросы по поводу того, что было заявлено изначально, ведь до последнего абзаца про MPPT ни слова не было.
Ток 20 Ампер на много каких серийных чипах реализуется, если их в параллель поставить.
Те же ПЛИС почти всегда питают через изолированный мощный DC/DC (Х -> 5 или 12 В) и набор POL конвертеров из 5 или 12 в нужные разные напряжения (1.2 для ядер, 3.3 для периферии и т.д.) и на большие токи. Там обычно даже внешние силовые транзисторы не нужны, все прекрасно интегрируется. И никаких микроконтроллеров)
1) Статья про расчет buck-а, а не ответ на непонятные вопросы «а почему не взять готовый чип?». Если сделано, значит есть ряд задач, где готовые решения отсутствуют, а они отсутствуют как только речь идет о какой-то вменяемой мощности и алгоритмах. Может мне надо было сделать устройство для изучения, которое не смогут повторить большинство людей? Вот так «tutorial» получился бы))

2) Для DSP/FPGA есть инфраструктура, но что делать если вход не 12В, а 12-150В? Городить еще один dc/dc? А если надо не стандартные 3.3/1В, а например, 56.8В для заряда АКБ?
Вся та часть, которая про расчет buck-а, вполне релевантна для расчета конструкции на базе готовых PWM-контроллеров.
Если сделано, значит есть ряд задач, где готовые решения отсутствуют
Статья стала бы еще полезнее, если бы вы посвятили пару абзацев тому, для каких задач что лучше. А то если кто-то попробует девайсом типа вашего питать другой микроконтроллер, это будет стрельба из пушки по воробьям)

но что делать если вход не 12В, а 12-150В?
Такие готовые чипы тоже есть. Условный LTC3894 умеет вход от 5 до 150 В и выход до 60 В. Для заряда АКБ там тока, разумеется, не хватит, то есть много и других задач.

P.S. Не поймите меня превратно, я не хочу критиканствовать, а, наоборот, хочу лучше разобраться в сферах применения того и другого. У меня сейчас на мониторе как раз схема такого готового чипа для DC/DC преобразования моделируется, поэтому очень интересно посмотреть на него «глазами потенциального потребителя», особенно такого, который применяет конкурирующее решение.

Верно, по сути силовой части все равно кто ею управляет, а расчет был дли силы.

Про пару абзацев учту, мельком в конце упомянул mppt, видимо мало)) Кстати, в статье про модуль управление было несколько подробнее рассмотрено как и чем можно с нее управлять.

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

Можете критиковать, даже нужно (критика обоснованная — лучший фидбек), тем более к вашему мнению я всегда с удовольствием прислушиваюсь)) О, новая микросхема отечественная? Это хорошо! Отечественный motor control, про который НПФ Вектор рассказывал, очень понравился и часть новых проектов планируется на них сделать. Главное чтобы dc/dc был доступен для коммерции, а не только ВПК.
Окажется, что надо заряжать, не до 4.2, а до 4.35 или 3.6 и 90% мелкосхем отваливается…
Если уже есть микроконтроллер в девайсе, то зачастую проще приделать к нему драйвер с mosfet-ом, диодом и дросселем, чем искать подходящий подо все требования чип. Потому что там у каждого свои ограничения и особенности, да и схема в итоге часто получается проще. В случае же когда нужно заряжать мощный аккумулятор — вообще ничего подходящего не находится.
А чем решение с микроконтроллером лучше какого-нибудь условного трехдолларового Buck controller чипа, вроде LTC3703, который делает все то же самое, но аппаратно?


Так понимаю, это наработка для MPPT контроллёра. Широкий динамический диапазон выходного напряжения (скажем 12В, 24В), с АЦП.
MPPT будет на свинцовых АКБ или на литиевых?
Совершенно верно)) Задача не просто выкатить проект mppt, а перед этим объяснить как работают узлы из которого он будет построен.
Свинец + литий точно будет поддерживать, другие типа АКБ вряд ли, но будут открыты исходники и любой сможет самостоятельно добавить алгоритм заряда под свою задачу.
Будет ли BMS с балансировкой для литиевых AКБ? Как говорят no pressure, просто зацепило как увидел youtube записи людей, делающих свои Powerwall на 18650.
BMS разумеется будет, но отдельным устройством. Мой товарищ по проекту сейчас занимается 12S 200 А*ч ячейкой для инвертора, как будет результат около-финальный, то он напишет статью и будут так же исходники.
Неплохо реализовано кстати, может быть даже поучаствовать в проекте ради интереса.
А как связать крутизну фронта из даташита и максимальную частоту шим-а? Или га какой ещё параметр смотреть?
p.s. половину ваших "-ие" надо заменить на "-ии".
В даташите обычно указывается или заряд в нКл или емкость в нФ. Считаете за сколько она зарядится от импульсного тока вашего драйвера, а затем смотрите какую часть периода составляет время нарастания от 0 до 10В. Если фронт и спад длятся больше 0,5% от длительности периода сигнала, то все плохо и будет горячо.

Вообще как считать драйвер, ток необходимый и dc/dc расскажу уже в следующей статье. Если кратко — хотите большую частоту? Выбирайте ключ с как можно меньшей емкостью/зарядом затвора. И не стоит забывать про время восстановления паразитного диода внутри ключа.
Вам бы Vref ещё нужно измерять на каждом тике и корректировать результат, т.к. точность этих 3.3 В весьма приблизительная. Про это часто забывают, а даже те, кто помнят, как правило, делают это неправильно (усредняют Vref, измеряют несинхронно и надеятся на высокую точность, и прочие изыски, которые больше вредят, чем помогают).
Верное дополнение, но пока не стал усложнять, чтобы голову не перегружать людям)) В принципе измерение Vref можно добавить вторым в очередь и он будет так же измерять по компаратору на 10% периода. В плане синхронизации с событиями у HRTIM все очень удобно и наглядно.
UFO landed and left these words here
У 3xx и 4xx опорный источник калиброван при выпуске контроллера, а коэффициент калибровки хранится в ПЗУ (VREFINT_CAL). Если всё правильно делать, то начальная погрешность очень неплохая. Со стабильностью тоже всё не плохо, особенно, если правильно аналоговое питание организовать. Не фонтан, конечно, но для большинства применений отлично подходит. Я на АЦП 2xx измерительные приборы с метрологией делал. В том числе и климатические камеры проходили. Когда приходили к тому, что нужно ставить внешний опорный источник, то, обычно, нужно было уже и внешний АЦП ставить, т.к. начинаются пляски со снижением шумов за счёт измерений в спящем режиме и прочая сильная магия.
У контроллера нет аппаратной защиты от сквозного тока.

3 электролита хорошо, конечно, но дают ли они нужный импульсный ток? Ну и с фильтром на выходе та же история. Даже если электролиты импульсные. Пара пленочных по 20 мкф может оказаться эффективнее. Правда, они дорогие
Есть dt и вход BKIN и FAULT, которые внутри реализованы обычным логическим элементов и даже если ядро погибло и повисло, то защита все равно отключит выходы ШИМа. Ради интереса можно почитать аппноуты по HRTIM и там это весьма подробно разжевано. TIM1 таймера это кстати тоже касается.
Конечно, но уже скорее на новогодних каникулах. Планирую пример «повышалки» 24-400В dc/dc для инвертора к СЭС.
Это все из разряда «очевидные нюансы», которые не имеют отношения в работе и расчету силовой части. Про общую стабильность и надежность устройств на МК и так много информации в гугле.
Ограничение резолюции таймера можно обойти модуляцией значений скважности в прерывании конца цикла тимера или в dma. Например если нужно 9.6 тиков то [ 9 9 9 9 10 10 10 10 10 10] в цикле.Давно пользуюсь подобным трюком, правда для других целей. Так что мне кажется можно и stm32f103 задействовать, благо он дешевле
Софтварные костыли — это для «ценителей», а нормальные решения нужно реализовывать аппаратно все таки. К тому же в f103 вроде нет FPU, нет компараторов и прочих прелестей. Ценник 2,5$ в розницу вроде не много, f103 стоит дороже вроде если оригинал, а не с алишки непонятно что, поэтому все относительно))
Сейчас объясню, что лично меня смущает в stm32f334. Для него нужно изготавливать плату. То есть на коленке попробовать навесным монтажом не получится. То есть если нужно не мелкосерийное производство, а разовый проект для дома, то он не очень удобен.
Если делать небольшие серии подобных проектов на заказ (блоки питания и тп) то видимо это неплохой выбор, впрочем это уже не совсем хобби, а те кто занимается этим профессионально и сами знают как делать блоки питания.
в f103 вроде нет FPU, нет компараторов и прочих прелестей

Так Вы их и не используете в данной статье :).
а не с алишки непонятно что

Зато недорого и доступно.
Зато недорого и доступно.
Это при условии, что вы не цените свое время. Лично для меня дорого угробить свое время на какую-то проблему с МК с алишки и в итоге выяснить, что дело не в коде и не в схемотехнике, а в чипе.

Так Вы их и не используете в данной статье :).
А разве на данном МК можно делать только то, что в статье?)) Думаю с float работают все.

Для него нужно изготавливать плату
ЛУТ или фоторезист позволяют изготовить плату за 15 минут. Текстолит с алиэкспресс один раз в год заказать думаю не проблема.
Ну каждый смотрит со своей колокольни. Когда мне нужен float32 на работе, то не спасает ни STM32H750 за $3, ни intel i9, только харкор, только GPU :). А быстро дрыгать ножками в реальном времени или нужно на батарейках — вот тут и STM хорош, впрочем FPGA и быстрее могут. Везде ведь компромисс цена/качество/скорость разработки.
Опять таки, статья мне понравилась именно простотой железа, а китайских f103с8т6 платок у меня валяется избыток, вот и смотрю куда бы их приспособить в домашнем хозяйстве например для поливалки на солнечной батарее, а DC-DC по этой схеме чтобы не перезарядить конденсатор электромагнита водяного крана и суперконденсатор резервного питания.(Если солнце пропадает, а кран таки нужно закрыть)
FPU в реальности очень редко нужен. Software fp отлично работает на Cortex M3/M4. Для M0, там уже чуть хуже, но тоже в большинстве случаев аппаратный FPU не нужен.
Например, у меня есть проект с десятками цифровых фильтров, разложением спектра 10 кГц в реальном времени в прерываниях и прочей сложной математикой на STM32F207 на эмуляции FPU и загрузка CPU там примерно 60%.
Ставите -ffast-math, -ffp-contract=fast, -fsingle-precision-constant, -Wdouble-promotion, не используете double (а он всё равно на аппаратных FPU от ST не поддерживается) и в 99% случаев вам аппаратный FPU не нужен.
Аппаратный FPU это только обработка видео, работа со спектром в реальном времени на частотах более 10 кГц и прочая тажёлая математика.
Компаратор, это да. Но они стоят дешевле, чем разницам между stm32F2xx и 3xx, не говоря уже о сотой серии. А вообще, STM32F0xx, ценой меньше ста рублей за чип даже в России, вот это наше всё.
Ага, сколько разница между умножением float 16 без FPU и с ним? Что-то в районе 30 раз по количеству потраченных тактов. Это весьма критично, например, когда у нас трехфазная сеть и нужно налету считать 3 синуса и корректировать форму тока, а если есть PFC перед этим? То еще 3 синуса и 3 вектора тока. И да, разница 1 такт против 30 — это вполне существенно, если мы строим систему с хорошим реал-таймом.

F2, F0 сравнивать с F334 смысла нет, ибо ни у того, ни у того нет столько гибкого ШИМа в виде HRTIM, они максимум подойдут чтобы частотник на них сделать.
Меньше — от 10 до 20 раз между программным и аппаратным FPU для большинства задач.
А вы посмотрите с какой скоростью синусы вычисляются без FPU. Я же привёл реальный пример, у контроллер меня спектр раскладывает на лету в прерываниях, несколько десятков полосовых фильтров считает и ещё кучу мелочёвки, типа RMS, постоянной составляющей и т.п. И всё это тысячи раз в секунду на эмуляции FPU. Пускал с аппаратным FPU на 4xx, но оказалось, что нет смысла.
Даже три десятка синусов несколько тысяч раз в секунду это не нагрузка даже для 2xx серии.
Большинство, кстати, совершенно не представляет, как правильно FPU использовать. Например, если вы не используете "-Wdouble-promotion", то вы совершенно точно делаете что-то не так, так как у вас где-то в коде почти наверняка будет неявное преобразование в double, вся плавающая точка тихо мирно свалится в эмуляцию и никто этого не заметит. И fastmath нужно использовать, иначе даже на аппаратном FPU куча программного кода генерируется а не команды FPU и т.д. и т.п.
При частоте 70 кГц ШИМ на 2xx даст вам шаг регулирования порядка 0.1%. На практике будет раза в четыре больше, т.к. у вас там фильтры на гораздо более низкие частоты среза, а регулировать вы можете хоть каждый шаг. Более того, уж если хочется извратиться, то управляем таймером на глубину 16, например, шагов с dithering (если очень хочется, то можно даже автоматизировать через DMA) и наслаждаемся красивым кодом и стабильным шагом регулирования порядка 0.09% и лучше — куда уже точнее?! И делать это можно даже на нулевой серии. Отлично работает уже не в одном проекте.
Раз уж бросаться в управление преобразователем голыми руками, то почему бы не применить лучшие техники, тем более, что вы рассчитываете на радиолюбителей и хотите низкой цены. HRTIM это барство ;)

P.S. Все читающим — гуру STM32 ищет очень высокооплачеваемую работу.
Зачем выдумывать эти извращения, когда можно сделать проще, быстрее и дешевле? 0,09% это прекрасно, а если 500 кГц? Вот HRTIM прекрасно позволит получить необходимый шаг и на такой частоте.

Еще интересный вопрос — вот мне надо 4 комплементарные пары, которые работают на разных частотах, где их в F0 взять то? А если надо сдвинуть фазу придется? Рисовать таблички что ли? Вот это решение от сенсея!))

Зачем вы double приплели я вообще не понял. F334 — это серия для управления силовыми преобразователями, двигателями и подобным, то есть это работа с float, даже 32-х битные числа тут не нужны.

P.S. гуру не ищут работу, им ее стабильно предлагают и так.
double к тому, что во всех сторонних более-менее сложный проектах, что я видел, были ошибки с неявным приведением к double и откатом к программному FPU.
P.S. Гуру без работы не сидит и даже типа-директор, но в «Советской России работа работает тебя» и гуру всё время пытаются предложить работу за 40 тысяч и искренне понимают, что не так, и потому немного саморекламы в неожиданных местах не повредит :)
Отличная статья. Прям захотелось обратно в эмбеддед вернуться.
На счет регулировки выходного напряжения, лучше что то вроде ПИД сделать.
Хотя, допустим, светодиодам это не нужно.
Спасибо) ПИД наверное перебор, хотя зависит от типа нагрузки, а вот ПИ-регулятор наверное самый популярный и достаточный вариант. Про него расскажу на следующей топологии, вероятно boost.
Ну если сопротивление нагрузки может меняться резко да на несколько порядков, то полный ПИД не помешает. Если она практически постоянная то ПИ вполне сойдёт.
А в токовую поцикловку тот контроллер сможет? Есть ли смьісл несведущему человеку с ним заморачиваться програмировать для одного устройства или лучше по-старинке спецмикруху за ноги дергать?
Как всегда отличная статья. А что использовали в качестве драйвера? Готовую ИС или рассыпуху? Что вы думаете об использовании драйверов, и об эффекте опрокидования в драйвере?
(В полевых транзисторах не последнюю роль играет эффект Миллера. Если транзистор коммутируется слишком быстро, а сопротивление цепи управления велико, напряжение на затворе может «подскакивать» на значительную (и даже опасную величину). Затвор, присоединенный к выходу драйвера к тиристорной p-n-p-n-структуре. Если приложенное напряжение окажется выше напряжения питания управляющего каскада, всего на 0,3 В, наступает эффект опрокидывания, паразитной тиристорной структуры, вывод питания замыкается на общий. Защелка не может восстановиться пока драйвер не останется без питания, ну или пока из него весь дым не выйдет.) Ссылка

Может не в тему, но хотел бы спросить что бы вы сделали в следующем кейсе.
Я балк собрал на 12 В до 2А на L7987, Dity до 100%, питаю автомобильным питанием 13.5 — 15 в. Все бы нечего, только в некоторых случаях, когда без АКБ запускают на вход может подаваться выпрямленный диодом по входу полупериод 50гц, амплитудой > 60 вольт. Ненагруженное напряжение с генератора. А надо чтобы железка работала. Я по входу поставил ряд кондеев электролитов, и TVS диод, но по габаритам кондеи больше чем на 50в не поставить. Попробовал специальные суржеры типа LT4356, хорошая защита, но не от перенапряжения, они полевик в лишейник превращают и он греться начинает при привышении напряжения и нагрузке. Все же думаю решать задачу влоб, давить TVS диодом мощным, и надеятся что в отличие от корпуса SMА корпус SMС выдержит.
Может хендмейд преобразователь как у вас собрать до 100 вольт на входе или еще как решить? Что скажите?
Схему силовой платы можно посмотреть в предыдущих статьях, он из серии 1ED от Infineon — 1 МГц и 6/-10А + гальваническая индуктивная развязка, по напряжению 1200В ключи может дергать. В данный драйверах печатный транс + комплементарная пара полевиков внутри.

В принципе мощность мелкая, можно поставить ключик на 100В и кондеры и уже проблем не будет, а так решение давить кратковременные выбросы TVS-ом вполне логичное, если не хочется переделывать buck в более высоковольтный.
Урааа!) Долгожданная статья! Все как обычно интересно и просто) С нетерпением ждем продолжения ваших статей. Так же про ютубчик не забывайте!) Так же хотелось бы чтоб Вы напомнили про TMS320, т.к. в структурке упоминалось про DSP…
TMS320F28 такой же DSP как F334 на самом деле) Вообще я планирую сделать такой же модуль на TMS320F280049 новеньком, чтобы они были pin-to-pin совместимы и тоже про них рассказать. Правда это будет не завтра, но будет 100%.
Шум на осциллографе — это не следствие отсутствия керамики, с ней кстати будет ещё больше иголок. Это проблема упрощённой системы обратной связи.
Обратная связь для таких преобразователей — это отдельный увлекательный квест, его хватит на несколько публикаций, особенно если планомерно наступать на все известные грабли.
Явная и очевидная грабля — это скорость реакции.
Ну не нужна она тут, с таким громадным отставанием в росте тока на дросселе. Фиксировать напряжение можно и нужно, но вот реагировать на него с подобной скоростью — излишне. Резко реагировать нужно на предельное значение тока и напряжения — выставляется отдельной опцией на самом ацп. Считать обратную связь проще сначала на бумажке, и только потом в цифре.
bsvi.ru/kompensaciya-obratnoj-svyazi-v-impulsnyx-istochnikax-pitaniya-chast-1
В данном случае можно немного схитрить, и считать сумму массива, допустим за 10 отчётов (или больше) — за одну точку «измерения», которая будет воздействовать на глубину шима.
Можно накинуть цифровых фильтров, мк для них и предназначен.
Можно и нужно реализовать программный старт/стоп — там вас тоже ждут откровения.

Общий комплекс мер подавления нежелательного шума должен демонстрировать стабильное потребление тока внешнего источника, при постоянной мощности нагрузки.

И ещё — километры и киловольты не относятся к характеристикам мк, вообще ни как.
1) Повешенная керамика отлично спасла от иголок меня, хотя о обратной связи я тоже в статье говорил, но тут это не критично, т.к. характер нагрузки активный.

2) Вы что-то путаете, с цифровым управлением весь квест сводится к подбору коэффициентов ПИ-регулятора и фильтрации данных с АЦП.

3) Статью эту видел, только она для аналогового управления, так что не понял к чему она тут. В случае цифры достаточно поставить ФНЧ и дальше отфильтровать с данных АЦП все граничные значения.
Статью эту видел, только она для аналогового управления, так что не понял к чему она тут.

Аналоговое управление — это видимость, тут главное общее — индуктивность в цепи обратной связи. Любая аналоговая схема прекрасно замещается в цифре. Это даже проще и нагляднее чем сразу цифра, или алгоритм.
Вы что-то путаете, с цифровым управлением весь квест сводится к подбору коэффициентов ПИ-регулятора и фильтрации данных с АЦП.

ПИ-регулятор — это и есть та самая аналоговая часть в цифровом представлении, с положительными и отрицательными обратными связями, с задержкой, и средой накопления энергии. Вам нужно просто взглянуть на него под немного иным углом.
Повешенная керамика отлично спасла от иголок меня

Есть старый хороший анекдот про плача с очень острым топором — а теперь кивни.
Наличие нижнего транзистора в преобразователе — превращает его в активный трансформатор. Где выходное напряжение жёстко связано с входным через коэффициент шима. Это означает что при условии повышения напряжения на выходе при неизменном шиме — на входе блока будет повышаться напряжение. Обратный процесс однако.
У вас это дело очень ярко проявляется — ток потребления на бп пляшет.
Все, теперь понял о чем вы — buck в обратную сторону это как раз boost же.
Общий посыл ваш понял, надо будет внимательнее и правда еще посмотреть в статью без скепсиса. Благодарю за аргументированные доводы)
Всё правильно, но если описать всё что вы тут изложили на пальцах, то нужна уже не статья а книжка. Надо писать цикл и продвигаться от простого к сложному. Иначе слишком длинно получится, да и у читающего вспухнет мозг от большого количество новой информации. Нужно время, чтобы она в голове уложилась.
нужна уже не статья а книжка

Как правило мозг кипит уже на разборе работы ёмкости и индуктивности. Это примитив, самое начало. Но далеко не все могут понять простую вещь — что запасается энергия, а не вольты и амперы.
Недавно на одном из популярных форумов обсуждался закон ома. Экспертов было огромное количество, каждый со своим мнением. Порвали три баяна, и баню сожгли на деревне. По этому простые вещи нужно подавать как есть. Тем кому интересно — копнут глубже. А огромное количество «экспертов» увидят непонятную длинную формулу, и самопроизвольно поделятся на ноль в своих мнениях.
Но далеко не все могут понять простую вещь — что запасается энергия, а не вольты и амперы.

Ну а что не так, если в формулу энергии в конденсаторе входит напряжение на нём, а в энергию индуктивности — ток? И из закона сохранения энергии начинает следовать стремление конденсатора сохранять напряжение и индуктивности — ток.
Разверните противоположную точку зрения.
Спасибо большое, отличная статья! Все наглядно и по полочкам разожено, буду рекомендовать начинающим.
Добавлю только про мертвое время (dead-time). Особо его подкручивать имеет небольшой смысл в hard-commutated конвертерах. Главное чтобы не было сквозняка или наоборот разрыва выходного тока.
А в резонансных ZVS конвертерах dead-time имеет гораздо большее значение, потому что именно тогда происходит перезаряд емкостей транзисторов и собственно достигается мягкая коммутация. Для получения предельной эффективности приходится вручную настраивать dead-time в каждой рабочей точке и загонять это все в виде таблиц в микропроцессор. В этим состоит огромное приемущество цифрового управления, что можно реализовывать нелинейные зависимости для достижения оптимальных режимов.
Отличная статья. Вопрос есть. Судя по картинке, у вас БП Korad. Крутилка нормально работает или начала уже дурить?
Пока еще проблемы с ним не вылезли, крутилка адекватно работает, использую уже года 2, может чуть дольше.

А почему у вас на Vin какие-то пики?


Еще интересно, какие в итоге получились пульсации и какой шум от переключений транзисторов? На картинках не видно — там графики от нуля. И еще, не описаны процессы, которые происходят в правой части схемы во время dead-time и как это отражается на Vout?


Когда мне нужен был DC/DC, я пошел на st.com и посчитал его себе в их программе. Там нужно было учитывать устойчивость получившейся схемы. Я в этом разбираться не стал, полагаясь на программу, а у вас вообще в статье про это ничего нет. Может быть, проясните этот вопрос?

Первое правило клуба частотной стабильности — не писать в статьях о частотной стабильности.
А что о ней писать?) Аналоговой части тут нет, а в цифре регулятор простейший для примера. Когда про ПИ буду писать, то там вопрос стабильности ОС подробно рассмотрю, там уже без базового матана и ТАУ особо не обойтись.
То, что у вас обратная связь сделана с дискретизацией на АЦП, строго говоря, не отменяет необходимости обеспечивать ее стабильность. В большинстве случаев прокатывает, но именно, что в большинстве, а не строго всегда.
Например, как пишут ниже, при низкой нагрузке. Или могут быть интересные эффекты при коэффициенте заполнения сильно выше 50%.
На осциллограммах видно где нули, слева экрана стрелки — это как раз ноль для конкретного канала. Пики на транзисторах в пределах 20В, но это просто от лабораторника до самой платы длинные тонкие провода, а значит там паразитная индуктивность достаточно высокая.

dt для LC-фильтра особо и не заметен, т.к. во время паузы LC-контур подпирается паразитным диодом нижнего ключа.
На осциллограммах видно где нули

где нули то видно, но хочется посмотреть на колебания Vout вокруг 5 вольт, а этого не видно из за масштаба. Вот такого плана картинка меня интересует:

А понял, пульсации. У меня они были максиму +-122 мВ, если интересное, то завтра или в понедельник могу снять осциллограмму и скинуть. Главное не забыть))
Скажите, правильно ли я понимаю, что у вас vt2 открыт всегда, пока что vt1 закрыт? (dead time не учитываем) Если это так, то при коэффициенте заполнения меньше 0.5 кпд преобразователя будет проигрывать классической схеме с диодом, потому что при после открытия vt2 сперва запасенная энергия в дросселе будет отдаваться в нагрузку, а потом ток потечет в обратную сторону, разряжая выходной конденсатор.
Насколько я понимаю, это нигде не сказано, но подразумевается, что девайс н когда не будет работать на маленькую нагрузку)
Но в целом да, отдельные чипы buck controller уже довольно давно делаются по схеме current-mode, а не voltage-mode, и там регулировка идёт с учётом пиковых токов как через нижний, так и через верхний транзистор. На самом деле, какой-то обратный ток через нижний транзистор на малых нагрузках допустим, и КПД будет все ещё выше, чем у диода, но контролировать и ограничивать его, конечно же, нужнля если мы говорим об универсальном, а не об узкоспециализированном устройстве.
Синхронные выпрямители «из коробки» с режимом прерывистого тока вообще не работают, там нужны специальные решения.
Мелкие придирки.
УГО диода Шоттки на первых рисунках скорее напоминает УГО двунаправленного стабилитрона. Внутренние диоды МОП транзисторов кстати правильно нарисованы. А в целом статья интересная и популярно изложена.
Правда если писать статью для начинающих, хорошо бы немного подробнее про снаббер рассказать. Они не обязаны знать что это такое, зачем нужен и как работает.
У двунаправленного стабилитрона «усики» вроде не перпендикулярно линии катода, а под углом 45 градусов, но могу о ошибаться как оно правильно) Про снаббер по хорошему надо статью написать, ибо штука полезная и его надо уметь считать.
со стабилитроном мне кажется наоборот. Обратите внимание как у внутри встроенных МОП транзисторов они стоят в вашей же схеме. Там обычные шоттки используются насколько я знаю.
Во да, внутри транзистора вроде и неправильно. Внутри действительно Шоттки, надо будет УГО поправить. Я его скопировал с рабочей библиотеки года 3 назад, даже особо внимания не обращал, но таки порядок должен быть)
Согласно нашему ГОСТу вы правы, извиняюсь за беспокойство. Но у буржуев разные обозначения встречал.
Уточню смою мысль: vt2 должен быть открыт только в то время, когда ток через него будет заряжать выходной конденсатор, а не все время пока что закрыт vt1. Именно так работает классический диод, но он плох из-за неустранимого падения напряжения на нем в открытом состоянии. Cхема в нынешнем виде будет иметь никудышный кпд при малом выходном напряжении и малой нагрузке, попробуйте замерить ток потребления преобразователя без нагрузки. Иными словами замена диода на синхронный выпрямитель реализована не корректно, дополнительно требуется контроль направления тока через vt2.
Уточню смою мысль: vt2 должен быть открыт только в то время, когда ток через него будет заряжать выходной конденсатор, а не все время пока что закрыт vt1.

Поскольку всё делается из рассчёта на неразрывность (>0 в любой момент времени, а точнее — пульсации не более 30%) тока дросселя, то ситуация с разрядом выходного фильтра через «нижний» транзистор невозможна в принципе.
Это не так. Запустите представленную схему без нагрузки: U вх=20В, U вых=12, и измерьте ток через vt1. Потом замените vt2 на диод и посмотрите на то, как изменится ток. При использовании диода на холостом ходу ток через vt1 будет около нулевым, а при работе с vt2 он будет вполне ощутимым, при этом схема с точки зрения кпд начинает работать как линейный регулятор.

Как вы полагаете, почему в классическом step-down внизу используется диод, а не ключ? Очень просто: диодом не нужно управлять, он сам понимает когда закрываться, что бы не было обратного тока. Для полноценной замены диода на ключ в схему последовательно с дросселем нужно добавить шунт и при помощи быстродействующего операционника вычислять время, когда ток на дросселе меняет направление, и в этот момент нижний ключ нужно запирать.

Скажите пожалуйста модель пинцета, что на фото с проверкой индуктивности дросселя.
Smart Tweezer Collibri. Советую смотреть на ebay, там можно купить его в пределах 10к. Я покупал в Финляндии с возвратом налогов за 200 евро, а в отечественных магазинах от стоит 20-25к, что определенно лютая дичь и жадность))

Но пинцет стоит своих денег, настолько RLC уже и не помню когда использовал последний раз, этот и удобнее и точности хватает даже индуктивность дорог от 10 нГн измерять.
вопрос немного не в тему, извините.
задумался как расово-правильно остановить ШИМ

void tim1_stop (void)
{
while ((????????????){ // как здесь правильно дождаться конца счета регистра ARR????
TIM1->CCER &= ~TIM_CCER_CC1E;
TIM1->CCER &= ~TIM_CCER_CC1NE;
TIM1->BDTR &= ~TIM_BDTR_MOE;
TIM1->CR1 &= ~TIM_CR1_CEN;
}
}
Дождаться окончание периода, поймать флаг о данном событие и выключить его. Еще стоит задуматься «а надо ли выключать?», уверен что во многих случаях можно установить duty в ноль, что более рассово-правильно, т.к. вкл/выкл таймера происходит не мгновенно, а запись duty за такт.
Я про DT в 104 мс как-то не очень уловил. При частоте коммутации в 100 кГц (жёлтая надпись 102.4 кГц — это же как раз частота переключений ключа?) период будет всего 10 мкс, и 1% от этого — примерно 100 нс. Да и на скриншоте цена деления времени 40 нс вроде как (W сверху справа).
Так везде, в том числе и в комментариях кода, написаны наносекунды. Про 40 нс так же и в тексте написано.

P.S. если вы увидели опечатку (не вижу ее почему-то), то стоит написать как все в лс, а не загромождать комментарии текстом, который не очень касается основной темы статьи.
Да, как выше заметили, в статье не хватает расчетов условий когда continuous condution переходит в discontinuous, а также объяснения чем это грозит. А вообще, расчет обратной связи это, пожалуй, самая интересная часть в проектировании, изучение которой вы незаслуженно обошли стороной. Вы удивитесь, но control theory совершенно одинаково работает и для аналога и для цифры, в цифре у нас разве что немного больше возможностей для творчества, пока вычислительная мощность позволяет, конечно же.
Для более подробного ознакомления с DCM и CCM я оставил ссылку на книжку. Не уже ли все настолько ленивые, что мне нужно текст из книжки копипасть в статью?)) Статья и так объемная вышла, а увеличивать ее объем еще в 2 раза смысла не вижу.

Я перед собой ставлю задачу лишь заинтересовать тех, кому это нужно, чтобы они пошли дальше и знали что гуглить и про что читать, а не написать Войну и Мир в «кратком изложение».
Возможно, я не заметил, но не затронута тема времени обратного восстановления диода. Если при включении верхнего транзистора диод еще будет восстанавливаться, то получим КЗ. Диоды Шоттки, условно, имеют время обратного восстановления равное 0, но для высоковольтных сборок это уже не так.
Для высоковольтных сборок есть SiC и частоты там обычно десятки кГц, так что можно пренебречь в простых задачах.
Новичковый вопрос: почему нужно задействовать два канала ШИМ? Нельзя обойтись одним каналом и инвертором?
Потому что вам не нужны сквозные токи, возникающие в момент, когда один транзистор еще не полностью закрылся, а второй уже начал открываться. Для того, чтобы так не было, нужно, чтобы тайминг двух каналов быть чуть-чуть хитрее, чем меандр и инвертированный меандр.
Выше уже ответили. Могу добавить, что на логике обычной можно сделать аппаратный dead-time, но это уже куча рассыпухи, а не один инвертор.
У меня получается, если совсем «в лоб», простейший счётчик чёт-нечет (чтобы второй транзистор всегда открывался последним, а закрывался первым) и 30 метров провода для 100нс задержки. Ну да, не совсем то, что хотелось бы, уж очень мнимое упрощение получается.

Велосипед уже изобретен, и без 30 метров проводов)
Нижняя схема на рисунке. Делает из одного сигнала два неперекрывающихся. Dead time регулируется числом инверторов или конденсаторами на выходе инверторов.
Кстати, stm32f334 discovery уже содержит в себе схему buck-boost преобразователя.
Так что если просто поиграться — то делать ничего не надо.

image
Кому просто поиграться — не покупает узкоспециализированные отладки, а берет плату на f103 с Китая за 100 рублей и играется))
Only those users with full accounts are able to leave comments. Log in, please.