Pull to refresh

Comments 94

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

Статья понравилась, читал на одном дыхании, у меня были решения когда я отдавал «ненужную часть микроконтроллера» под управление питанием, это и впрямь будет дешевле. Но отдельный контроллер только для питания это как то роскошно.
За проделаную работу + статью отдельно респект.
Рад что понравилась статья))
Если говорить о применяемости, то от задачи зависит конечно же, бездумно лепить контроллеры тоже плохой путь. Если преобразователь простой, как в описанном в статье варианте двунаправленного buck-boost для лития, то он вполне влезает в «ненужную часть», а вот если что-то большое и страшное… бывали преобразователи (сварочник с PFC), где мне не хватало tms320f28069 даже, хотя камень достаточно злой, но и алгоритмы управления дугой в TIG тоже злые.
А можете в следующий раз рассказать, особенности поддержания дуги, не обязательно сварочной? Какие ресурсы тратятся и какие вычисления, с какой скоростью нужны?
Постепенно да, пока в планах разобрать пару топологий: мост, пуш-пулл, LLC, а потом уже перейду к алгоритмам и там как раз расскажу про оценку ресурсов и выбор управляющего контроллера.
Было бы здорово разобрать резонансные топологии
LLC полумост разобрать планирую, а вот ZVS мост уже вряд ли, т.к. с ним почти нет опыта.
Недавно, когда проектировал светодиодный осветитель с управляемой яркостью, наткнулся на упоминание SEPIC топологии. Он ней не планируете рассказать?
Уже про них спрашивали, но к сожалению нет, т.к. данную топологию использовал пару раз и на мощностях в пределах 10 Вт.

F28069 — недостаточно злой, он греется, как последняя сволочь и в нем зачем-то USB.
Особого профита от него лично я не нашел, хотя отладка валяется в столе.

Тоже к такому выводу пришел, сейчас использую F28377S в крупных проектах и F28035 там где всего один преобразователь, еще раздобыл новый F280049 и вот он очень неплох, правда пока купить в РФ проблема.
*с уважением* Не с алиэкспресса этот невзрачный мультиметр…
А что за прибор используется для измерения индуктивности такой?

И еще вопрос: Можно ли последовательно соединить несколько таких преобразователей для получения большего напряжения на выходе?

Спасибо за статьи!
Smart Tweezers Colibri, игрушка дорогая, но по точности на уровне настольного RLC-метра. Если что на ebay дешевле всего.

Соединять можно, но тогда метод управления надо current mode, чтобы блоки равномерно нагружались. Про данный алгоритма управления в дальнейшем планирую так же в статье рассказать подробно, либо можете почитать в аппноутах у Texas, например.
Спасибо! Я год ждал эту статью. Пробовал пользоваться разными калькуляторами по расчету индуктивностей, но они вообще не давали представления откуда берут результат, а общая теория оказалась слишком заумной. В итоге все купил и бросил. Сейчас проверил свои старые выводы, все оказалось верно. Повод наконец собрать.
А чего собираете, если не секрет?
Что касается методик расчетов, то все сильно проще, если пренебречь рядом вещей. В принципе в даташитах на аналоговые микрухи типа TPS61175 так и делают, чтобы не грузить людей страшными формулами))
Дроссель для зарядки электробайка на 50В 50А входного. Готовые почему то в продаже закончились. Электронная часть меня не волнует, ее штатно обеспечивает контролер.
Спасибо за статью. Очень познавательно. В описании опытов входное напряжение 10В указано, а на картинках фигурирует 12В. Это описка или я чего-то не понял?
Ой, спасибо за наблюдение! Исправлю сейчас описание опытов, все проводилось при 12В разумеется.
Хороший материал, читать интересно!
Спасибо вам большое за статьи. Каждый раз жду с нетерпением.
Один вопрос, если позволите. Мне кажется странным, что в формуле расчета выходного напряжения такого преобразователя нет сопротивления нагрузки. Ведь если нагрузка не подключена (как на схеме перед «опытами»), то каждый цикл будет подзаряжаться выходная емкость и напряжение будет расти неограниченно, ведь индуктивность будет «передавливать» любое выходное напряжение. По крайней мере пока что-нибудь не пробьется. Здесь наверное неявно подразумеваются какие-то дополнительные условия?
По экспериментируйте)
Вообще пропорция от заполнения железно выдерживается и без ОС. Сопротивление нагрузки надо учитывать при условии, что выходная емкость (Cout) поставлена минимальная, например, посчитали 147 мкФ и поставили 150 или 220. Если вы ставите выходную емкость в несколько раз больше, то емкость не успевает разряжаться. Все это актуально для ситуации, когда нагрузка статична, например, заряжаем АКБ.

