ПНЯ* — Периферия Независимая от Ядра известная так же как CIP — Core Independent Peripheral
Микроконтроллеры в импульсных источниках питания
Часть 2
В предыдущей части статьи был рассмотрен вариант построения "типового" ШИМ-контроллера Импульсного Источника Питания (ИИП), варианты реализаций ШИМ-контроллеров на основе ПНЯ и некоторые топологии ИИП.
Продолжим знакомство с возможностями Периферии Независимой от Ядра применительно к задаче построения импульсных источников питания.
Синхронный преобразователь
Если выходное напряжение достаточно низкое и становится соизмеримым с падением на диоде, то КПД источника существенно падает. Для улучшения параметров ИИП диод может заменяться на MOSFET, падение напряжения на котором существенно ниже чем на диоде в прямом включении. Получаем синхронный преобразователь.
Рис. 2.1.а. Понижающий преобразователь
Рис. 2.1.б. Понижающий синхронный преобразователь
Для формирования двух противофазных сигналов ШИМ предназначен периферийный модуль генерирования комплементарных выходных сигналов (Complimentary Output Generator, COG).
Генератор комплементарных сигналов
позволяет управлять периодом и скважностью одного или двух комплементарных выходов с помощью двух входных источников сигналов. Совместно с возможностью контроля основных параметров, таких как мертвое время, бланкирование, фаза, полярность, автоматическим выключением (auto-shutdown) и авто-восстановлением (auto-recovery), модуль COG предоставляет мощный инструмент для построения ядра ШИМ-контроллера. Генератор комплементарных сигналов в 8-и разрядных микроконтроллерах Microchip полностью автономен и в общем случае не требует вмешательства ядра МК. Для более детального знакомства с COG рекомендую обратиться техническому описанию TB3119 [4].
Модуль COG в некоторой степени похож на SR-триггер, так же имеет входы установки и сброса, но работающие по событиям (Rising Event и Falling Event). События фиксируются как по фронтам/спадам, так и по уровням выбранных входных сигналов. Входные сигналы могут быть как внешние (порты ввода), так и внутренние (таймера, ШИМ, компараторы, конфигурируемые логические ячейки и др.). Выходы генератора комплементарных сигналов способны работать в различных режимах: полумост, полный мост, push-pull, ШИМ. Выходные сигналы формируются с учетом задания метрового времени, бланкирования, фазовой задержки и полярности. Как правило, выходные порты модуля COG имеют повышенную нагрузочную способность (50-100мА).
Для защиты выходных силовых каскадов предусмотрены входы отключения, по событиям на которых выходы модуля переводятся в безопасное состояние (0, 1 или 3-е состояние). При пропадании сигнала аварии модуль может быть автоматически включен, либо требуется вмешательство программы.
Модуль COG позволяет использовать топологии с трансформатором, которые обычно используются для ИИП с гальванической развязкой.
При построении преобразователей с использованием трансформаторов так же применяются режимы управления по напряжению и по току, с пропорциональным или гистерезисным управлением, т.е. все то же самое, что рассматривали ранее в первой части статьи.
Рис. 2.2. Топологии ИИП с трансформаторами
Рис.2.3. Режим управления по напряжению с гистерезисным управлением. Вариант с фиксированным и регулируемым выходным напряжением.
Рис. 2.4. Режим управления по току с гистерезисным управлением
Рис. 2.5. Режим управления по току с пропорциональным управлением.
Многофазное чередующееся ШИМ управление
В многофазных преобразователях часто используются чередующийся (interleaved) режим работы, в котором используется разделение токов между несколькими, идентичными, включенными параллельно топологиями. Такая топология позволяет получить более эффективную фильтрацию (меньше пульсации тока), уменьшить габариты источника (меньше фильтр), и увеличить КПД.
Interleaved преобразователь состоит из нескольких идентичных каналов, входы и выходы которых объединены, но фазы управления такими преобразователями сдвинуты на 360°/n, где n – количество фаз.
Для двухфазного чередующегося повышающего преобразователя два канала работают в противофазе – два ШИМ сигнала сдвинуты на 180° относительно друг друга.
Упрощенная схема приведена на рис. 2.6. [5]. Ключи S1 и S2 открываются поочередно. Когда ключ S1 открыт, S2 закрыт, то L1 заряжается, а L2 отдает ранее накопленную энергию в нагрузку. Далее каналы чередуется.
Рис 2.6. Иллюстрация принципа работы чередующегося (interleaved) импульсного источника питания.
Ниже приведена схема двухфазного синхронного чередующегося повышающего преобразователя [6].
Преобразователь работает по контролю пикового значения тока с одним общим контуром обратной связи по напряжению, который обеспечивает управление двумя независимыми контурами по току. Контроллер обеспечивает балансировку тока между фазами, защиту от короткого замыкания и низкие пульсации во время переходов между режимами непрерывной и прерывистой проводимости.
Для синхронного выпрямления необходимы дополнительные меры для предотвращения протекания тока обратно на вход, когда индуктивность прекращает разряжаться в режиме прерывистой проводимости (DCM). Верхний ключ синхронного преобразователя должен быть выключен когда ток в индуктивности становится равным нулю.
Рис.2.7. Двухфазный интерливд синхронный повышающий
Рис.2.8. Двухфазный интерливд синхронный понижающий преобразователь
Рис.2.9. Двухфазный интерливд обратноходовой преобразователь
Рис.2.10. Двухфазный интерливд прямоходовой преобразователь
Подробно различные варианты Interleaved ИИП на базе PIC микроконтроллеров приведены в TB3155 [6].
Переменная частота управления
В предыдущих примерах частоту запуска ШИМ задает таймер, т.е. реализуется управление с фиксированной частотой ШИМ.
Метод управления с фиксированной частотой будет терять эффективность при малых нагрузках, так как имеет фиксированные потери в ключе. Так как мы рассматриваем решения на микроконтроллере, то можем легко обеспечить переменную частоту переключения в зависимости от тока нагрузки и режима работы преобразователя.
В контроллере с фиксированной частотой ШИМ наиболее легко реализуется режим прерывистого тока, когда ток не протекает ни через один элемент преобразователя.
Рис.2.11. Режим прерывистого тока.
Периферия Независимая от ядра может помочь в реализации режима критической проводимости, когда контролируется достижение тока до нулевого значения. В этом случае ШИМ контроллер автоматически меняет частоту коммутации для нахождения в режиме критической проводимости.
Рис.2.12. Режим критической проводимости тока.
Конфигурируемая периферия позволяет реализовывать и другие алгоритмы: если сигнал компаратора завести на сброс таймера, то можно реализовать управление с фиксированным временем выключения (Fixed Off Time) или с фиксированным временем включения (Fixed On Time или Constant On Time).
Управление с фиксированным временем включения позволяет построить ИИП с корректором мощности [7].
Рис.2.13. Управляемый напряжением ШИМ контроллер в конфигурации с фиксированным временем включения (СOT) в режиме критической проводимости.
Итак, мы рассмотрели некоторые топологии ИИП. Вся необходимая периферия для реализации ШИМ контроллеров содержится в микроконтроллерах серий PIC16F176x. Любую из описанных топологий мы можем реализовать на независимой от ядра периферии, т.е. функционирование описанных ШИМ-контроллеров не зависит от быстродействия ядра.
Продолжение следует...
[4] TB3119. Complementary Output Generator Technical Brief. www.microchip.com
[5] Dynamics and Control of Switched Electronic Systems. Chapter 2. Pulse-Width Modulation http://www.springer.com/978-1-4471-2884-7
[6] TB3155. Multiphase Interleaved PWM Controller with Diode Emulation Using 8-Bit PIC Microcontrollers. www.microchip.com
[7] TB3153. Sample Functions Implemented with the Programmable Ramp Generator. www.microchip.com
Комментарии (20)
golf2109
17.07.2017 20:04а в чем преимущество PIC-ов перед например STM32
для данной области использования?ariz0na
17.07.2017 22:40Скажем так, для примера контроллера рис.2.4 (или др. на этой странице выше) код программы для PIC будет выглядеть примерно так:
init_CIP();
while(1) {
}
В общем случае не нужно что-то делать, не нужно обрабатывать прерываний, Источник, после инициализации, будет выполнять свою функцию. Код и прерывания могут быть нужны для сервисных функций.
я не большой специалист в STM32. Было бы здорово, если сможете показать на каком STM32 и в какой конфигурации периферии можно сделать такой же аппаратный ШИМ контроллер ИИП.golf2109
17.07.2017 23:37для STM32 почти во всех семействах есть много таймеров, почти все из них позволяют работать
с ШИМ(PWM). Причем настройка режимов для таймеров очень гибкая и позволяет например создать
режимы управления двухтактным мостом с управлением dead time…
и код будет выглядеть очень похоже
MX_TIMER1_Init();
while(1) {ariz0na
17.07.2017 23:58ОК, а скважность и частота будут задаваться через регистры?
golf2109
18.07.2017 00:08один раз при старте
ariz0na
18.07.2017 00:33вот в этом проблема. для регулировки выходных параметров источника параметры ШИМ нужно «двигать», т.е. в вашем случае источник с while(1){} не работает — нужен код для обеспечения работы петли регулирования, иначе параметры будут плыть от нагрузки. А дальше считайте: например частота ШИМ 100кГц (весьма мало для ИИП), 10бит разрешение ШИМ — тактовая для таймера нужна 102.4МГц, за 10мкс нужно измерить U(I) на выходе (АЦП), посчитать регулятор и обновить регистры ШИМ
Zuy
18.07.2017 07:20А откуда связь между частотой ШИМ и периодом работы регулятора? Период регулирования выбирается же больше от характера нагрузки или тут есть какой-то нюанс?
ariz0na
18.07.2017 10:34ОК, к вопросу о тактовой частоты вопросов нет ;-) 100++МГц это уже мк класса СМ3, СМ4 (сравним с реализацией на 8-и битнике с достаточной тактовой единиц МГц или ниже и корпусами 8-14-20pin).
Далее.
Конечно период регулирования зависит от нагрузки и изменений входного напряжения. Далее идем в начало, см. часть 1
Voltage Mode (VM) гистерезисный. Тут вообще частоту ШИМ и скважность не нужно менять. Да и МК не нужен — достаточно мультивибратора и компаратора. Но и точность регулирования самая плохая.
VM пропорциональный. Тут сложнее — на параметры контура регулирования оказывает влияние изменение входного напряжения.
Current Mode (CM) — имеет 2 контура. Внутренний (быстрый) осуществляет регулировку на каждом периоде ШИМ. Этот метод поддерживает заряд индуктивности одинаковой энергией (если не брать во внимание второй контур). За счет этого нет влияния изменения входного напряжения на параметры петли ОС.
как-то так.
migelle74
18.07.2017 08:46например частота ШИМ 100кГц (весьма мало для ИИП), 10бит разрешение ШИМ — тактовая для таймера нужна 102.4МГц
А разве PIC не подчиняется тем же самым правилам? Частота упомянутого PIC16F1769 32МГц, соответственно максимальная частота ШИМ-а, которую он может при разрешении в 10 бит, ~30 Кгц.
ariz0na
18.07.2017 10:14так вы посмотрите на схемы (см. часть 1). Есть таймер, который задает период (Set триггера). Сбросом (Reset) триггера управляет компаратор (аналоговая вещь), т.е. завязки на тактовую частоту вообще нет. Да хоть ставьте тактовую 100кГц — обратная связь аналоговая и асинхронная от Ядра микроконтроллера (тема номера: ПНЯ — периферия независимая от Ядра).
kt368
19.07.2017 21:43Немного недосказанно про управление ключами, нагрузочной способности COG в 50-100 мА явно недостаточно для более-менее низкоомный ключей: для них нужны токи затвора порядка 1-3 А. Это связано с большой (1...10 нФ) ёмкостью их затвора.
В этих целях на схеме 2.7 введены маленькие усилители между выходами COG и затворами транзисторов. Но, тогда уж не проще ли просто применить драйвер типа NCP3420, который и комплементарные сигналы сделает, и о dead time позаботится, и ток нужный вольёт в затворы транзисторов и стоит менее 50 центов?ariz0na
19.07.2017 21:51это нарисованы драйвера MOSFET. NCP это двухканальный драйвер MOSFET, ШИМ контроллер не заменит
kt368
20.07.2017 07:42Это понятно. Мне было интересно, не дешевле ли вместо встроенного COG и двух внешних драйверов применить внешний двухканальный драйвер, который на вход принимает один сигнал, а на выходе выдаёт два комплементарных сигнала, сам заботясь о dead time. Но, всё же, пролистав digikey, я обнаружил что разницы в цене практически нет, а программно конфигурируемый COG даст дополнительные полезные плюшки, так что нет, не проще.
ariz0na
20.07.2017 09:06COG это не только dead-time и комплементарные сигналы. COG это еще бланкирование (будет рассмотрен пример в 3-й части), это несколько режимов выхода (в т.ч. push-pull), это различные источники Set и Reset (у показанной NCP один вход PWM), это shutdown c ручным или автоматическим разрешением на продолжение работы, это заданное(запрограммированное) состояние выходов при детектировании аварии.
Т.е. подобный 2-х канальный MOSFET-драйвер может быть полезен, но COG позволяет делать гораздо больше вариантов ШИМ контроллера.
Вообще это несколько разные функции, COG это «сердце ШИМ контроллера», а драйвер это выход ШИМ контроллера.
akhkmed
19.07.2017 21:43Спасибо за интересные статьи.
Беглый просмотр документации показал, что простого способа подключить полумостовой переключающий каскад нет. Или есть?ariz0na
19.07.2017 21:45Есть
The COG module has the following features:
• Six modes of operation:
— Steered PWM mode
— Synchronous Steered PWM mode
— Forward Full-Bridge mode
— Reverse Full-Bridge mode
— Half-Bridge mode
— Push-Pull mode
melchermax
Какое замечательное чтиво, непременно пишите ещё! Вопрос несколько не в тему: а пики могут через аппаратный SPI длинные слова (конкретно-21 бит?)
ariz0na
8-и битные обычно нет. Но недавно появились PIC18F K42 — у них можно настраивать длину слова (в пределах 8 бит). Но таких модулей SPI два, т.е. можно соединить в цепь и настраивать длину до 16. Если 21 — то 16 + 5 ))
У более младших… наверное то же можно сделать передачу/прием не кратно 8 бит — поможет ПНЯ (CLC + таймер-счетчик)