На самом деле SEPIC (и иные топологии) на микроконтроллерах делают. И даже работает. Если осторожно. Вот
пример SEPIC на микроконтроллере. Или
другой пример - схема и описание. Второе - "перевернутый buck", но ряд идей оттуда пригодится и для SEPIC-а.
Зачем это нужно? Иногда бывает так что конструкция by design предполагает микроконтроллер, от которого нельзя избавиться. А иногда еще и требования к преобразованию хитрые. Решение напрашивается. Особенно это любят всякие любители многорежимных фонариков и тому подобного, где микроконтроллер всяко есть, для обеспечения этих самых режимов. А на второй схеме автор схемы еще и КПД заморочился: "усиление" портов (о нем ниже), "крутой" полевой транзистор (с очень низким Rds_on), а изюминка - в алгоритме: его прошивка сперва понижает напряжение, поддерживая заданный ток через диод. А когда литиевый аккумулятор настолько сел что ток через диод не превышает допустимый, даже при 100% заполнении - микроконтроллер перестает коммутировать транзистор и он всегда открыт, аккумулятор напрямую досаживается на диод, КПД этого кастома на конечном участке разрядной кривой - почти 100%. Ну и какой готовый чип сможет buck с такой нестандартной, application specific логикой?
Из очевидных проблем видится:
1) У STM32 выходное напряжение только 3.3 вольта, поэтому при желании дергать полевик GPIO портом - придется его придирчиво выбирать из наиболее низковольтных логических. Они есть, но - не каждый первый транзистор подойдет.
2) У STM32 не очень сильные порты. Хоть и не очень слабые. Поэтому про высокую частоту преобразования придется забыть, иначе будут заметные потери из-за фронтов, и вообще, превышать допустимый ток порта, особенно средний - нехорошо. По этому поводу бывают варианты, см. ниже...
3) Как верно заметили - при отладке есть риск пожечь все и вся . С другой стороны, по первости можно спалить и чипы конверторов, как в соседней теме про ST1S10. Из очевидных failsafe - pull-down резистор, так что по умолчанию транзистор будет закрыт, пока прошивка не возжелает чего-то иного. Если вас заклинит с открытым транзистором или вы будете бесконтрольно качать энергию, игнорируя feedback - ну извините, что-нибудь сгорит.
4) В большинстве случаев STM32 надо линейный стаб для его питания, это еще +1 чип. Небольшой и дешевый, но все-таки. Хотя если микроконтроллер есть - то и стаб для него всяко будет...
На самом деле, как можно видеть на второй схеме, со "слабыми" портами можно разобраться, усилив их чем-нибудь. Тот человек усилил их аналоговым ключом семейства TS5A (от Ti), коммутируя им затвор полевика с питания на землю. Но сам этот TS5A стоит денег и затея в таком формате имеет смысл только при желании получить крутой КПД при очень кастомных требованиях к управлению. Зато усиление порта этим TS5A позволяет тому человеку щелкать с высокой частотой крайне низкоомным, а потому обладающим достаточно большим зарядом затвора полевиком, не теряя однако много энергии на фронтах из-за приличного тока вгоняемого в затвор. Так уже можно разогнаться до приличных частот коммутации. Если порты не усиливать - придется брать полевики с минимальным зарядом затвора. А значит относительно высокоомные. И частоту коммутации снижать. Т.е. уже не так здорово по сравнению с современными чипами будет выглядеть.