Если нагрузка меняется динамично, например, у нас PFC в стабилизаторе напряжения, то изменение нагрузки (ее сопротивления полного по сути) будет влиять на выходное напряжение — оно будет скакать. Для этого вводят обратную связь по напряжению, как раз чтобы компенсировать изменение как нагрузки, так и входного напряжения.
«Вообще пропорция от заполнения железно выдерживается и без ОС.»
Спасибо за ответ. Может мне действительно следует поизучать матчасть получше, но тут же вроде все очевидно… Честное слово, не вижу ни одной причины стабилизации выходного напряжения при отличном от ноля коэффициенте заполнения и отсутствии нагрузки. Пойду изучать.
Автор не учитывает режим разрывных токов.
В режиме разрывных токов (а boost туда непременно сваливается при нагрузке меньше некоторой минимальной, зависящей от L, Vin, Vout) выходное напряжение перестает зависеть от входного по формуле Vout = Vin / (1 — D). Формула выходного напряжения становится несколько страшной :) и оно зависит не только от входного напряжения и коэффициента заполнения, но также и от выходного тока. Если в таком режиме поддерживать коэффициент заполнения из расчёта Vout = Vin / (1 — D), то, конечно, выходное напряжение устремится к бесконечности.
Это очень-очень похоже на мое интуитивное понимание того что надо искать. Не подскажете ли где посмотреть толковый анализ со «страшной формулой выходного напряжения»?
в гугле: «dcm boost», там первая ссылка «Chapter 5. The Discontinuous Conduction Mode» из курса Fundamentals of Power Electronics университета Колорадо.
в целом весь курс советую посмотреть, если интересуетесь силовой электроникой.
Да, очень интересуюсь! Спасибо вам за помощь. Книжка очень понравилась, буду читать полностью. Теперь я абсолютно удовлетворен и могу сказать, что понимаю границы применимости формулы M(D) = Vout / Vin = 1 / (1 — D) для boost-конвертора (ну и buck тоже) с диодным выпрямителем. Кто хочет просто посмотреть результат для boost и «страшную формулу» заглядывайте сразу на 33 страницу. Формула конечно не страшная, просто это решение квадратного уравнения и некий характерный отпечаток дискриминанта запечатлен в ее внешности :)
NDD, читал эту 5 главу и никак не мог увязать с ней тот факт, что у Ильи конвертор показал правильный результат на холостом ходе. В железе. Но вот тут пониже обратили внимание что выпрямитель-то у нас синхронный и это уже совсем другая история т. к. ток через индуктивность может менять направление. Вот тут-то и сложилась полная картинка.

