Разработка boost преобразователя на DSP: принцип работы, расчеты, макетирование

  • Tutorial
Я уже писал подобную статью про топологию buck, то есть про понижающий преобразователь, сегодня рассказ пойдет о том, как сконструировать повышающий (boost) преобразователь напряжения с управлением не на аналоговом ШИМ-контроллере, а на DSP/МК. Макет будет собран на основе моего "комплекта разработчика" с STM32F334R8T6 на борту и изолированным драйвером полумоста.



Введение


В начале хотелось бы отметить один важный момент — хоть в статье и сказано, что управление происходит с помощью микроконтроллера, но это не означает, что расчет силовой части будет чем-то отличаться от расчета преобразователя с аналоговым ШИМ-контроллером. То есть, методику расчета из данной статьи вы можете смело применять при расчетах силовой части для любого boost conveter.

В реальном мире есть множество задач, которые нельзя решить с помощью применения стандартных аналоговых ШИМ-контроллеров. Мой любимый пример — преобразователь напряжения с алгоритмом MPPT. Как только наша задача выходит за рамки «стандартной» и появляется какой-то дополнительный алгоритм управления или логика работы, наступает ситуация при которой применение DSP упрощает решение задачи и одновременно удешевляет ее, а главное позволяет в принципе решить ее.

Стоит немного рассказать о задачах где вы встретите топологию boost. Сама топология известна многим и многие ее уже наверняка реализовывали, когда вам приходилось, например, из 1 ячейки li-ion АКБ получать 5В — вы использовали маломощный dc/dc boost converter. Подобные маломощные преобразователи часто применяются в цифровой электронике, IoT, автоматике, устройствах с автономным питанием и других задачах.

Второе не совсем очевидное, но крайне важное, применение — PFC или корректор коэффициента мощности. Большинство PFC это самый обычный повышающих (boost) преобразователь, который работает по специальному алгоритму, но в итоге он выпрямляет и повышает входные 85...265VAC до +400VDC. В дальнейшем мы это дополнительно рассмотрим на примере.

Еще один часто встречающийся вариант — это мощные преобразователи dc/dc boost, например, сетевые инверторы для солнечных панелей с MPPT, которые являются одновременно и самыми дорогими и самыми востребованными, в основном применяются в СЭС на мощностях от 5 до 1500 кВт. Строятся такие преобразователи в 2 каскада, где 1-й каскад представляет из себя многофазный dc/dc boost (гуглится еще как interleaved), который получает обычно на входе постоянное напряжение 200...600VDC и повышает его до стабильных 800VDC. Далее обычным dc/ac инвертором формируется переменное напряжение. Такие преобразователи как раз и строятся на базе DSP, а их структурная схема выглядит следующим образом:



Надеюсь вам стало понятно почему данная топология важна для разработчиков силовой электроники, а так же почему актуально научиться разрабатывать boost-преобразователи с управлением на базе DSP/МК. Теперь с ясной мотивацией можно перейти к изучению топологии.

Глава 1 — Принцип работы преобразователя по топологии boost


