Регулируемый источник питания из БП ATX на TL494. Часть 1 — железо

Всем привет!

Сегодня хотел бы рассказать Вам о своём опыте переделки самого обычного китайского БП ATX в регулируемый источник питания со стабилизацией тока и напряжения(0-20А, 0-24В).

В этой статье мы подробно рассмотрим работу ШИМ контроллера TL494, обратной связи и пробежимся по модернизации схемы БП и разработке самодельной платы усилителей ошибок по напряжению и току.

image

Честно признаться, сейчас я даже не могу назвать модель подопытного БП. Какой-то из многочисленных дешевых 300W P4 ready. Надеюсь, не нужно напоминать, что на деле эти 300W означают не больше 150, и то с появлением в квартире запаха жареного.

Рассчитываю на то, что мой опыт сможет быть кому-то полезен с практической точки зрения, а потому упор сделаю на теорию. Без нее всё равно не получится переделать БП т.к. в любом случае будут какие-то отличия в схеме и сложности при наладке.

Схема БП ATX
Для начала пройдемся по схеме БП ATX на контроллере TL494(и его многочисленных клонах).
Все схемы очень похожи друг на друга. Гугл выдает их довольно много и кажется я нашел почти соответствующую моему экземпляру.

image
Ссылка на схему в полном размере

Структурно разделим БП на следующие блоки:
— выпрямитель сетевого напряжения с фильтром
— источник дежурного питания(+5V standby)
— основной источник питания(+12V,-12V,+3.3V,+5V,-5V)
— схема контроля основных напряжений, генерация сигнала PowerGood и защита от КЗ

Выпрямитель с фильтрами это всё что в левом верхнем углу схемы до диодов D1-D4.

Источник дежурного питания собран на трансформаторе Т3 и транзисторах Q3 Q4. Стабилизация построена на обратной связи через опторазвязку U1 и источнике опорного напряжения TL431. Подробно рассматривать работу этой части я не буду т.к. знаю, что слишком длинные статьи читать не очень весело. В конце я дам название книги, где подробно рассмотрены все подробности.

Обратите внимание, в схеме по ошибке и ШИМ контроллер TL494 и ИОН дежурного питания TL431 обозначены как IC1. В дальнейшем я буду упоминать IC1 имея ввиду именно ШИМ контроллер.

Основной источник питания собран на трансформаторе Т1, высоковольтных ключах Q1 Q2, управляющем трансформаторе Т2 и низковольтных ключах Q6 Q7. Всё это дело раскачивается и управляется микросхемой ШИМ контроллера IC1. Понимание принципа работы контроллера и назначения каждого элемента его обвязки — это как раз то, что необходимо для сознательной доработки БП вместо слепого повторения чужих рекомендаций и схем.

Механизм работы примерно таков: ШИМ контроллер, поочередно открывая низковольтные ключи Q6 Q7, создает ЭДС в первичной обмотке трансформатора Т2. Видите, эти ключи питаются низким напряжением от дежурного источника питания? Найдите на схеме R46 и поймете о чем я. ШИМ контроллер также питается от этого дежурного напряжения. Чуть выше я назвал трансформатор Т2 управляющим, но кажется у него есть какое-то более правильное название. Его основная задача — гальваническая развязка низковольтной и высоковольтной части схемы. Вторичные обмотки этого трансформатора управляют высоковольтными ключами Q1 Q2, поочередно открывая их. С помощью такого трюка низковольтный ШИМ контроллер может управлять высоковольтными ключами с соблюдением мер безопасности. Высоковольтные ключи Q1 Q2 в свою очередь раскачивают первичную обмотку трансформатора Т1 и на его вторичных обмотках возникают интересующие нас основные напряжения. Высоковольтными эти ключи называются потому, что коммутируют они выпрямленное сетевое напряжение, а это порядка 300В! Напряжение со вторичных обмоток Т1 выпрямляется и фильтруется с помощью LC фильтров.

Теперь, надеюсь, в целом картину вы себе представляете и мы можем идти дальше.