Я пока не могу ставить плюсики, но кто может поблагодарите пожалуйста NordicEnergy за статью, NDD и DenisHW за очень полезные пояснения.
Синхронному бусту немного начхать на то, есть ли ток нагрузки или нет. Он будет держать то соотношение напряжения на входах-выходах, которое задаётся коэффициентом заполнения. Вот если бы верхний транзистор изображал из себя диод за счет микросхемы управления (такие есть специальные), тогда другое дело.
У товарища синхронный буст, он всегда работает в двунаправленном режиме и ему нафиг не нужна ООС — подобное на NE555 с ТГР на затворы фетов у меня работает и никаких эффектов. Вот если бы там стоял диод вместо верхнего мосфета — да, напряжение без нагрузки повышалось бы, пока что-то не пробило.
UPD: всегда смотри всю ленту комментов… DenisHW ниже уже то же самое сказал.
Так уж сложилось что схема на 190В как раз для ИН-12 лежала у меня в столе. Правда контроллер не MC34063, а MAX1771. Входное напряжение питания 12 вольт, нагрузка 100кОм. Картинки с осциллографа imgur.com/a/WTNBCqI. Желтый щуп на затворе и зеленый на выходе схемы. При отключении нагрузки скважность падает до 3%.
Тоже грешен, у меня 230V вроде, но не с 12, а 24-30V — дроссель греется и и если поднять выход ещё на десяточку — попадает в насыщение, но делал из того что было под рукой. Из доступного в следующий раз хочу попробовать с трансформатором от дежурки из компового БП
Если дроссель греется надо либо поднимать частоту, либо менять дроссель. Большие металлокерамические кольца хорошо подходят и мотаются на глазок, точности вообще не надо.
Для дросселя греться это нормально. Для многих материалов минимальные потери находятся в области высоких температур. Поэтому если дроссель греется и это не проблема для остальной конструкции, то пусть греется. 100 градусов это ещё нормальная температура для дросселя.
Потому что «китай» — сделано впритык. Дроссель перемотаю может быть когда-нибудь, есть жирный альсифер из СССР, по расчётам — должен вообще быть холодным. Вот только провод надо где то разложить да свить из нескольких…
При повышении выходного напряжения D станет равным нулю, транзистор VT1 перестанет открываться и на выходе будет входное питание — падение на диоде.
Я понимаю вашу мысль. Действительно, по-видимому расти напряжение перестанет когда обратная связь запретит открываться транзистору. Но в формуле ведь на обратную связь нет никакого намека. Да и Илья вот пишет, что работать будет даже без обратной связи. Пока не понимаю почему. Только вот до «входного напряжения — падение на диоде» конечно напряжение не упадет, ведь обратная связь начнет дергать транзистор сразу как только напряжение на выходе упадет чуть ниже порогового.
То, что вы видите на осциллограммах там где Опыт 1,2,3 — это без ОС и без нагрузки, по сути холостой ход.
Вы для меня авторитет. Это безусловно. Просто не могу понять куда девается энергия из индуктивности. При каждом замыкании ключа она подрастает, так ведь? Ну потому, что напряжение на ней равно входному напряжению и не важно какой через нее уже идет ток, он еще подрастет. Значит подрастет запас энергии в магнитном поле. А если у нас холостой ход, то при закрытом ключе эту энергию некуда сбросить кроме как в конденсатор. Вот и получается, что по закону сохранения энергии при поступлении энергии извне она должна где-то накапливаться (рассеиваться ей просто негде). И мест для накопления всего два. Это либо катушка либо конденсатор. В первом случае бесконечно растет ток, во втором случае напряжение. А не поступать энергия от источника питания не может и возвращаться в него не может, это тоже исключено.
Извините за настойчивость, не хочется раздражать вас, тем более надоедать. Пока прекращаю писать «до полного прозрения».
Мыслите верно, только в моем случае выходной конденсатор в 30 раз больше требуемого, он выполняет роль нагрузки. У электролитов достаточно большая утечка, а дроссель только и успевает, что компенсировать ее. Поставьте на выход 220 мкФ и будет по вашему описанию все — напруга без ОС попрет вверх. Поэтому и предложил выше по экспериментировать)))

На счет настойчивости не страшно, мы тут и собрались чтобы обсуждать тему конкретную.
Спасибо за терпение. Посмотрел как выводится приведенное соотношение входного и выходного напряжения через коэффициент заполнения (на английской википедии). Честно говоря, с математической точки зрения — ужас. Записывается уравнение для изменения тока индуктивности за время открытого ключа и уравнение энергии в индуктивности через ток, уравнение перенесенной через диод энергии за время закрытого ключа (кстати, конденсатор считается ооочень большим), а потом делается предположение, что существует состояние равновесия когда поступившая в индуктивность энергия равна переданной через диод энергии. А если такого равновесия не существует, как например при холостом ходе? И чего тогда стоят все эти выкладки? Поищу-ка я толковую советскую книжку. Супостаты меня разочаровали.
Мне вот ваше объяснение утечками конденсаторов тоже как-то не нравится. Входной дроссель рассчитан перекачивать 60 Вт, если бы эта энергия рассеялась в конденсаторах… Что-то тут не так.
В ваттах считать бесполезно, т.к. это попугаи в данном случае. Правильно считать или через заряд или через энергию накапливаемую и расходуемую в обоих контурах.
Что касается вики, то там все нормально было когда читал и с точки зрения физики верно, но вот к сожалению компоненты у нас не идеальные)))

В толковых советских книгах про dc/dc не очень в курсе были, да и к сожалению это не эталон, ибо в книгах 80-х годов наблюдал откровенную дичь при расчете трансформаторов для двухтактных топологий.
Можете не искать советскую книжку, разве что есть недавняя российская в 2 томах о проектировании ИП, но и там будет то же самое. Все исходят из того, что в установившемся режиме (независимо от наличия либо отсутствия нагрузки) средний ток через емкость равен нулю, а среднее напряжение на индуктивности равно ему же. Это фундаментальное свойство и, как любое фундаментальное свойство, проявляется при любых условиях.