Повышающий boost преобразователь по своему принципу работы идентичен понижающему buck преобразователю, т.к. в обоих случаях есть две стадии работы. На 1-й стадии происходит накопление энергии в дросселе при этом нагрузка питается от выходного конденсатора. На 2-й стадии происходит передача энергии из дросселя в нагрузку и одновременно заряжается выходной конденсатор, который будет обеспечивать энергией нагрузку пока дроссель будет «перезаряжаться». Разумеется, чтобы получить все таки повышающий преобразователь необходимы схемотехнические изменения, давайте посмотрим на принципиальную схему boost преобразователя:



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

  • Стадия накопления заряда. В момент включения преобразователя выходная емкость С2 находится под потенциалом Vin, т.к. ток проходит через дроссель L1 и диод VD1. Управляющее устройство (ШИМ-контроллер или DSP) начинает генерировать ШИМ-сигнал и подает его на затвор транзистора VT1. При открытии транзистора VT1 получается, что цепь замыкается, индуктивность L1 подключается с источнику питания и начинает накапливать энергию. Ток через VD1 не протекает, т.к. потенциал на катоде у него выше (около Vin), чем потенциал на аноде (потенциал GND, около 0В).


  • Стадия разряда индуктивности. Теперь ШИМ-сигнал меняет свое значение с 1 на 0 и транзистор VT1 закрывается. В этот момент дроссель L1 стремится поддержать значение тока, путем увеличения потенциала. На входе дросселя потенциал все тем же Vin, а следовательно потенциал вырастает в точке «дроссель-сток VT1-анод VD1». Когда потенциал в данной точке станет больше, чем потенциал на катоде VD1 ток начнет протекать через VD1 в нагрузку и параллельно заряжать выходную емкость С2. На этой стадии цепь так же замыкается, но уже не через VT1, а через путь «L1-VD1-C2-нагрузка»:



Дальше эти стадии просто чередуются и преобразователь работает. Для тех, кто ничего не понял объясню за счет чего повышается напряжение. В момент, когда VT1 закрылся дроссель начинает разряжаться и в момент этой «разрядки» напряжение на нем стремится к бесконечности. Да, это в идеальной системе, а в реальной напряжение будет ограничено сопротивлением нагрузки, которое включено последовательно с дросселем и диодом, а так же, в случае наличия управления, еще и обратной связью.

Тут стоит еще дополнить по стадии накопления энергии. В момент включения в выходном конденсаторе С2 практически нет запасенной энергии, но после первой стадии разряда он заряжен и потенциал на нем равен Vout, а значит на последующих стадиях накопления энергии эта емкость С2 будет обеспечивать нагрузку энергией, в результате для нагрузки не будет перебоев в получении энергии. Из этого следует, что С2 должен иметь такую емкость, чтобы запасенной энергии хватило на обеспечение питания нагрузки на длительность открытия транзистора (ton). В соответствии из выше описанного начиная со 2-го круга повторения стадий этап накопления заряда выглядит так:



Как видите получается две замкнутые цепи. «Красная» цепь замыкается через VT1 и происходит заряд дросселя, а «зеленая» цепь замыкается через нагрузку. «Смешивание» процессов/энергии в данном случае не происходит из-за присутствия диода VD1, т.к. в любой момент времени потенциал на катоде VD1 будет выше, чем потенциал на аноде.

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



Как видите взаимосвязь простая и понятная, соответственно регулировать выходное напряжение можно просто изменяя коэффициент заполнения нашего ШИМ-сигнала. Из формулы регулирования так же следует и алгоритм:

  • Чтобы увеличить напряжение на выходе — необходимо увеличить коэффициент заполнения (duty);
  • Чтобы уменьшить напряжение на выходе — необходимо уменьшить коэффициент заполнения (duty).

Теперь мы понимаем принцип работы boost преобразователя и логику управления выходным напряжением. Для закрепления знаний разберем пару опытов на осциллографе и посмотрим данные зависимости на практике.

Давайте для наглядности возьмем стабилизированный источник напряжения на 10В, например, лабораторный блок питания, и подадим на транзистор VT1 ШИМ-сигнал, коэффициент заполнения которого будем менять в процессе эксперимента. Щупы осциллографа подключаются в следующие точки схемы:



  • Опыт №1. Входное напряжение (Vin) равно 12В, коэффициент заполнения ШИМ-сигнала составляет 0,75:


  • Опыт №2. Входное напряжение (Vin) равно 12В, коэффициент заполнения ШИМ-сигнала составляет 0,5:


  • Опыт №3. Входное напряжение (Vin) равно 12В, коэффициент заполнения ШИМ-сигнала составляет 0,25:



Теперь мы на практике убедились, что выходное напряжение линейно зависит от коэффициента заполнения, а следовательно мы можем построить систему управления (СУ), которая будет следить за выходным напряжением с помощью АЦП и в зависимости от измеренного значения уменьшать или увеличивать его (duty).

Глава 2 — Ограничения проектирования boost преобразователя


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

  • Выходное напряжение не должно превышать входное более, чем в 3...4 раза.
    Тут наверняка набегут специалисты и расскажут, как они в часах на ИН-12 с помощью MC34063 повышали напряжение boost-ом из +5В аж в целых +180В! Это конечно замечательно, но давайте прикинем коэффициент заполнения для данного случая, чтобы поднять напряжение из 5В в 180В надо заставить работать преобразователь при коэффициенте около 0,972(!). Думаю не надо рассказывать, что это плохая идея, что на большой частоте переходные процесс при коммутации транзисторов будут иметь сопоставимую длительность, а может даже и большую.

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

    К чему это собственно ведет… на малой мощности (тот самый случай с mc34063) гарантирована нестабильная работа, низкая надежность, пульсации тока и низкий КПД в совокупности с повышенным нагревом силовых элементов. На большой мощности — бабах.

    Для примера обратите внимание на PFC, все они работают при соотношение максимум 1:4, а именно тот самый универсальный вход 85...265VAC или же стабилизатор напряжения с их 90...310VAC. Так же в качестве примера можно рассмотреть сетевые инверторы с MPPT, там при выходе 800В на вход подается 200...600VDC, то есть соотношение 1:4;
  • Напряжение на транзисторе. Данное ограничение тесно связано с тезисом о соотношение выше и вот почему… Транзистор VT1 должен иметь напряжение сток-исток равное минимум выходному напряжению, а в реальных устройствах иметь еще и запас хотя бы 20% на пульсации. Высоковольтные ключи имеют большое сопротивление канала, а при большом соотношении напряжений и ток на входе будет очень большим, что приведет к большим потерям на транзисторе;
  • Напряжение диода. Если внимательно посмотреть на схему преобразователя, то станет понятно, что к диоду VD1 прикладывается напряжение равное выходному, то есть если у вас выход 400В, то и диод должен выдерживать эти 400В.

    В связи с этим у данной топологии есть интересный «плюс», т.к. диод высоковольтный и в нем протекает ток в разы ниже, чем ток через транзистор, то во многих решениях применение диода Шоттки или SiC-диода позволит получить меньшие потери, чем применение синхронной топологии (полумост на транзисторах). Это касается решений с выходом от 200В и более, а синхронный вариант топологии в основном актуален лишь до напряжения около 100В;
  • Напряжение конденсаторов. Вроде очевидный момент, но на всякий случай уточню — выходной конденсатор должен выдерживать напряжение равное выходному, что во многих задачах, где применяют boost может составлять и 400, и 800 и даже 1500VDC.

Из выше написанного думаю вполне очевидно, что повышающий преобразователь разумно использовать, когда требуется увеличить напряжение максимум в 3...4 раза и при этом не нужна гальваническая развязка, в остальных случаях уже нужно смотреть в сторону топологий push-pull или full bridge. Мощность для boost преобразователей в принципе не имеет верхней границы, бывают и PFC на десятки киловатт и инверторы для СЭС на мегаватты, которые построены на данной топологии.

Глава 3 — Расчет силовой части преобразователя


Пришло время рассчитать основные силовые элементы для сборки прототипа. В качестве источника питания я буду использовать лабораторный блок питания с выходом 12В, т.к. если кто-то захочет повторить, а ЛБП нет, то можно использовать обычный китайский Mean Well на 12В 5А. В роли наглядной нагрузки сегодня выступит лампа накаливания на 36В и мощностью 60 Вт. Я специально так подобрал источник и нагрузку, чтобы макет можно было собрать в любой деревне, при этом дешево и выдержать соотношение 1:3. Итого имеем следующие вводные данные:

  • Входное напряжение: 12 В
  • Выходное напряжение: 36 В
  • Номинальная мощность: 60 Вт
  • Частота преобразования: 100 кГц