ШИМ контроллер TL494.
Давайте разберемся как же устроен ШИМ контроллер TL494.
Будет лучше, если вы скачаете даташит www.ti.com/lit/ds/symlink/tl494.pdf, но в принципе я постараюсь вынести из него самое главное с помощью картинок. Для более глубокого понимания всех тонкостей советую вот этот документ: www.ti.com/lit/an/slva001e/slva001e.pdf

image

Начнем, как это ни странно, с конца — с выходной части микросхемы.
Сейчас всё внимание на выход элемента ИЛИ (помечен красным квадратом).
Выход этого элемента в конкретный момент времени напрямую управляет состоянием одного или обоих сразу ключей Q1 Q2.
Вариант управления задаётся через пин 13(Output control).

Важная вещь №1: если на выходе элемента ИЛИ лог 1 — выходные ключи закрыты(выключены). Это верно для обоих режимов.
Важная вещь №2: если на выходе элемента ИЛИ лог 0 — один из ключей(или оба сразу) открыт(включен).

Вырисовывается следующая картина: по восходящему фронту открытый ранее транзистор закрывается(в этот момент они оба гарантированно закрыты), триггер меняет своё состояние и по нисходящему фронту включается уже другой ключ и будет оставаться включенным пока снова не придет восходящий фронт и не закроет его, в этот момент опять триггер перещёлкивается и следующий нисходящий фронт откроет уже другой транзистор. В single ended режиме ключи всегда работают синхронно и триггер не используется.

image

Время, когда выход находится в лог. 1(и оба ключа закрыты) называется Dead time.
Отношение длительности импульса(лог. 0, транзистор открыт) к периоду их следования называется коэффициент заполнения(PWM duty cycle). Например если коэффициент 100% то на выходе элемента ИЛИ всегда 0 и транзистор(или оба) всегда открыт.

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

Ах да, зачем же нужен Dead time? Если коротко: в реальной жизни верхний ключ будет тянуть наверх(к плюсу) а нижний вниз(к минусу). Если открыть их одновременно — будет короткое замыкание. Это называется сквозной ток и из-за паразитных емкостей, индуктивностей и прочих особенностей такой режим возникает даже если вы будете открывать ключи строго по очереди. Чтобы сквозной ток свести к минимуму нужен dead time.

Теперь обратим внимание на генератор пилы(oscillator), который использует выводы 5 и 6 микросхемы для установки частоты.
На эти выводы подключается резистор и конденсатор. Это и есть тот самый RC генератор о котором наверное многие слышали. Теперь на выводе 5(CT) у нас пила от 0 до 3.3В. Как видим, эта пила подается на инвертирующие входы компараторов Dead-time и PWM.

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

Для примера разберемся, что нужно сделать чтобы установить коэффициент заполнения 50%. Вы еще помните про пилу? Она подается на инвертирующие входы компараторов PWM и Dead time. Известно, что если напряжение на инвертирующем входе выше чем на неинвертирующем — выход компаратора будет лог.0. Напомню, что пила — это плавно поднимающийся от 0
до 3.3в сигнал, после чего резко падающий на 0в.
Таким образом, чтобы на выходе компаратора 50% времени был лог.0 — на неинвертирующий вход нужно подать половину напряжения пилы(3.3в/2=1,65в). Это и даст искомые 50% duty cycle.

Заметили, что оба компаратора сходятся на том самом элементе ИЛИ, а значит, пока какой-то из компараторов выдает лог.1 — другой не может ему помешать. Т.е. приоритет имеет тот компаратор, который приводит к меньшему коэффициенту заполнения. И если на Dead time компаратор напряжение подается снаружи, то на PWM компаратор можно подать сигнал как извне(3 пин) так и с встроенных усилителей ошибок(это обычные операционные усилители). Они тоже соединяются по схеме ИЛИ, но т.к. мы уже имеем дело с аналоговым сигналом — схема ИЛИ реализуется с использованием диодов. Таким образом контроль над коэффициентом заполнения захватывает тот усилитель ошибки, который просит меньший коэффициент заполнения. Состояние другого при этом не имеет значения.