А на мой взгляд (и не только на мой), курс Эрика — самое лучшее, что только есть, так что обязательно проштудируйте до конца.
Да, книжку Эриксона оценил. Действительно глубоко копает. Приятно читать. Так понимаю, что на русский она так и не была переведена. Да и на английском выходила последний раз в начале 2000-х. Конечно, это же не ширпотреб, массово не продается. А что за российская в 2-х томах? Название подскажете?

Ну и про упомянутые фундаментальные свойства конденсаторов и индуктивностей… Нужно анализировать конкретную ситуацию. Вы же отметили необходимость установившегося процесса. А если процесс не установившийся, то нельзя считать обычным образом баланс энергии, как это делают в большинстве книжек. Пусть сначала покажут при каких условиях режим может установиться на идеальных компонентах, которые они рассматривают. А то для boost-а с диодом в режиме холостого хода и с постоянным D напряжение на выходе растет бесконечно. Средний ток через емкость не ноль. Это не установившийся режим, а формулу для него выводят из предположения что он установился. Нонсенс, который переписывают из книжки в книжку, а оттуда в википедию. А просто при большом сопротивлении нагрузки установившийся режим вполне себе будет иметь место. Вот только напряжение выходное будет зависеть уже не только от D, а еще и от L, R, T. И что же большинство книжек об этом умалчивает? Ведь последствия непонимания могут быть серьезные. Запитывает студент от такого преобразователя (без обратной связи, зачем она нужна? по формуле D посчитаем чтобы от соляной батарейки запитать) микроконтроллер — все работает, усыпляет микроконтроллер и волшебный дым во сне его покидает. Вот мне и не нравится во всей этой истории, что когда стал искать серьезный анализ (десятка два статей и книжек нагуглил) — везде такое технопорно. И только у Эриксона душу успокоил. Долгих ему лет и здоровья.
Что-то тут не так.
У меня UPS с PFC примерно 700-750V на выходе и тоже не понятно куда там уходит энергия на холостых. Дроссель PFC очень горячий. Заряд на кондёрах висит минуты после отключения — врядли тут большая утечка виновата. Скорее всего потери в сердечнике (по расчётам очень примерно так и получалось). Хочу попробовать сделать маломощный преобразователь и держать заряд на конденсаторах от него.
Да никуда она не рассеивается, тут синхронный преобразователь, он всегда двунаправленный, у него ток в дросселе направление меняет на холостом ходу.
UPD: всегда смотри всю ленту комментов… DenisHW ниже уже то же самое сказал.
Утечки тут не при чем, у вас синхронный буст, замените верхний транзистор диодом и преобразователь за счет ООС будет отключаться без нагрузки (пропускать такты). Если ООС нормально сделана, конечно (лень смотреть схему с планшета).
UPD: всегда смотри всю ленту комментов… DenisHW ниже уже то же самое сказал.
У автора работают оба ключа (синхронное выпрямление), поэтому режим все-равно получается CCM и формула выходного напряжения не изменяется.Т.к. верхний ключ позволяет току в индуктивности течь в обоих направлениях, то индуктивность и емкость обмениваются энергией. Без нагрузки средний ток в индуктивности будет ноль, но пик-ту-пик такой-же как и с нагрузкой. Это ухудшает кпд на низких нагрузках и иногда верхний ключ отключают при малых токах.
Стоит выключить верхний ключ и напряжения на выходе пойдет вверх (без ОС). Утечка электролитов здесь не причем.
Действительно. Если вместо диода стоит синхронный ключ, то выходная емкость может своим напряжением развернуть ток индуктивности и вернуть энергию в источник питания. И этот возврат будет продолжаться даже после закрытия верхнего ключа и открытия нижнего! Спасибо что заострили на этом внимание. Я впервые столкнулся с принципиальной разницей между диодным и синхронным выпрямителем и это очень познавательно. Просто никогда не задумывался об этом раньше. Спасибо вам.