Расчет и изготовление дросселя


Начну с самого интересно и важного, т.к. именно с расчетом силовой индуктивности обычно у разработчиков возникают проблемы. Сразу отмечу, что значение индуктивности рассчитывать буду для режима неразрывных токов (CCM).

Для начала давайте найдем максимальное значение коэффициента заполнения при котором будет работать наш преобразователь. Данное значение будет устанавливаться ШИМ-контроллером при минимальном входном напряжение. Например, я планирую запитывать преобразователь от стабилизированного блока питания, тогда Vmin = Vnom. Если же вы выберете в качестве источника питания, например, свинцовый АКБ, то диапазон напряжения нем 10,2...14,2В и в таком случае для расчетов вам нужно брать значение 10,2В, т.к. при нем будет достигаться максимальный коэффициент заполнения. Я за минимум приму значение равное 12В. Сама формула для расчета проста и выглядит следующим образом:



Теперь нам необходимо рассчитать пульсации тока в дросселе. Кто читал мою статью про buck преобразователь наверняка запомнил, что данную величину мы выбираем сами и обычно она закладывается от 20 до 50%, я же приму размах 30% и теперь найдем самое значение тока:



Теперь рассчитаем минимальное значение индуктивности, которая потребуется, чтобы оставаться в режиме неразрывных токов:



Для изготовления дросселя я возьму дроссель R26/14/11 (R — это кольцо, а цифры — габариты) из материала Kool Mu с проницаемостью 60, скачать документацию на него и купить можно тут — Лэпкос.



Теперь давайте узнаем сколько витков нам потребуется, чтобы получить эту минимальную индуктивность:



Это минимальное количество витков при которых преобразователь останется в режиме неразрывных токов при минимальном напряжение на входе в 12В. Для надежности давайте накинем еще несколько витков чтобы наверняка и намотаем на 3 витка больше, то есть 29 витков. Давайте узнаем какую индуктивность в итоге получим с таким количеством витков:



Мы получил новое (финальное) значение индуктивности и количество витков, давайте проверим не перемахнули ли через предел индукции для данного сердечника:



Сердечник изготовлен из материала Kool Mu для которого предел индукции составляет 0,5 Тл. Как видите с данным сердечником получился пятикратный запас. Н — надежность! Из этого можно сделать косвенный вывод, что на частоте 100 кГц через данный сердечник можно прокачать около 300 Вт.

Теперь давайте определимся с обмоточным проводом. У меня на складе есть много моего любимого провода с диаметром 0,6 мм, что соответствует сечению одной жилы 0,283 мм2. Средний ток в сердечнике будет около 5А, соответственно если намотать в одну жилу, то получим плотность тока равную 5А / 0,283 мм2 = 17,66 А/мм2, что многовато и будет избыточный нагрев дросселя. Места для намотки много, сердечник большой, поэтому мотать буду в 2 жилы, что уменьшит плотность тока в 2 раза до значения 8,83 А/мм2. Это позволит получить перегрев относительно окружающей среды в пределах +20 оС.

Все параметры дросселя определили: размеры R26/14/11, материал Kool Mu, количество витков 29, обмоточный провод диаметром 0,6 мм и намотка в 2 жилы. Поехали наматывать:



Намотали, закрепили конец обмотки, лентой зафиксировали всю обмотку — готово. Осталось измерить реально значение индуктивности дросселя:



Получили требуемое значение! Теперь можно смело переходить к расчету выходной емкости. Логика в принципе простая — чем больше выходная емкость, тем ниже пульсации. Правда стоит понимать, что если емкость взять на несколько порядков больше расчетной, то постоянная времени будет слишком большой и система управления (СУ) будет работать некорректно, поэтому рассчитаем минимальное значение емкости для конденсатора (С2):