Обратная связь.
Хорошо, теперь как на всём этом построить источник питания? Очень просто! Нужно охватить БП отрицательной обратной связью. Разница между желаемым(заданным) и имеющимся напряжением называется ошибка. Если в каждый момент времени воздействовать на коэффициент заполнения так, чтобы исправить ошибку и привести ее к 0 — получим стабилизацию выходного напряжения(или тока). Обратная связь является отрицательной до тех пор, пока реагирует на ошибку управляющим воздействием с противоположным знаком. Если обратная связь будет положительной — пиши пропало! В таком случае обратная связь будет увеличивать ошибку вместо того чтобы уменьшать ее.

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

Компенсация обратной связи
Даже не знаю как бы по-проще это объяснить. С обратной связью всё просто только в идеальном мире. На практике же если вы изменяете коэффициент заполнения — выходное напряжение меняется не сразу, а с некоторой задержкой.

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

У обратной связи есть определенная полоса пропускания. Допустим полоса 100кГц. Это означает, что если выходное напряжение будет колебаться с частотой выше 100кГц — обратная связь этого просто не заметит и корректировать ничего не будет. Конечно, хотелось бы, чтобы обратная связь реагировала на изменения любой частоты и выходное напряжение было как можно стабильнее. Т.е. борьба идет за то, чтобы обратная связь была максимально широкополосной. Однако та самая задержка реакции не позволит нам сделать полосу бесконечно широкой. И если полоса пропускания цепи обратной связи будет шире чем возможности самого БП на отработку управляющих сигналов(прямая связь) — на некоторых частотах отрицательная обратная связь будет внезапно становиться положительной и вместо компенсации ошибки будет ее еще больше увеличивать, а это как раз условия возникновения колебаний.

Теперь от задержек в секундах давайте перейдем к частотам, коэффициентам усиления и фазовым сдвигам…
Полоса пропускания это максимальная частота, на которой коэффициент усиления больше 1.
С увеличением частоты коэффициент усиления уменьшается. В принципе это справедливо для любого усилителя.
Итак, чтобы наш БП работал стабильно должно выполняться одно условие: во всей полосе частот, где суммарное усиление прямой и обратной связи больше 1(0дБ), отставание по фазе не должно превышать 310 градусов. 180 градусов вносит инвертирующий вход усилителя ошибки.

Вводом в обратную связь различных фильтров добиваются того, чтобы это правило выполнялось. Если очень грубо, то компенсация обратной связи это подгонка полосы пропускания и ФЧХ обратной связи под реакции реального источника питания(под характеристики прямой связи).

Тема эта очень не простая, под ней лежит куча математики, исследований и прочих трудов… Я лишь стараюсь в доступном виде изложить саму суть вопроса. Могу порекомендовать к прочтению вот эту статью, где хоть и не так на пальцах, но тоже в доступном виде освещен этот вопрос и даны ссылки на литературу: bsvi.ru/kompensaciya-obratnoj-svyazi-v-impulsnyx-istochnikax-pitaniya-chast-1

От теории к практике
Теперь мы можем взглянуть на схему БП и понять что в ней много лишнего. В первую очередь я выпаял всё, что относится к контролю выходных напряжений(схема формирования сигнала Power good). Нейтрализовал встроенные в ШИМ контроллер усилители ошибок путем подачи +5vref на инвертирующие входы и посадив на GND неинвертирующие. Удалил штатную схему защиты от КЗ. Выпилил все не нужные выходные фильтры от напряжений которые не используются… Заменил выходные диоды на более мощные. Заменил трансформатор! Выпаял его из качественного БП где написанные 400W действительно означают 400W. Разница в размерах между тем, что стояло тут до этого говорит сама за себя:

image

Заменил дроссели в выходном фильтре(с того-же 400W БП) и конденсаторы поставил на 25В:

image

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

image