Илья, а ведь вы могли бы в два счета проверить это предположение в режиме холостого хода осциллографом. Можно даже без шунта обойтись. Достаточно просто снять осциллограмму с индуктивности. Проверите гипотезу?
Да, не вопрос, сегодня вечером ткнусь и тогда осциллограммы прикреплю)
Очень хорошая статья, вполне продолжающая тему преобразователей… Только вот я тут встретился с редкой топологией (в смысле примеров применения) Zeta — так то очень уж хороша — и повышать может и понижать, и ключей тоже всего два… все хорошо — только вот управление при большой нагрузке не могу построить (как оказалось, не только я — из-за нелинейности характеристики, а она почти кубическая, это управление как только не строили — так и не построили толком за последние 10 лет). И в результате при предельном режиме как правильно писал автор статьи — «бабах»! на частотах порядка 250 кГц и мощности всего в 50 ватт… Может кто-нибудь занимался управлением такой топологией и может подсказать?
Прекрасная статья!) Спасибо за такой труд, с нетерпением ждем продолжения!
По ходу, сечение обмоточного провода посчитано неверно: S=pi*D*D/4 = 3.14*0.6*0.6/4=0.283 кв.мм, а не 0,471 кв.мм. От того дроссель и греется, наверное, сильно.
Спасибо, верно заметили, исправил) Дроссель греется до 32...32 градусов, что сильно ниже обычных средних показателей, т.к. размер сердечника сильно избыточен + сам дроссель не в корпусе, а в таких условиях 6...8 А/мм2 как раз и рекомендуют.

При частоте 100 кГц глубина протекания тока в меди всего 0,2 мм (Скин- эффект). Так что провод толще 0,4 мм (для 100 кГц) брать смысла нет. Нужно мотать в несколько "тонких" проводов. С ростом частоты все куда печальнее

Откуда такие цифры то фантастические? Вы много где литцендрат видели в промышленных железках? Да и не стоит воспринимать влияние скин-эффекта как что-то дискретное типа «на 0.2 мм ток проходит, а глубже — нет». Ток будет и на большей глубине протекать, просто плотность его будет падать по мере приближения к центру проводника.
Глубина скин-эффекта Δ — это глубина, на которой плотность тока уменьшается в 2,7 раза, а не до нуля, поэтому в практических целях имеет смысл выбирать проводник толщиной не менее 5Δ.
Я не спец в силовых преобразователях, поэтому заранее извиняюсь если вопрос глупый, но меня заинтересовал вот этот момент:
image
Так же при таком коэффициенте заполнения получается, что транзистор открыт почти всегда

А можно ли сделать так: 1) установить D=50%, 2) продублировать цепь L1/VD1/VT1, и подключить ее параллельно в точках GND, синего и желтого каналов 3) на затвор VT2 подать инверсию того, что идет на VT1.
Вроде в этом случае 2 эти цепи должны поднять напряжение на выходе в бесконечность.
Или я что-то упустил?
По описанию вы получите 2-х фазный boost converter. Это собственно увеличит мощность в 2 раза и позволит уменьшить значение индуктивности для каждого канала и выходную емкость.
Про увеличение мощности/уменьшение номиналов и габаритов это понятно. Хотелось бы именно обойти ограничение по поднятию напряжения в 4 раза, которое вы обозначили в статье.
Многофазность позволит увеличит это соотношение, т.к. на мощности в сотни ватт основное ограничение это потери на ключах, но глобально картины мира не изменит. Поэтому обычно просто меняют топологию если нужна большая разница между входом и выходом, чтобы на передаточную функцию влиял не только коэффициент заполнения, но и коэффициент трансформации.
Если аккуратно сделать все расчеты в аналитической форме, то можно легко определить максимально возможное увеличение напряжения, которое составит sqrt(R/r), где R — сопротивление нагрузки, а r — сопротивление обмотки дросселя. Если Вы ставите две ветки в параллель, то сопротивление дросселя падает и Вы вправе надеяться на увеличение напряжения в 1,41 раза. Но вряд ли получится именно так, скорее раза в 1,3.
зачем в формуле задания пульсации тока дросселя делить средний ток на (1 — D)?
Там же Iout(max) — это ток нагрузки, а не дросселя. Ток в дросселе как раз больше в 1/(1-D) и равен току от источника. В buck как раз без этого множителя будет.
точно. не обратил внимания, что считают через выходной ток. а не входной.
Как всегда Ваша статья понравилась. Спасибо!
И Вы правы)
Тут наверняка набегут специалисты и расскажут, как они в часах на ИН-12 с помощью MC34063 повышали напряжение boost-ом из +5В аж в целых +180В!