На частотах в пределах 200 кГц, где еще ставятся дешевые электролиты, я обычно умножаю данное минимальное значение на 2...3 и устанавливаю такой номинал. В текущей задаче я использую отладочный силовой модуль, а на нем уже установлены электролиты, которые играют роль выходной емкости в топологии boost о чем в следующей главе я подробнее расскажу.

Емкость электролитов суммарная 3000 мкФ, это очень много в данной задаче, т.к. плата рассчитывалась на бОльшие мощности. При такой большой выходной емкости обратной связи приходится не сладко, но для опытов пойдет.

Осталось сказать бегло о транзисторах. Именно о транзисторах! Я использую модуль полумоста, а следовательно реализую синхронный boost converter. В модулях установлены транзисторы IPP083N10N5AKSA1 с напряжением сток-исток 100В, что дает практически трехкратный запас по напряжению и следовательно покрывает задачу — по транзистору VT1 проходим, а диод VD1 заменен аналогичным транзистором и соответственно тоже проходим.

Глава 4 — Код для управления преобразователем


Так как про алгоритмы управления я расскажу в отдельной статье, то сегодня управлять преобразователем будет все та же программа, что использовалась в статье, где рассказывалось про топологию buck, почитать можно — тут. В главе код вы сможете подробно прочитать о инициализации HRPWM и АЦП, а так же о их синхронизации.

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

void ADC1_2_IRQHandler (void) {

	ADC2->ISR |= ADC_ISR_EOC;

	adcResult = ADC2->DR;

	if (adcResult >= 3400) {

		dutyControl = dutyControl - 10;
	}
	else
	{
		dutyControl = dutyControl + 10;
	}

	SetDutyTimerA(dutyControl);
}

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

Глава 5 — Сборка макета и тестирование работы преобразователя


Приступаем к самой интересной и красочной стадии, а именно к сборке макета и проверке работоспособности. В начале статьи я упомянул о родстве buck и boost топологий, давайте сейчас это разберем, т.к. на модуле полумоста это крайне наглядно. Первым делом давайте посмотрим на схему buck преобразователя:



Зеленая рамка выделяет компоненты, которые установлены на силовом модуле полумоста, как видите тут С1 выполняет роль входной емкости, а конденсатор С2 роль выходной. Теперь давайте изобразим схему boost преобразователя:



Кто внимательный и заметил что изменилось? Да в принципе ничего не поменялось как ни странно, единственное отличие — местами поменялись вход и выход. Как видите сами топологии являются идентичными, а отсюда вытекает еще одно интересное свойство — если применена синхронная топология, то преобразователь можно работать как двунаправленный преобразователь!

Пример? Легко! Представим портативное устройство с USB и Li-ion аккумулятором. Когда USB подключен, то преобразователь работает в режиме buck и заряжает АКБ, как только отключили кабель USB преобразователь переходит в режим boost и из 4.2В поднимает в 5В от которых питается устройство. Круто же! И подобных задач, где пригодится данная особенность достаточно много.

Макет я собрал по второй схеме, а в ней конденсатор С1 это как раз выходная емкость, то есть она уже установлена и на модуль достаточно накинуть дроссель, который мы изготовили и входную емкость. В роли входной емкости С2 я применил пару электролитических конденсаторов на 4700 мкФ 25В и в итоге получился вот такой макет силовой части:



Теперь подключаем к силовой части модуль управления и источник питания, в данном случае лабораторный блок питания:



Теперь зальем прошивку в микроконтроллер, подадим питание с лабораторника, установим коэффициент заполнения 30000 из 45000, что согласно нашей формуле увеличит входное напряжение в 3 раза: Vout = 12В / (1 — 0,66) = 12/0,33 = 36,36В. После этого увидим, что лампа ярко загорелась:



Теперь подключаем осциллограф все к тем же точкам и видим следующий результат:



Как видно устройство работает корректно: напряжение действительно выросло в 3 раза, на входе потребление около 60 Вт (да, я в курсе что лампе надо 36В «переменки»), сама лампа потребляет ток 1,61 А. Для наглядности оставлю небольшое видео в работе:


Осталось выяснить насколько сильно нагревается преобразователь в данных условиях. Я предположил, что перегрев будет минимальным, т.к. все посчитано корректно, а компоненты взяты с запасом, поэтому поместил преобразователь в окружающую среду с температурой примерно +10 oС, чтобы усилить контраст температурного поля.

Методика для тестирования у меня проста и состоит из трех стадий:

  • Помещаю преобразователь в среду с температурой +10 oС и жду пока он охладится и станет практически неразличимым в тепловизоре на общем фоне;
  • Включаю преобразователь, даю ему поработать 5 минут и измеряю общий вид преобразователя и отдельно силовые компоненты;
  • Оставляю преобразователь работать еще на 1 час и снова измеряю, смотрю насколько сильно выросли температуры компонентов.

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

  • Измерение №1 — преобразователь поместили в окружающую среду с температурой около +10 oС:



    Тут видно, что платы практически полностью слились с окружающей средой, а значит можно включать и приступать к оценке температур преобразователя уже под номинальной нагрузкой.
  • Измерение №2 — преобразователь работает на 100% номинальной нагрузке в течение 5 минут, температура окружающей среды около +10 oС:



    После 5 минут работы картинка стала более контрастной и на ней отчетливо видно как сам преобразователь, так и основные нагревающиеся компоненты. Рекордсменами по перегреву стали изолированные dc/dc для драйверов транзисторов с температурой +29 oС, но тут ничего странного нет, т.к. температура перегрева +20...30 oС является для них номинальной о чем отражено в документации. Второе место занимается дроссель, температура которого составляет +28...29 oС, что более чем хорошо, т.к. часто рабочая дросселей вполне может достигать планки и в +80...100 oС. Температура радиатора составляет +20...21 oС, а транзисторы горячее всего на градус, а может и меньше, т.к. любой тепловизор на самом деле не самый точный на свете прибор.
  • Измерение №3 — преобразователь работает на 100% номинальной нагрузке в течение 1 часа, температура окружающей среды около +10 oС:



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

    Температура радиатора подросла на +4 oС, а транзисторы «слились» с ним, т.к. все прогрелось и тепловой поток равномерно распределился. Температура на изолированных dc/dc подросла на +9 oС и они вышли на паспортные показатели перегрева, даже запас остался в пару градусов. Температура дросселя выросла на +3 oС.

Давайте подведем итог… Температура транзисторов в норме, значит потери мизерные и сам силовой модуль работает корректно, нет сквозных токов, нет проблем с монтажом транзисторов, они, кстати, сидят на керамической подложке в капелькой термопасты MX-4, много пасты не надо добавлять — будет хуже.

Температура дросселя так же в норме, а значит индуктивность рассчитали верно и сердечник по габаритам так же применили подходящий ну да, с 5-ти кратным запасом:)), то есть он не насыщается и обмотка не перегревается с текущим значением плотности тока.

Бонус любознательным
Держите лампочку в тепловизоре :))



Заключение


Сегодня я разобрал очередную топологию преобразователей, надеюсь материал вам станет полезной шпаргалкой как при разработке обычных, так и управляемых с DSP, преобразователей boost. В следующий раз планирую рассказать о не менее популярной, и возможно наиболее полезной, топологии полный мост или full bridge, расскажу о расчетах трансформатора и о том, как его изготовить.

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



И самое главное — исходники силового модуля, платы управления и самого кода как обычно доступны на всеобщее обозрение. Пока, что только в виде архивов, как руки дойдут надо наконец-то сделать репозиторий на github-е.

Поддержать автора
Поделиться публикацией

Комментарии 93

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


                                                                      ESP32 — это мусор.

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

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

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

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

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

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

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

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

                                                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                      Самое читаемое