Схема реализует внешние усилители ошибок собранные на операционных усилителях LM358 и несколько дополнительных функций в виде усилителя шунта(INA197) для измерения тока, нескольких буферных усилителей для выдачи величины установленного и измеренного тока и напряжения на другую плату, где собрана цифровая индикация. О ней я расскажу в следующей статье. Выдавать на другую плату сигналы как есть — не лучшее решение т.к. источник сигнала может быть достаточно высокоомным, провод ловит шум, мешая обратной связи работать устойчиво. В первой итерации я с этим столкнулся и пришлось всё переделать. В принципе на схеме всё подписано, подробно комментировать ее не вижу смысла и думаю, что для тех кто понял теорию выше, должно быть всё довольно очевидно.

Отмечу лишь, что цепочки C4R10 и C7R8 это и есть компенсация обратной связи о которой я говорил выше. Честно говоря, в ее настройке очень помогла прекрасная статьи эмбэддера под ником BSVi. bsvi.ru/kompensaciya-obratnoj-svyazi-prakticheskij-podxod Этот подход реально работает и потратив денек-другой мне удалось добиться стабильной работы БП описанным в статье методом. Сейчас, конечно, я бы справился часа за два наверно, но тогда опыта не было и по неосторожности я взорвал не мало транзисторов.

Ах да, обратите внимание на емкость C7! 1uF это довольно много. Сделано это для того, чтобы обратную связь по току зажать в быстродействии. Это такой грязный хак для преодоления нестабильности возникающей на границе перехода от стабилизации напряжения к стабилизации тока. В таких случаях применяют какие-то более наво
роченные приёмы, но так заморачиваться я не стал. Супер точная стабилизация тока мне не нужна, к тому же к моменту, когда я столкнулся с этой бедой — проект переделки БП успел здорово надоесть!

По этой схеме лазерным утюгом была изготовлена плата:

image

Она встраивается в БП вот таким образом:

image

В качестве шунта для измерения тока выбран кусок медной проволоки длинной сантиметров 10 наверно.

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

Также возник вопрос о подключении вентилятора. БП ведь регулируется от 0 до 24В, а значит кулер придется питать от дежурки. Дежурка представлена двумя напряжениями — стабильными 5В, которые идут на материнскую плату и не стабилизированным, служебным питанием около 13.5В которое используется для питания самого ШИМ контроллера и для раскачки управляющего трансформатора. Я использовал обычный линейный стабилизатор чтобы получить стабильные +12В и завёл их на маленькую платку терморегуляции оборотов кулера, выпаянную с того-же Hiper'a. Платку закрепил на радиаторе шурупом просто из соображений удобства подключения кулера.

image

Радиаторы кстати пришлось изогнуть ибо они не вмещались в корпус нового формата. Лучше перед изгибанием их нагревать паяльной станцией, иначе есть шанс отломать половину зубов. Терморезистор регулятора закрепил на дросселе групповой стабилизации т.к. это самая горячая часть.

В таком виде БП прошел длительные испытания, питая кучу автомобильных лампочек дальнего света и выдерживал нагрузки током порядка 20А при напряжении 14В. А еще он гордо зарядил несколько автомобильных аккумуляторов, когда у нас в Крыму выключали свет.

Будущее уже рядом
Тем временем я задумал немного нестандартную систему индикации режимов работы БП, о чем в последствии немного сожалел, но всё-же она работает!

image

Так что в следующей статье вас ждет программирование ATMega8 на C++ с применением шаблонной магии, различных паттернов и самописная библиотека для вычислений с фиксированной точкой поверх которой реализовано усреднение отсчётов АЦП и перевод их в напряжение/ток по таблице с линейной интерполяцией. Каким-то чудом всё это уместилось в 5 с копейками килобайт флэша.

Не переключайте канал, должно быть интересно.

Кстати, обещанная в начале книга:
Куличков А.В. «Импульсные блоки питания для IBM PC»
radioportal-pro.ru/_ld/0/15_caf3ebe8f7eaeee.djvu

P.S. Надеюсь, изложенное выше окажется полезным. Строго не судите, но конструктивная критика приветствуется.

0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.