Я сам так делал, только у меня из +12В получалось 280В.
Ток мне нужен был 1,5мА. Реально всё работает без проблем. Может быть я и не прав, но всё же не убедили, что максимум в 3-4 раза только можно поднимать напряжение.
Пожалуйста! Да в данной задаче такое решение в принципе оправдано, пока ток входной не больше 1А. А вот выше уже конечное такое себе)
Согласен, не обратил внимание, что Вы конкретно под 60Вт ставили задачу разработать буст и соответственно под него описываете всё.

Хотелось бы увидеть в дальнейшем Ваше описание топологии SEPIC ;)
По ней точно не напишу, т.к. использовал ее пару раз в жизни на мелких мощностях. Может кто-то еще созреет и выдаст статью, встречал тут про flyback, может и до sepic-а дойдет))
Спасибо за интересную статью. Меня очень интересует работа трехфазного активного выпрямителя в части повышения напряжения, но источников, акцентирующих внимание именно на этом вопросе, я нигде не нашла. Скажите, пожалуйста, в двух словах, верны ли следующие утверждения: 1) Формирование входного тока в активном выпрямителе осуществляется следящей системой при помощи широтно-импульсной модуляции. 2) Увеличивая амплитуду сигнала задания на входной ток, т. е. увеличивая коэффициент заполнения ШИМ для входного тока, получаем увеличение напряжения на выходе преобразователя, аналогично преобразователю, описанному в статье, сохраняя коэффициент мощности, близкий к 1. 3) Т. о. получаем возможность увеличить выходное напряжение примерно до х4 от действующего входного, что обычно и указывается для однофазных схем: in 85–265 VAC, out 400 V?
Активный pfc одно- или трехфазный почти всегда строят как boost (хотя бывают и другие топологии и решения), поэтому увеличивая заполнение ШИМ — мы увеличиваем постоянное напряжение на выходе.
Суть PFC в том, что мы еще вычисляем и отслеживаем вектор тока в каждой фазе и делаем так, чтобы ток изменялся по синусоидальному закону. Грубо говоря на вход ключей в pfc мы подаем ШИМ сигнал промодулированный синусоидой. Меняя амплитуду синусоиды — мы изменяем напряжение на выходе выпрямителя.

Да, верно. В однофазных системах универсальный вход 85-265В, хотя бывает и другой диапазон, например, в UPS обычно 140-265В или типа того. В трехфазных выпрямителях обычно делают выходную шину +-400В или 800В.
Спасибо за ответ, буду ждать следующих статей:)

Спасибо за статью! А насколько это надёжно в принципе — управлять конвертером с МК? Что если он подвиснет в момент открытого выходного канала (в случае с buck входное напряжение пойдёт на выход) и пока watchdog среагирует и перезапустит МК может пройти пару мс и что-нибудь спалить на выходе? Или таймер на прерывании с мониторингом обратной связи выхода (через делитель) достаточно отказоустойчивый инструмент? Я думаю использовать в своём проекте специальный IC конвертера в первую очередь из-за надёжности, кучи защит и минимизации возможности допустить ошибку в коде. А управлять им уже через МК. Не хотелось бы спалить чей-нибудь смартфон или что подороже.

Тут ещё вопрос, от чего он зависнет, от кривого кода или от помех?

Ну если МК будет не только конвертером заниматься, а, скажем, по wifi/usb что-то делать, выводить информацию на экран, что-то на sd карточку писать итд. то вариантов где-то в коде подлагать будет достаточно. Плюс помехи или вдруг напряжение питания просядет сильно.

Чтобы все реализовать на одном камне использую двухядерные решения с сопроцессором типа tms320f28379d, в случае с stm32f334 сей камень должен только управлять преобразователем + слать данные по RS485 (Modbus), а взаимодействие с человеком (дисплеи, usb и прочее) уже берет на себя другое устройство или камень. В одной железке использую F334 + F042 для usb и дисплея простенького, получается дешево, сердито и не в ущерб надежности.
А какой минимальный STM32 можно использовать под эти цели? А то F334 это как-то дороговато, если только для этой цели. F1 какой-то может подойдёт, куда смотреть в datasheet?
Кстати про мультиядерность — сразу вспоминается ESP32, но пинов негусто.
ESP32 — это мусор. Суть в первую очередь в наличии HRPWM, если нужны частоты выше 70-80 кГц, а он есть только у F334 и H743, если говорить на stm. Кстати, F334 стоит около 1-1,5$, нормальный ШИМ-контроллер часто стоит дороже.

Если не секрет, почему именно


ESP32 — это мусор.

Или именно для этой задачи?
Использовал его пару раз, да и в IoT его любят ставить.

Любят конечно, но в нём много BLOB-ов с неподконтрольным содержимым, в любой момент он может начать жить своей жизнью, рандомные задержки выполнения пользовательского кода и т.п. прелести. Для нетребовательного ИОТ пойдет, но что-то более ответственное и уже нет даже элементарных гарантий.
Конкретно в этой задаче. Если говорить про IoT, то для домашних поделок хороший модуль: простой, популярный и дешевый.
Под HRPWM вы же понимаете наличие на контроллере таймера HRTIM1 (который, судя по описанию, еще и обвешанкучей защит)?
Ага, он самый. Вариантов защиты там несколько: по компаратору встроенному, по сигналу с ацп и по входам FAULT (аналог BKIN на других драйверах) с очень гибкой настройкой.
От помех виснет не только проц, но и любой аналоговый контроллер, поэтому если проектировать бездумно, то оба варианта будут обладать нулевой надежностью. Требования к коду тоже весьма высоки, если касательно stm то автоматом придется забыть о HAL, LL и RTOS в принципе.

Ничего не сгорит с управлением на мк/dsp, т.к. аппаратные защиты обязательны, как минимум по току и температуре, а еще неплохо бы на выходе ставить защиту от повышенного выхода (OVP) на компараторе. Все сигналы ошибок заводятся на вход драйверов, чтобы их отключить + на МК чтобы эту ошибку обработать.

На деле вся надежность зависит только от разработчика, можно из ардуины сделать нормально надежное решение, если подойти с умом.
А если не секрет, почему именно придется
забыть о HAL, LL и RTOS в принципе
в силу требований к коду, например TI в своих реализациях цифровых источников вполне себе использует TI-RTOS, может все таки, не надо столь категорично?
Утомили уже призывы писать на «чистом С» и «на регистрах», на дворе все-таки 2019 год.
Вот последнее Ваше утверждение мне понравилось, полностью поддерживаю.
Можно писать на С++, кто мешает? GCC поддерживает нормально все фичи вплоть до С++17: модно, современно, молодежно. Вот только это сложно, а С тут золотая середина.

Что касается RTOS, то сколько у TI-RTOS переключается шедуллер? Насколько помню около 300-400 мкс, что слабо вяжется с системами работающими в реальном времени. Если вы говорить о варианте когда управление построено на прерываниях, например, а rtos используется для всяких пустяков типа общения по can/modbus, то это допустимо. Систему же управления с временем реакции в сотни микросекунд я себе слабо представляю.
Ну точную цифру я сейчас не скажу, хотя речь идет скорее о 50-60 командах, что на частоте 48 МГц даст 2-3 мксек, но в любом случае это много и критичны функции должны быть напрямую в прерываниях. Но обязательно посмотрю сегодня время переключения и отпишу.
Посмотрел время переключения — 319 тактов процессора, что то больно много, я ожидал меньшего, тогда собственно время будет 319/48=7 мксек, не так страшно, как Вы предполагали, но в >2 раза больше, чем я надеялся.
А как, например, реализовать OVP через компаратор, если у меня выходное напряжение задается на МК? Да, я могу подавать желаемый уровень напряжения (+5%) с МК на инвертирующий выход (естественно с учётом делителя напряжения), но мы же защищаемся как раз от отказа последнего.
А при чем тут мк? Ваша задача аппаратно защититься от повышенного напряжения на входе, она вообще не должна быть связана с регулятором. Ставите делитель напряжения + компаратор + шустрый оптрон для развязки, в цифровой части сигнал подаете на вход драйвера (обычно SD или EN) и дублируете на вход аппаратной защиты МК (у stm32 это BKIN или FAULT). В таком случае даже если МК вообще выпаять, то защита будет работать и глушить драйвер.

При реализации защит надо рассматривать случай, когда цыгане украли контроллер и он все равно не должен сгорать, поэтому делать уставку с МК так себе идея.

А так очень бы хотелось конечно реализовать эту логику самому — и экономия и интересно и больше возможностей управления. Но вот не уверен, стоит ли начинать.

Если задачу можно решить готовым контроллером, то имхо не стоит однозначно. Ну за исключение случаев, когда вам программировать нравится больше, чем возиться с железом))
Only those users with full accounts are able to leave comments. Log in, please.