Лабораторный блок питания с управлением на микроконтроллере. Лабораторный двухканальный источник питания с микропроцессорным управлением Блок питания на микроконтроллере своими руками

Рассказать в:

Выходное напряжение блока питания можно изменять в пределах 1,25....26 В, максимальный выходной ток - 2 А. Порог срабатывания защиты по току можно изменять в пределах 0,01...2 А с шагом 0,01 А, а задержку срабатывания - в пределах 1...10 мс с шагом 1 мс и 10...100 мс с шагом 10мс. Стабилизатор напряжения (рис. 1) собран на микросхеме LT1084-ADJ (DA2). Она обеспечивает выходной ток до 5 А и имеет встроенные узлы защиты как от перегрева (температура срабатывания около 150 °С), так и от превышения выходного тока. Причем порог срабатывания защиты по току зависит от падения напряжения на микросхеме (разности входного и выходного напряжений). Если падение напряжения не превышает 10 В, максимальный выходной ток может достигать 5 А, при увеличении этого напряжения до 15 В он уменьшится до 3...4 А, а при напряжении 17... 18 В и более не превысит 1 А. Регулировку выходного напряжения в интервале 1,25...26 В осуществляют переменным резистором R8.

Для обеспечения в блоке питания выходного тока до 2 А во всем интервале выходных напряжений применено ступенчатое изменение напряжения на входе стабилизатора DA2. Четыре двухполупериодных выпрямителя собраны на понижающем трансформаторе Т1 и диодах VD1-VD8. Выпрямитель на диодах VD1, VD2 и стабилизатор напряжения DA1 предназначены для питания микроконтроллера DD1, ОУ DA3 и цифрового индикатора HG1. Выходное напряжение выпрямителя на диодах VD5, VD6 составляет 9... 10 В, на диодах VD4, VD7 - 18...20 В, а на VD3, VD8 - 27...30 В. Выходы этих трех выпрямителей, в зависимости от значения выходного напряжения блока питания, через полевые транзисторы оптореле U1-U3 могут быть подключены к сглаживающему конденсатору С4 и входу стабилизатора DA2. Управление оптореле осуществляет микроконтроллер DD1.

Переключательный транзистор VT1 выполняет функцию электронного ключа, он по команде микроконтроллера DD1 подключает или отключает напряжение стабилизатора от выхода (гнездо XS1) блока питания. На резисторе R14 собран датчик тока, напряжение на нем зависит от выходного тока. Это напряжение усиливается масштабирующим усилителем постоянного тока на ОУ DA3.1 и с выхода буферного усилителя на ОУ DA3.2 поступает на линию РСО (вывод 23) микроконтроллера DD1, которая сконфигурирована как вход встроенного АЦП. Отображение режимов работы блока питания, а также текущих значений тока и напряжения осуществляет ЖК индикатор HG1.

При включении блока питания на выходе РСЗ микроконтроллера DD1, независимо от выходного напряжения, установится высокий логический уровень, полевые транзисторы оптопары U1 откроются и ко входу стабилизатора DA2 будет подключен выпрямитель на диодах VD3, VD8 (27...30 В). Далее осуществляется измерение выходного напряжения блока с помощью встроенного в микроконтроллер DD1 АЦП. Это напряжение поступает на резистивный делитель R9R11R12, и с движка подстроенного резистора R11 уже уменьшенное напряжение поступает на линию РС1 микроконтроллера, которая сконфигурирована как вход АЦП.

В процессе работы выходное напряжение постоянно измеряется, и ко входу стабилизатора будет подключен соответствующий выпрямитель. За счет этого разность входного и выходного напряжений стабилизатора DA2 не превышает 10... 12 В, что дает возможность обеспечить максимальный выходной ток при любом выходном напряжении. Кроме того, это существенно снижает нагрев стабилизатора DA2.

Если выходное напряжение блока не превышает 5,7 В, высокий уровень будет на выходе РС5 микроконтроллера DD1, а на выходах РСЗ и РС4 - низкий, поэтому на вход стабилизатора DA2 поступит напряжение 9...10В с выпрямителя на диодах VD5, VD6. В интервале выходных напряжений 5,7... 13,7 В на стабилизатор будет подано напряжение 18...20 В с выпрямителя на диодах VD4, VD7. При выходном напряжении более 13,7 В на стабилизатор DA2 будет подано напряжение 27...30 В с выпрямителя на диодах VD3, VD8. Пороговые напряжения переключения можно изменить в меню начальных настроек от 1 до 50 В.

Одновременно осуществляется измерение выходного тока; если он превысит заранее установленное значение, на выходе РС2 установится низкий логический уровень, транзистор VT1 закроется и напряжение не поступит на выход блока питания. При пульсирующем характере потребляемого тока индицируется его амплитудное значение.
Сразу после включения блока питания транзистор VT1 закрыт, и на выход напряжение не поступает. Программа находится в режиме установки тока срабатывания защиты и времени задержки (если требуется), на ЖК индикаторе HG1 будет сообщение:

ЗАЩИТА
I=0,00А

а после нажатия на кнопку SB3 при мигающем старшем разряде:

ЗАДЕРЖКА 1мс

В первом случае один из трех разрядов мигает, значение тока в этом разряде изменяют нажатием на кнопку SB1 "+" или SB2 "-". Выбор этого разряда осуществляют нажатием на кнопку SB3 "Выбор". Чтобы отключить защиту, необходимо нажимать на кнопку SB2 "-" до тех пор, пока на экране не появится сообщение:
U= 10,0V
z откл z

После установки требуемого тока срабатывания защиты нажимают на кнопку SB3 "Выбор" и удерживают ее около секунды - устройство перейдет в рабочий режим, транзистор VT1 откроется и ЖК индикатор HG1 отобразит текущие значения напряжения и тока:
U= 10,0V
I=0,00A

При включенной задержке на индикаторе, помимо значений напряжения и тока, как напоминание, будет отображаться мигающий восклицательный знак:
U=10,0V
I 0.00A !

Если защита выключена, взамен восклицательного знака появится мигающий знак "молния".
Если выходной ток будет равен или превысит установленное значение тока срабатывания защиты, транзистор VT1 закроется и на экране появится сообщение:
ЗАЩИТА
I=1,00А

Причем слово "ЗАЩИТА" будет мигающим. После кратковременного нажатия на любую из кнопок устройство снова перейдет в режим установки тока срабатывания защиты.
Если в рабочем режиме нажать на кнопку SB1 "+" или SB2 "-", включится раздел установки временной задержки срабатывания защиты по току и на индикаторе появится сообщение:
ЗАДЕРЖКА 1мс

Нажимая на кнопку SB1 "+" или SB2 "-", изменяют задержку в пределах от 1 мс до 10 мс с шагом 1 мс и от 10 до 100 мс с шагом 10 мс. Задержка срабатывания защиты по току работает следующим образом. Если выходной ток станет равным или превысит установленное значение, будет сделана пауза установленной длительности (от 1 до 100 мс), после чего снова проведено измерение. Если ток по-прежнему равен или превышает установленное значение, транзистор VT1 закроется и нагрузка будет обесточена. Если же за этот временной интервал выходной ток станет меньше тока срабатывания, устройство останется в рабочем режиме. Чтобы отключить задержку, необходимо уменьшать ее значение нажатием на кнопку SB2 "-", пока на экране не появится сообщение:
ЗАДЕРЖКА ОТКЛ

В рабочем режиме можно вручную отключить выходное напряжение и перейти в режим установки тока защиты, для этого нужно нажать на кнопку SB3 "Выбор".
В программе есть меню начальных настроек, для того чтобы в него войти, необходимо включить блок питания, удерживая нажатой кнопку SB3 "Выбор". Первым отобразится меню установки тактовой частоты встроенного АЦП микроконтроллера DD1:
ТАКТ АЦП 500кГц

Нажатием на кнопку SB1 "+" или SB2 "-" можно выбрать три значения тактовой частоты встроенного АЦП: 500 кГц, 1 МГц и 2 МГц. При частоте 500 кГц время срабатывания защиты составляет 64 мкс, при частотах 1 и 2 МГц - 36 и 22 мкс соответственно. Калибровку устройства лучше проводить при частоте 500 кГц (установлено по умолчанию).

Чтобы перейти к следующей настройке, нажимают на кнопку SB3 "Выбор", и появится сообщение:
СТУПЕНБ2
ОТ 5,7V

В этом разделе меню можно изменить (нажимая на кнопку SB1 "+" или SB2 "-") значение выходного напряжения, при котором осуществляется подключение ко входу стабилизатора DA2 того или иного выпрямителя. При следующем нажатии на кнопку SB3 "Выбор" появится меню установки такого порога переключения:
СТУПЕНЬЗ
ОТ 13,7V

При переходе в следующий раздел меню откроется транзистор VT1, а защита по току будет отключена. Появится сообщение: U= 10,0V* I=0,OOA*
В этом разделе изменяют значение коэффициента k, который использован в программе для коррекции показаний выходного напряжения в зависимости от выходного тока. Дело в том, что на резисторе R14 и транзисторе VT1 при максимальном выходном токе падение напряжения составляет до 0,5 В. Поскольку для измерения выходного напряжения использован резистивный делитель R9R11R12, включенный до резистора R14 и транзистора VT1, в программе, в зависимости от протекающего тока, рассчитывается это падение напряжения и вычитается из измеренного значения напряжения. При нажатии на кнопку SB1 "+" или SB2 "-" на индикаторе взамен значения тока отобразится значение коэффициента k:
U= 10,0V* k=80

По умолчанию он равен 80, его изменяют нажатием на кнопку SB1 "+" или SB2 "-".
При последующем нажатии на кнопку SB3 "Выбор" микроконтроллер DD1 запустится повторно, при этом все установленные настройки сохранятся в его энергонезависимой памяти и будут использованы при последующих запусках.




Большинство деталей, в том числе и трансформатор Т1, размещены на макетной печатной плате (рис. 2). Был использован проводной монтаж. Конденсаторы С5 и С7 устанавливают как можно ближе к выводам стабилизатора DA2. На передней панели (рис. 3) установлены индикатор, выключатель питания, переменный резистор, кнопки и выходные гнезда.


Применены постоянные резисторы МЛТ, С2-23, кроме резистора R14 - он типа SQP-15, подстроечные резисторы многооборотные - СП5-2, переменный резистор - СПЗ-1, СПЗ-400, движок которого приводится во вращение через зубчатую передачу с передаточным числом, равным трем (рис. 4). В результате получился трехоборотный переменный резистор, который позволяет быстро и в то же время точно изменять напряжение на выходе стабилизатора.

Конденсаторы С5, С7 желательно использовать танталовые, оксидные конденсаторы - импортные, остальные - К10-17. Взамен указанного на схеме можно применить ЖК индикатор (две строки по восемь символов) с англорусским набором символов на контроллерах KS0066, HD47780, например WH0802A-YGH-CT фирмы Winstar. Диоды 1N4005 заменимы на диоды 1N4002- 1N4007, 1N5819, диоды Р600В - на P600DP600M, 1 N5401-1 N5408.

Стабилизатор LT1084 через тепло-проводящую изолирующую прокладку крепят к металлическому корпусу устройства, который выполняет функции теплоотвода, этот стабилизатор можно заменить на LM1084, но он должен быть обязательно с регулируемым выходным напряжением (с индексом ADJ). Отечественный аналог - микросхема КР142ЕН22А, но ее работоспособность в этом устройстве не проверялась. Стабилизатор 7805 можно заменить на отечественный КР142ЕН5А.

Дроссель L1 - отечественный ДМ-0,1 или импортный ЕС-24, его можно заменить на резистор сопротивлением 100 Ом. Кварцевый резонатор ZQ1 - РГ-05, HC-49U. Кнопки - любые с нормально-разомкнутым контактом, например SDTM-630-N, выключатель питания - B100G. Был применен трансформатор, тип которого неизвестен (указаны только параметры вторичной обмотки - 24 В, 2,5 А), но по габаритам он аналогичен трансформатору ТТП-60. Вторичная обмотка удалена и намотаны две новые. Для определения требуемого числа витков перед удалением обмотки было измерено выходное напряжение и найдено число витков, приходящееся на 1 В напряжения. Затем проводом ПЭВ-2 0,7...0,8 одновременно наматывают две обмотки с двумя отводами каждая. Число витков должно быть таким, чтобы на первых отводах обеих обмоток было напряжение 9 В, а на вторых - 18В. В авторском варианте каждая из обмоток содержала по 162 витка с отводами от 54 и 108-го витка.

Налаживание начинают без установленных микроконтроллера, ОУ и индикатора с проверки постоянных напряжений на выходах выпрямителей и стабилизатора DA1. При программировании микроконтроллера необходимо установить конфигурационные биты (fuse bits):
CKSELO - 1;
CKSEL1 - 1;
CKSEL2- 1;
CKSEL3- 1;
SUT1 - 1;
BOOTRST - 1;
EESAVE - 1;
WDTON - 1;
RSTDISBL - 1;
SUTO - 0;
BODEN - 0;
BODLEVEL - 0;
BOOTSZO - 0;
BOOTSZ1 - 0;
CKOPT - 0;
SPIEN - 0.

Микроконтроллер может быть запрограммирован внутрисхемно, при этом программатор подключают к вилке ХР2. При этом микроконтроллер питают от блока питания.
После установки микроконтроллера и ОУ подключают индикатор и включают устройство (без нагрузки), удерживая нажатой кнопку SB3 "Выбор", при этом программа микроконтроллера перейдет в режим начальных настроек. Резистором R16 устанавливают желаемую контрастность изображения индикатора, а подборкой резистора R18 - яркость подсветки табло индикатора.

Далее, нажимая на кнопку SB3 "Выбор", необходимо выбрать в меню раздел установки коэффициента k. К выходу устройства подключают образцовый вольтметр и устанавливают выходное напряжение, близкое к максимальному. Резистором R11 уравнивают показания индикатора и вольтметра. При этом выходной ток должен быть равен нулю.

Затем устанавливают минимальное выходное напряжение (1,25В) и подключают к выходу последовательно соединенные образцовый амперметр и нагрузочный резистор сопротивлением около 10 Ом и мощностью 40...50 Вт. Изменяя выходное напряжение, устанавливают выходной ток около 2 А и резистором R17 приводят показания индикатора в соответствие с показаниями амперметра. После этого последовательно с амперметром подключают резистор сопротивлением 1 кОм и изменением выходного напряжения устанавливают выходной ток 10 мА. На индикаторе должно быть такое же значение тока; если это не так и показания меньше, необходимо между выходом стабилизатора DA1 и истоком транзистора VT1 установить резистор сопротивлением 300...1000 Ом и его подборкой уравнять показания индикатора и амперметра. Временно можно применить переменный резистор, заменив его затем на постоянный с соответствующим сопротивлением.

В заключение уточняют значение коэффициента k. Для этого к выходу снова подключают образцовый вольтметр и мощный нагрузочный резистор. Изменяя выходное напряжение, устанавливают выходной ток, близкий к максимальному. Нажимая на кнопку SB1 "+" или SB2 "-", изменяют коэффициент k так, чтобы показания индикатора и вольтметра совпали. После нажатия на кнопку SB3 "Выбор" произойдет перезагрузка микроконтроллера и блок питания будет готов к работе.
Следует отметить, что максимальный выходной ток (2 А) ограничен типом примененных оптореле и может быть увеличен до 2,5 А, если их заменить на более мощные.

АРХИВ: Скачать с сервера


Д. МАЛЬЦЕВ, г. Москва
"Радио" №12 2008г.
Раздел:

Блок питания разработан для налаживания и ремонта аппаратуры в радиолюбительской лаборатории. Термодатчиком контролируют температуру питаемого устройства. Если она превысит порог, устройство будет отключено. Это позволяет прервать развитие аварийной ситуации на ранней стадии и предотвратить катастрофические последствия. Таймер отключает блок питания через определённое время, что, в частности, может быть использовано при зарядке аккумуляторов.

Основные технические характеристики

Выходное стабилизированное напряжение, В………..0...15
Разрешение цифрового вольтметра, В....................0.1
Порог ограничения выходного тока. А
минимальный.......................................................0,1
максимальный........................................................1
Интервал измерения температуры, °С................0...100
Максимальная выдержка таймера...............9 ч 50 мин
Габариты, мм …...........................................105x90x70

Схема блока питания показана на рис. 1. Основа устройства — микроконтроллер PIC16F88 (DD1), использование периферийных модулей которого позволило расширить функциональные возможности блока, не усложняя его.
Регулируемый стабилизатор напряжения - линейный компенсационный. Он содержит регулируемый источник образцового напряжения, регулятор выходного напряжения и устройство сравнения напряжений. Устройство сравнения — встроенный компаратор микроконтроллера, на инвертирующий вход RA1 которого через делитель R26R28 и резистор R27 подаётся выходное напряжение, а на неинвертирующий вход RA2 — образцовое. Выходной сигнал устройства сравнения управляет регулятором выходного напряжения.

Источник регулируемого образцового напряжения — модуль ССР микроконтроллера, работающий в режиме генерации прямоугольных импульсов с переменной длительностью на выходе RB0. Образцовое напряжение — постоянная составляющая этих импульсов, пропорциональная их коэффициенту заполнения, которым можно управлять по программе. Образцовое напряжение выделяется фильтром нижних частот R1C1R2R5C3. Подстроечным резистором R2 регулируют его при налаживании.

Регулятор выходного напряжения собран на мощном составном p-n-p транзисторе VT1, включённом в плюсовой провод питания. Поскольку транзистор VT1 имеет большой коэффициент передачи тока базы, для его открывания достаточен небольшой базовый ток, который обеспечивает маломощный полевой транзистор VT2. Резистор R7 соединяет затвор транзистора VT2 с общим проводом, что удерживает этот транзистор в закрытом состоянии во время инициализации портов микроконтроллера в начале выполнения его программы. Конденсатор С9 корректирует АЧХ петли регулирования, предотвращая самовозбуждение стабилизатора.

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

Аналоговый калиброванный температурный датчик LM35 (ВК1), линейно преобразующий температуру в напряжение с коэффициентом 10 мВ/ ºС, подключён через цепь R4C2 к выводу RA3 микроконтроллера, настроенному как аналоговый вход. Внутренний аналого-цифровой преобразователь (АЦП) микроконтроллера использован в цифровом измерителе напряжения и температуры. Вход АЦП может быть программно подключён к выводам RA1 — RАЗ. Для повышения помехозащищённости измерительного тракта работа АЦП синхронизирована с периодом динамической индикации длительностью 20 мс. Результат преобразования обрабатывается программным усредняющим фильтром.

В начале каждого периода измерения АЦП преобразует напряжение сначала с выхода, затем — с температурного датчика. Из 16 отсчётов каждого параметра вычисляется среднее арифметическое значение, которое и выводится на индикатор. Период обновления показаний — 320 мс. Среднее значение температуры, независимо от того, выводится оно на индикатор HG1 или нет, перед обновлением сравнивается с установленным пользователем порогом. Если оно превысит порог, будет отключено выходное напряжение. Как только температура упадёт на 2 ºС ниже порога, вновь включится выходное напряжение.

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

Ограничитель выходного тока работает независимо от микроконтроллера и его программы Он защищает блок питания от замыкания на выходе и ограничивает выходной ток путём уменьшения выходного напряжения. Основа ограничителя — узел преобразователя тока нагрузки в пропорциональное ему напряжение относительно общего провода, описанный в статье И. Нечаева "Индикатор предельного тока" в "Радио", 2002, № 9, с. 23. Этот узел собран на ОУ DA2.2, транзисторе VT4 и резисторах R23— R25. Резистор R25 — датчик тока нагрузки, включённый в цепь плюсового провода питания.

Напряжение, пропорциональное выходному току, с истока транзистора VT4 через резистор R20 поступает на инвертирующий вход (вывод 6) ОУ DA2.1, а на его неинвертирующий вход (вывод 5) подаётся напряжение с движка переменного резистора R18. При неизменном положении этого движка напряжение на нём стабильно, так как последовательно соединённые резисторы R17 и R18 подключены к стабилизированному напряжению +5 В с выхода микросхемы DA1. Перемещая движок переменного резистора R18, регулируют порог ограничения выходного тока.

Если напряжение на неинвертирующем входе ОУ DA2.1 больше напряжения на истоке транзистора VT4, пропорционального току, то напряжение на выходе этого ОУ близко к напряжению его питания, диод VD2 закрыт и не влияет на стабилизацию выходного напряжения. Светодиод HL1 погашен и защищён от обратного напряжения диодом VD3. Если напряжение на истоке транзистора VT4 превысит напряжение на неинвертирующем входе ОУ DA2.1, напряжение на выходе этого ОУ DA2.1 упадёт практически до нуля. Через резистор R19, диод VD3 и светодиод HL1 начнёт протекать ток. Диод VD2 открывается, в результате чего выходное напряжение уменьшится так. чтобы выходной ток не превышал порога ограничения. Включится светодиод HL1 — индикатор режима ограничения тока нагрузки.

После включения блока напряжение питания 5 В со стабилизатора DA1 поступает на микроконтроллер DD1. который настраивает порты ввода—вывода, конфигурацию и режимы встроенных периферийных модулей согласно программе, считывает из EEPROM (энергонезависимой памяти) в регистры значения выходного напряжения, установки температуры и выдержки времени. На индикатор HG1 выводятся на две секунды номер версии программы и далее, с пониженной яркостью, значение напряжения, которое должно быть на выходе, но оно в это время ещё не включено Нажатием на кнопку SB1 включают выходное напряжение со значением, записанным ранее в EEPROM, индикатор HG1 будет его показывать с полной яркостью. Следующее нажатие на эту кнопку вновь отключит выходное напряжение и так далее. Нажатием на SB3 и SB4 соответственно увеличивают или уменьшают выходное напряжение. Коротким нажатием осуществляют точную установку выходного напряжения, удержанием кнопок — грубую. Если необходимо, чтобы при следующем включении источника питания на выходе было новое значение напряжения, то нужно записать его в память нажатием и удержанием кнопки SB2. Когда на индикаторе появится надпись "SAU", кнопку отпускают, новое значение будет сохранено в EEPROM.

Короткое нажатие на SB2 позволяет просматривать на индикаторе температуру и значение счётчика времени с дискретностью 10 мин. Значения установок температуры и времени можно посмотреть удержанием этой кнопки, при этом индикатор покажет мигающие значения соответствующих установок, изменить которые можно кнопками SB3 и SB4. Нажатие и удержание кнопки SB2 сохранят новые значения в EEPROM.

Если во время работы устройства с включённым выходным напряжением температура датчика ВК1 превысит установленную, то выходное напряжение отключится. На индикаторе появится мигающая надпись "о.t", что означает превышение температуры. Как только температура снизится менее установленной на 2 С, будет включено выходное напряжение, а на индикаторе HG1 — показано его значение.

Если значение счётчика времени совпадёт с установленным, выходное напряжение будет отключено, а на индикаторе появится мигающая надпись "o.h", что означает превышение времени. Включить входное напряжение после этого можно, если передвинуть установку времени вперёд или в "0".

Сетевой трансформатор Т1 — промышленного изготовления с напряжением вторичной обмотки 17 В и допустимым током нагрузки 1,2 А. Можно применить трансформатор ТП-115-К8 с двумя вторичными обмотками по 9 В и током 1,1 А, которые соединяют синфазно-последовательно. Годится также сетевой трансформатор от ламповой техники с тремя накальными обмотками по 6,3 В, которые соединяют аналогично. Диодный мост VD1 должен быть рассчитан на напряжение не ниже 50 В и средневыпрямленный ток не менее 2 А. Диоды 1N4148 (VD2 и VD3) могут быть заменены на КД522 с любым буквенным индексом. Диоды ВАТ85 (VD4— VD6) можно заменить другими диодами Шотки, например, 1N5817, 1N5818.

Регулирующий транзистор VT1 структуры p-n-р, составной КТ825Г в металлическом корпусе, выбран с большим запасом по току для обеспечения надёжности устройства. Его можно заменить аналогичным с максимальным напряжением коллектор—эмиттер не менее 50 В и током коллектора 3 А и больше. Транзистор VT1 установлен на ребристом теплоотводе с площадью охлаждающей поверхности 100см2. Теплоотвод с транзистором VT1 закреплён на верхней крышке корпуса снаружи, как показано на фото рис. 2. Полевые транзисторы VT2 и VT4 — любые из серии КП501 или импортные 2N7000. Транзистор VT3 может быть любым из серий КТ3102, КТ342.

Индикатор HG1 — трёх- или четырёхразрядный с общим анодом. Он может быть составлен из трёх отдельных одноразрядных индикаторов. В этом случае одноимённые выводы сегментов соединяют между собой, транзистор VT3 не устанавливают, а вывод десятичной точки второго разряда соединяют с общим проводом через резистор 1 кОм.
Кнопки SB1—SB4 взяты из неисправной офисной техники, в том числе из струйного принтера. Стабилизатор напряжения DA1 — любой из серии 7805 в корпусе ТО220. Подстроечный резистор R28 - 3266W-1-103 - импортный малогабаритный многооборотный производства фирмы Bourns. Датчик тока R25 составлен из четырёх параллельно соединённых резисторов сопротивлением 1 Ом и номинальной мощностью 0,5 Вт.

Блок питания собирают без диода VD2. проверяют правильность монтажа и отсутствие замыканий. В первый раз подключают блок к сети без микроконтроллера DD1 и нагрузки. С помощью вольтметра проверяют, что напряжение в гнезде 14 панели DD1 равно 5 В, на эмиттере транзистора VT1 — 17...20 В, на его коллекторе — около 0 В. Блок выключают и устанавливают в панель микроконтроллер DD1 с заранее записанной программой, коды которой приведены в файле ad_ps1 .hex.

Представляю для вашего внимания проверенную схему хорошего лабораторного источника питания, опубликованного в журнале "Радио" №3, с максимальным напряжением 40 В и током до 10 А. Блок питания оснащён цифровым блоком индикации, с микроконтроллерным управлением. Схема БП показана на рисунке:

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

Для повышения стабильности резистор R3 размещают как можно ближе к микросхеме стабилизатора DA1. Дроссели L1, L2 — отрезки ферритовых трубок, надетых на выводы затворов полевых транзисторов VT1, VT3. Длина этих трубок равна примерно половине длины вывода. Дроссель L3 наматывают на двух сложенных вместе кольцевых магнитопроводах К36х25х7,5 из пермаллоя МП 140. Его обмотка содержит 45 витков, которые намотаны в два провода ПЭВ-2 диаметром 1 мм, уложенных равномерно по периметру магнитопровода. Транзистор IRF9540 допустимо заменить на IRF4905, а транзистор IRF1010N — на BUZ11, IRF540.

Если потребуется с выходным током, превышающим 7,5 А, необходимо добавить еще один стабилизатор DA5 параллельно DA1. Тогда максимальный ток нагрузки достигнет 15 А. В этом случае дроссель L3 наматывают жгутом, состоящим из четырех проводов ПЭВ-2 диаметром 1 мм, и увеличивают примерно в два раза емкость конденсаторов С1—СЗ. Резисторы R18, R19 подбирают по одинаковой степени нагрева микросхем DA1, DA5. ШИ-контроллер следует заменить другим, допускающим работу на более высокой частоте, например, КР1156ЕУ2.

Модуль цифрового измерения напряжения и тока лабораторного БП

Основа устройства - микроконтроллер PICI6F873. На микросхеме DA2 собран стабилизатор напряжения, которое используется и как образцовое для встроенного АЦП микроконтроллера DDI. Линии порта RA5 и RA4 запрограммированы как входы АЦП для измерения напряжения и тока соответственно, a RA3 - для управления полевым транзистором. Датчиком тока служит резистор R2, а датчиком напряжения — резистивный делитель R7 R8. Сигнал датчика тока усиливает ОУ DAI. 1. а ОУ DA1.2 использован как буферный усилитель.

Технические характеристики:

  • Измерение напряжения, В - 0..50.
  • Измерение тока, А - 0.05..9,99.
  • Пороги срабатывания защиты:
  • - по току. А - от 0,05 до 9.99.
  • - по напряжению. В - от 0,1 до 50.
  • Напряжение питания, В - 9...40.
  • Максимальный потребляемый ток, мА - 50.

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

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

Этот цифровой источник питания постоянного тока был очень успешным продуктом, и сейчас доступна его третья версия. Он по-прежнему основан на той же идее, что и первый вариант, но поставляется с рядом хороших улучшений.

Введение

Этот блок питания является наименее сложным в изготовлении, чем большинство других схем, но имеет намного больше функций:

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

Возможно удалить некоторые компоненты или добавить дополнительные функции? Хитрость заключается в том, чтобы переместить функциональность аналоговых компонентов, таких как операционные усилители в микроконтроллер. Иными словами, повышается сложность программного обеспечения, алгоритмов и уменьшается аппаратная сложность. Это уменьшает общую сложность для вас, так как программное обеспечение может быть просто загружено.

Основные электрические идеи проекта

Давайте начнем с простейшего стабилизированного блока питания. Он состоит из 2-х основных частей: транзистора и стабилитрона, который создает опорное напряжение.

Выходное напряжение этой схемы будет составлять Uref минус 0,7 Вольт, которые падают между В и Е на транзисторе. Стабилитрон и резистор создают опорное напряжение, которое является стабильным, даже если на входе есть скачки напряжения. Транзистор необходим для коммутации больших токов, которые стабилитрон и резистор не могут обеспечить. В такой роли транзистор только усиливает ток. Чтобы расчитать ток на резисторе и стабилитроне нужно выходной ток поделить на HFE транзистора (HFE число, которое можно найти в таблице с характеристиками транзистора).

Какие проблемы в этой схеме?

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

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

Для преодоления этих проблем необходимо использовать «интеллект», который будет регулировать ток на выходе и менять опорное напряжения. Вот и все (... и это делает схему намного сложнее).

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

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

АЦП(аналого-цифровой преобразователь) для измерения напряжения и тока.
- ЦАП(цифро-аналоговый преобразователь) для управления транзистором (регулировка опорного напряжения).

Проблема в том, ЦАП должен быть очень быстрым. Если будет обнаружено короткое замыкание на выходе, то мы должны немедленно уменьшить напряжение на базе транзистора в противном случае он сгорит. Быстрота реакции должна быть в пределах миллисекунд (так быстро, как операционный усилитель).

ATmega8 имеет АЦП, который является достаточно быстрым, и на первый взгляд он не имеет ЦАП. Можно использовать широтно-импульсную модуляцию (ШИМ) и аналоговый фильтр нижних частот, чтобы получить ЦАП, но ШИМ сам по себе слишком медленный в программном отношении для реализации защиты от короткого замыкания. Как построить быстрый ЦАП?

Есть много способов для создания цифро-аналоговых преобразователей, но он должен быть быстрым и простым, который будет легко взаимодействовать с нашим микроконтроллером. Существует схемы преобразователя, известного как "R-2R матрица". Он состоит только из резисторов и переключателей. Используются два типа номинала резисторов. Один со значением R и один с удвоенным значением R.

Выше показана схема 3 битного R2R - ЦАП. С помощью логического управления происходит переключение между GND и Vcc. Логическая единица соединяет переключатель с Vcc, а логический ноль с GND. Что делает эта схема? Она регулирует напряжение с шагом Vcc / 8. Общее выходное напряжение равно:

Uout = Z * (Vcc / (Zmax +1) , где Z разрадность ЦАП (0-7), в данном случае 3-битный.

Внутреннее сопротивление цепи, как видно, будет равно R.

Вместо использования отдельного переключателя можно подключить R-2R матрицу к линиям порта микроконтроллера.

Создание сигнала постоянного тока разного уровня с помощью ШИМ(широтно-импульсная модуляция)

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

В Atmega8 присутствует аппаратный 16-битных ШИМ. То есть теоретически можно иметь 16-битный ЦАП с помощью небольшого количества компонентов. Чтобы получить реальный сигнал постоянного тока из ШИМ-сигнала надо его отфильтровать, это может быть проблемой при высоких разрешениях. Чем больше надо точности, тем ниже должна быть частота ШИМ-сигнала. Это означает, что нужны конденсаторы большой емкости, а время отклика получается очень медленным. Первая и вторая версии цифрового источника питания постоянного тока были построены на 10 битной R2R матрице. То есть максимальное выходное напряжение может быть установлено за 1024 шага. Если использовать ATmega8 с тактовым генератором частотой 8 МГц и 10 битный ШИМ, то импульсы ШИМ сигнала будут иметь частоту 8MHz/1024 = 7.8KHz. Чтобы получить наиболее хороший сигнал постоянного тока нужно отфильтровать его фильтром второго порядка от 700 Гц или меньше.

Можно представить, что произойдет, если использовать 16-битный ШИМ. 8MHz/65536 = 122Hz. Ниже 12Hz, то что нужно.

Объединение R2R-матрицы и ШИМ

Можно совместно использовать ШИМ и R2R-матрицу. В этом проекте мы будем использовать 7-битную R2R-матрицу в сочетании с 5-битным ШИМ-сигналом. С тактовой частотой контроллера 8 МГц и 5-битным разрешением мы получим сигнал 250 кГц. Частота 250 кГц может быть преобразована в сигнал постоянного тока с помощью небольшого числа конденсаторов.

В оригинальной версии цифрового источника питания постоянного тока был использован 10-битный ЦАП на основе R2R-матрице. В новом дизайне мы используем R2R-матрицу и ШИМ с общим разрешением 12 бит.

Передискретизация

За счет некоторого времени обработки можно увеличить разрешение аналого-цифровой преобразователь (АЦП). Это называется передискретизацией. Четверная передискретизация дает результат в двойном разрешении. То есть: 4 последовательных образцов могут быть использованы для получения в два раза больше шагов на АЦП. Теория, лежащая передискретизации объясняется в PDF документ, который вы можете найти в конце этой статьи. Мы используем передискретизации для напряжения контура управления. На текущий контур управления мы используем исходное разрешение АЦП как быстрое время отклика здесь более важным, чем разрешение.

Подробное описание проекта

Несколько технических деталей, по-прежнему отсутствуют:

ЦАП (цифро-аналоговый преобразователь) не может управлять силовым транзистором
- Микроконтроллер работает от 5V, это означает что максимальный выход ЦАП равен 5V, а максимальное выходное напряжение на силовом транзисторе будет 5 - 0.7 = 4.3V.

Чтобы исправить это, мы должны добавить усилители тока и напряжения.

Добавление усилительного каскада на ЦАП

При добавлении усилителя мы должны иметь в виду, что он должен работать с большими сигналами. Большинство конструкций усилителей (например, для аудио) делается в предположении, что сигналы будут малы по сравнению с напряжением питания. Так что забудьте все классические книги о расчете усилителя для силового транзистора.

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

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

Ниже показана схема усилительного каскада, который подходит для этой цели.

Начнем с силового транзистора. Мы используем BD245 (Q1). В соответствии с характеристиками транзистор имеет HFE = 20 на 3А. Поэтому он будет потреблять около 150 мА на базе. Чтобы усилить управляющий ток мы используем связку известную как "Дарлингтон-транзистор". Для этого используем транзистор средней мощности. Как правило, значение HFE должно быть 50-100. Это позволит уменьшить необходимый ток до 3 мА (150 мА / 50). Ток 3mA является сигналом поступающим с маломощных транзисторов, таких как BC547/BC557. Транзисторы с таким выходным током очень хорошо подходят для построения усилителя напряжения.

Чтобы получить на выходе 30В мы должны усиливать 5В идущие с ЦАП с коэффициентом 6. Для этого мы объединяем PNP и NPN транзисторы, как показано выше. Напряжение коэффициента усиления этой схемы вычисляется:

Vampl = (R6 + R7) / R7

Блок питания может быть доступен в 2-х версиях: с максимальным выходым напряжением 30 и 22В. Сочетание 1K и 6.8K дает коэффициент 7,8, который хорош для версии 30В, но возможно будут некоторые потери на более высоких токах (наша формула является линейной, но в реальности нет). Для 22В версии мы используем 1K и 4.7K.

Внутреннее сопротивление цепи, как показано на базе BC547 будет:

Rin = hfe1 * S1 * R7 * R5 = 100 * 50 * 1К * 47K = 235 МОм

HFE примерно от 100 до 200 для BC547 транзистор
- S является наклон кривой усиления транзистора и около 50 [единица = 1/Ohm]

Это более чем достаточно высокой для подключения к нашему ЦАП, который имеет внутреннее сопротивление 5кОм.

Внутреннее эквивалентное сопротивление выхода:

Rout = (R6 + R7) / (S1 + S2 * R5 * R7) = около 2Ом

Достаточно низкое, чтобы использовать транзистор Q2.

R5 связывает базу BC557 с эмиттером, что означает "выключено" для транзистора до ЦАП и BC547 придумать. R7 и R6 связать основе Q2 сначала к земле, которая отключает выходной каскад Дарлингтона вниз.

Другими словами, каждый компонент в этом усилительном каскаде изначально выключен. Это означает, что мы не получим от транзисторов никаких входных и выходных колебаний при включении или выключении питания. Это очень важный момент. Я видел дорогие промышленные источники питания в которых бывают скачки напряжения при выключении. Такие источники, безусловно, следует избегать, поскольку они могут легко убить чувствительные устройства.

Пределы

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

BD245B: 10A 80Вт. 80Вт при температуре 25"C. Другими словами есть запас мощности из расчета 60-70Вт: (Max input voltage * Max current) < 65Вт.

Вы можете добавить второй BD245B и увеличить мощность до 120Вт. Чтобы убедиться, что текущая распределяется поровну добавить 0,22Ом резистор в эмиттер линии каждого BD245B. Та же схема и плата может быть использована. Установите транзисторов на должном кулер алюминия и соединить их с короткими проводами к плате. Усилитель может управлять второй транзистор питания (это максимум), но вы, возможно, необходимо отрегулировать коэффициент усиления.

Шунт для измерения тока: Мы используем резистор 0,75Ом мощностью 6Вт. Мощности достаточно хватает при токе 2,5А (Iout ^ 2 * 0,75 <= 6Вт). Для больших токов используйте резисторы соответствующей мощности.

Источники питания

Вы можете использовать трансформатор, выпрямитель и конденсаторы большой емкости или можете использовать адаптер для ноутбука 32/24В. Я пошел по второму варианту, т.к. адаптеры иногда продаются очень дешево (по акции), а некоторые из них обеспечивают 70Вт при 24В или даже 32В постоянного напряжения.

Большинство радиолюбителей, вероятно, будут использовать обычные трансформаторы, потому что их легко достать.

Для версии 22В 2.5A нужно: 3A 18В трансформатор, выпрямитель и 2200мкФ или 3300мкФ конденсатор. (18 * 1,4 = 25В)
Для версии 30В 2A нужно: 2.5A 24В трансформатор, выпрямитель и 2200мкФ или 3300мкФ конденсатор. (24 * 1,4 = 33.6В)

Не повредит если использовать более мощный по току трансформатор. Выпрямительный мост из 4 диодов с низким падением напряжения (например, BYV29-500) дает намного лучшие характеристики.

Проверьте ваше устройство на случай плохой изоляции. Убедитесь, что будет не возможно прикоснуться к любой части устройства, где может быть напряжение 110/230 В. Соединить все металлические части корпуса на землю (не GND схемы).

Трансформаторы и адаптеры питания для ноутбуков

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


Другие напряжение и ток

Есть два варианта 22В 2.5A и 30В 2A. Если вы хотите изменить пределы выходного напряжения или тока(только уменьшить) , то просто измените файл hardware_settings.h.

Пример: Чтобы построить 18В 2.5A версию вы просто меняете в файле hardware_settings.h максимальное выходное напряжение 18В. Вы можете использовать 20В 2.5A источник питания.

Пример: Чтобы построить 18В 1.5A версию вы просто меняете в файле hardware_settings.h максимальное выходное напряжение до 18В и макс. ток 1.5A. Вы можете использовать 20В 1.5A источник питания.

Тестирование

Последний элемент установленный на плату должен быть микроконтроллер. Перед тем, как установить его я рекомендовал бы сделать некоторые основные тесты оборудования:

Test1: Подключить небольшое напряжение (достаточно 10В) к входным клеммам платы и убедитесь, что регулятор напряжения выдает ровно 5В постоянного напряжения.

Test2: Измерьте выходное напряжение. Оно должно быть 0В (или близкое к нулю, например, 0,15, и оно будет стремиться к нулю, если вы подключите вместо нагрузки резисторы на 2кОм или 5кОм.)

Test3: Установить микроконтроллер на плату и загрузить программное обеспечение LCD-тест, выполнив команды в директории распакованного пакета tar.gz digitaldcpower.

сделать test_lcd.hex
сделать load_test_lcd

Вы должны увидеть на дисплее надпись: "LCD works".

Теперь вы можете загрузить рабочее программное обеспечение.

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

Установите низкое ограничение тока, например, 30мА при 10В. Вы должны увидеть что напряжение уменьшится сразу почти до нуля, как только вы подключите лампочку на выходе. Существует неисправность в цепи, если напряжение не понижается. С помощью автомобильной лампы можно защитить цепь питания, даже если есть неисправность, поскольку она не делает короткого замыкания.

Программное обеспечение

Этот раздел даст вам понимание того, как работает программа, и как вы можете использовать знания, чтобы сделать некоторые изменения в ней. Однако следует помнить, что защита от короткого замыкания сделана программным способом. Если вы сделали где-то ошибку, то защита может не сработать. Если у вас произойдет короткое замыкание на выходе, то ваше устройство окажется в облаке дыма. Чтобы избежать этого, вы должны использовать 12В автомобильную лампу (см. выше) для проверки защиты от короткого замыкания.

Теперь немного о структуре программы. При первом взгляде на основную программу (файл main.c, скачать в конце этой статьи), вы увидите, что есть только несколько строк кода инициализации, которые выполняются при включении питания, а затем программа входит в бесконечный цикл.

Действительно, в этой программе есть два бесконечных цикла. Одним из них является основной цикл ("while(1){ ...}" в файле main.c), а другой представляет собой периодическое прерывание от аналогового цифрового преобразователя (функция "ISR(ADC_vect){...}" в файле analog.c). После инициализации прерывание выполняется каждые 104мкс. Все остальные функции и код выполняются в контексте одного из этих циклов.

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

1. Код прерывания не должен быть слишком длинным, так как он должен завершиться до следующего прерывания. Потому что здесь важно количество инструкций в машинный коде. Математическая формула, которая может быть записана в виде одной строки CИ-кода может использовать до сотни строк машинного кода.

2. Переменные, которые используются в функции прерывания и в коде главного цикла могут внезапно измениться в середине исполнения.

Все это означает, что такие сложные вещи, как обновление дисплея, проверка кнопок, преобразование тока и напряжения должны быть сделано в теле главного цикла. В прерываниях мы выполняем задачи критические по времени: измерение тока и напряжения, защита от перегрузки и настройка ЦАП. Чтобы избежать сложных математических расчетов в прерываниях они выполняются в единицах ЦАП. То есть в тех же единицах что и АЦП(целые значения от 0 ... 1023 для тока и 0 .. 2047 для напряжения).

Это основная идея программы. Я также коротко объясню про файлы которые вы найдете в архиве(при условии, что вы знакомы с CИ).

main.c - этот файл содержит основную программу. Все инициализации производятся здесь. Основной цикл также реализуется здесь.
analog.c - аналого-цифровой преобразователь, все что работает в контексте прерывания задачи может быть найдено здесь.
dac.c - цифро-аналоговый преобразователь. Инициализируется из ddcp.c, но использованы только с analog.c
kbd.c - программа обработки данных с клавиатуры
lcd.c - драйвер ЖК-дисплея. Это специальная версия, в которой не понадобится RW контакт дисплея.

Для загрузки программного обеспечения в микроконтроллер вам нужен программатор, такой как avrusb500. Вы можете скачать zip архивы программного обеспечения в конце статьи.

Отредактируйте файл hardware_settings.h и настройте его в соответствии с вашим оборудованием. Здесь вы также можете сделать калибровку вольтметра и амперметра. Файл хорошо прокомментирован.

Подключите кабель к программатору и к вашему устройству. Затем установите биты конфигурации на работу микроконтроллера от внутреннего генератора частотой 8МГц. Программа предназначена для этой частоты.

Кнопки

Блок питания имеет 4 кнопки для местного управления напряжением и макс. током, 5-я кнопка служит для сохранения настроек в памяти EEPROM, чтобы в следующий раз при включении блока были эти же настройки напряжения и тока.

U+ увеличивает напряжение и U - уменьшает. Когда вы держите кнопку, то через некоторое время показания будут "бежать" быстрее, чтобы легко изменить напряжение в больших пределах. Кнопки I + и I - работают так же.

Дисплей

Индикация дисплея выглядит следующим образом:

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

Некоторые фотографии устройства

Вот некоторые фотографии источника питания который я собирал.

Он очень маленький, но с более широкими возможностями и более мощными, чем многие другие источники питания:

Старые алюминиевые радиаторы от процессоров Pentium хорошо подойдут для охлаждения силовых элементов:

Размещение платы и адаптера внутри корпуса:

Внешний вид устройства:

Вариант двухканального блока питания. Прислал Boogyman:

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

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

Этот цифровой источник питания постоянного тока был очень успешным продуктом, и сейчас доступна его третья версия. Он по-прежнему основан на той же идее, что и первый вариант, но поставляется с рядом хороших улучшений.

Введение

Этот блок питания является наименее сложным в изготовлении, чем большинство других схем, но имеет намного больше функций:

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

Возможно удалить некоторые компоненты или добавить дополнительные функции? Хитрость заключается в том, чтобы переместить функциональность аналоговых компонентов, таких как операционные усилители в микроконтроллер. Иными словами, повышается сложность программного обеспечения, алгоритмов и уменьшается аппаратная сложность. Это уменьшает общую сложность для вас, так как программное обеспечение может быть просто загружено.

Основные электрические идеи проекта

Давайте начнем с простейшего стабилизированного блока питания. Он состоит из 2-х основных частей: транзистора и стабилитрона, который создает опорное напряжение.

Выходное напряжение этой схемы будет составлять Uref минус 0,7 Вольт, которые падают между В и Е на транзисторе. Стабилитрон и резистор создают опорное напряжение, которое является стабильным, даже если на входе есть скачки напряжения. Транзистор необходим для коммутации больших токов, которые стабилитрон и резистор не могут обеспечить. В такой роли транзистор только усиливает ток. Чтобы расчитать ток на резисторе и стабилитроне нужно выходной ток поделить на HFE транзистора (HFE число, которое можно найти в таблице с характеристиками транзистора).

Какие проблемы в этой схеме?

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

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

Для преодоления этих проблем необходимо использовать «интеллект», который будет регулировать ток на выходе и менять опорное напряжения. Вот и все (... и это делает схему намного сложнее).

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

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

АЦП(аналого-цифровой преобразователь) для измерения напряжения и тока.
- ЦАП(цифро-аналоговый преобразователь) для управления транзистором (регулировка опорного напряжения).

Проблема в том, ЦАП должен быть очень быстрым. Если будет обнаружено короткое замыкание на выходе, то мы должны немедленно уменьшить напряжение на базе транзистора в противном случае он сгорит. Быстрота реакции должна быть в пределах миллисекунд (так быстро, как операционный усилитель).

ATmega8 имеет АЦП, который является достаточно быстрым, и на первый взгляд он не имеет ЦАП. Можно использовать широтно-импульсную модуляцию (ШИМ) и аналоговый фильтр нижних частот, чтобы получить ЦАП, но ШИМ сам по себе слишком медленный в программном отношении для реализации защиты от короткого замыкания. Как построить быстрый ЦАП?

Есть много способов для создания цифро-аналоговых преобразователей, но он должен быть быстрым и простым, который будет легко взаимодействовать с нашим микроконтроллером. Существует схемы преобразователя, известного как "R-2R матрица". Он состоит только из резисторов и переключателей. Используются два типа номинала резисторов. Один со значением R и один с удвоенным значением R.

Выше показана схема 3 битного R2R - ЦАП. С помощью логического управления происходит переключение между GND и Vcc. Логическая единица соединяет переключатель с Vcc, а логический ноль с GND. Что делает эта схема? Она регулирует напряжение с шагом Vcc / 8. Общее выходное напряжение равно:

Uout = Z * (Vcc / (Zmax +1) , где Z разрадность ЦАП (0-7), в данном случае 3-битный.

Внутреннее сопротивление цепи, как видно, будет равно R.

Вместо использования отдельного переключателя можно подключить R-2R матрицу к линиям порта микроконтроллера.

Создание сигнала постоянного тока разного уровня с помощью ШИМ(широтно-импульсная модуляция)

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

В Atmega8 присутствует аппаратный 16-битных ШИМ. То есть теоретически можно иметь 16-битный ЦАП с помощью небольшого количества компонентов. Чтобы получить реальный сигнал постоянного тока из ШИМ-сигнала надо его отфильтровать, это может быть проблемой при высоких разрешениях. Чем больше надо точности, тем ниже должна быть частота ШИМ-сигнала. Это означает, что нужны конденсаторы большой емкости, а время отклика получается очень медленным. Первая и вторая версии цифрового источника питания постоянного тока были построены на 10 битной R2R матрице. То есть максимальное выходное напряжение может быть установлено за 1024 шага. Если использовать ATmega8 с тактовым генератором частотой 8 МГц и 10 битный ШИМ, то импульсы ШИМ сигнала будут иметь частоту 8MHz/1024 = 7.8KHz. Чтобы получить наиболее хороший сигнал постоянного тока нужно отфильтровать его фильтром второго порядка от 700 Гц или меньше.

Можно представить, что произойдет, если использовать 16-битный ШИМ. 8MHz/65536 = 122Hz. Ниже 12Hz, то что нужно.

Объединение R2R-матрицы и ШИМ

Можно совместно использовать ШИМ и R2R-матрицу. В этом проекте мы будем использовать 7-битную R2R-матрицу в сочетании с 5-битным ШИМ-сигналом. С тактовой частотой контроллера 8 МГц и 5-битным разрешением мы получим сигнал 250 кГц. Частота 250 кГц может быть преобразована в сигнал постоянного тока с помощью небольшого числа конденсаторов.

В оригинальной версии цифрового источника питания постоянного тока был использован 10-битный ЦАП на основе R2R-матрице. В новом дизайне мы используем R2R-матрицу и ШИМ с общим разрешением 12 бит.

Передискретизация

За счет некоторого времени обработки можно увеличить разрешение аналого-цифровой преобразователь (АЦП). Это называется передискретизацией. Четверная передискретизация дает результат в двойном разрешении. То есть: 4 последовательных образцов могут быть использованы для получения в два раза больше шагов на АЦП. Теория, лежащая передискретизации объясняется в PDF документ, который вы можете найти в конце этой статьи. Мы используем передискретизации для напряжения контура управления. На текущий контур управления мы используем исходное разрешение АЦП как быстрое время отклика здесь более важным, чем разрешение.

Подробное описание проекта

Несколько технических деталей, по-прежнему отсутствуют:

ЦАП (цифро-аналоговый преобразователь) не может управлять силовым транзистором
- Микроконтроллер работает от 5V, это означает что максимальный выход ЦАП равен 5V, а максимальное выходное напряжение на силовом транзисторе будет 5 - 0.7 = 4.3V.

Чтобы исправить это, мы должны добавить усилители тока и напряжения.

Добавление усилительного каскада на ЦАП

При добавлении усилителя мы должны иметь в виду, что он должен работать с большими сигналами. Большинство конструкций усилителей (например, для аудио) делается в предположении, что сигналы будут малы по сравнению с напряжением питания. Так что забудьте все классические книги о расчете усилителя для силового транзистора.

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

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

Ниже показана схема усилительного каскада, который подходит для этой цели.

Начнем с силового транзистора. Мы используем BD245 (Q1). В соответствии с характеристиками транзистор имеет HFE = 20 на 3А. Поэтому он будет потреблять около 150 мА на базе. Чтобы усилить управляющий ток мы используем связку известную как "Дарлингтон-транзистор". Для этого используем транзистор средней мощности. Как правило, значение HFE должно быть 50-100. Это позволит уменьшить необходимый ток до 3 мА (150 мА / 50). Ток 3mA является сигналом поступающим с маломощных транзисторов, таких как BC547/BC557. Транзисторы с таким выходным током очень хорошо подходят для построения усилителя напряжения.

Чтобы получить на выходе 30В мы должны усиливать 5В идущие с ЦАП с коэффициентом 6. Для этого мы объединяем PNP и NPN транзисторы, как показано выше. Напряжение коэффициента усиления этой схемы вычисляется:

Vampl = (R6 + R7) / R7

Блок питания может быть доступен в 2-х версиях: с максимальным выходым напряжением 30 и 22В. Сочетание 1K и 6.8K дает коэффициент 7,8, который хорош для версии 30В, но возможно будут некоторые потери на более высоких токах (наша формула является линейной, но в реальности нет). Для 22В версии мы используем 1K и 4.7K.

Внутреннее сопротивление цепи, как показано на базе BC547 будет:

Rin = hfe1 * S1 * R7 * R5 = 100 * 50 * 1К * 47K = 235 МОм

HFE примерно от 100 до 200 для BC547 транзистор
- S является наклон кривой усиления транзистора и около 50 [единица = 1/Ohm]

Это более чем достаточно высокой для подключения к нашему ЦАП, который имеет внутреннее сопротивление 5кОм.

Внутреннее эквивалентное сопротивление выхода:

Rout = (R6 + R7) / (S1 + S2 * R5 * R7) = около 2Ом

Достаточно низкое, чтобы использовать транзистор Q2.

R5 связывает базу BC557 с эмиттером, что означает "выключено" для транзистора до ЦАП и BC547 придумать. R7 и R6 связать основе Q2 сначала к земле, которая отключает выходной каскад Дарлингтона вниз.

Другими словами, каждый компонент в этом усилительном каскаде изначально выключен. Это означает, что мы не получим от транзисторов никаких входных и выходных колебаний при включении или выключении питания. Это очень важный момент. Я видел дорогие промышленные источники питания в которых бывают скачки напряжения при выключении. Такие источники, безусловно, следует избегать, поскольку они могут легко убить чувствительные устройства.

Пределы

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

BD245B: 10A 80Вт. 80Вт при температуре 25"C. Другими словами есть запас мощности из расчета 60-70Вт: (Max input voltage * Max current) < 65Вт.

Вы можете добавить второй BD245B и увеличить мощность до 120Вт. Чтобы убедиться, что текущая распределяется поровну добавить 0,22Ом резистор в эмиттер линии каждого BD245B. Та же схема и плата может быть использована. Установите транзисторов на должном кулер алюминия и соединить их с короткими проводами к плате. Усилитель может управлять второй транзистор питания (это максимум), но вы, возможно, необходимо отрегулировать коэффициент усиления.

Шунт для измерения тока: Мы используем резистор 0,75Ом мощностью 6Вт. Мощности достаточно хватает при токе 2,5А (Iout ^ 2 * 0,75 <= 6Вт). Для больших токов используйте резисторы соответствующей мощности.

Источники питания

Вы можете использовать трансформатор, выпрямитель и конденсаторы большой емкости или можете использовать адаптер для ноутбука 32/24В. Я пошел по второму варианту, т.к. адаптеры иногда продаются очень дешево (по акции), а некоторые из них обеспечивают 70Вт при 24В или даже 32В постоянного напряжения.

Большинство радиолюбителей, вероятно, будут использовать обычные трансформаторы, потому что их легко достать.

Для версии 22В 2.5A нужно: 3A 18В трансформатор, выпрямитель и 2200мкФ или 3300мкФ конденсатор. (18 * 1,4 = 25В)
Для версии 30В 2A нужно: 2.5A 24В трансформатор, выпрямитель и 2200мкФ или 3300мкФ конденсатор. (24 * 1,4 = 33.6В)

Не повредит если использовать более мощный по току трансформатор. Выпрямительный мост из 4 диодов с низким падением напряжения (например, BYV29-500) дает намного лучшие характеристики.

Проверьте ваше устройство на случай плохой изоляции. Убедитесь, что будет не возможно прикоснуться к любой части устройства, где может быть напряжение 110/230 В. Соединить все металлические части корпуса на землю (не GND схемы).

Трансформаторы и адаптеры питания для ноутбуков

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


Другие напряжение и ток

Есть два варианта 22В 2.5A и 30В 2A. Если вы хотите изменить пределы выходного напряжения или тока(только уменьшить) , то просто измените файл hardware_settings.h.

Пример: Чтобы построить 18В 2.5A версию вы просто меняете в файле hardware_settings.h максимальное выходное напряжение 18В. Вы можете использовать 20В 2.5A источник питания.

Пример: Чтобы построить 18В 1.5A версию вы просто меняете в файле hardware_settings.h максимальное выходное напряжение до 18В и макс. ток 1.5A. Вы можете использовать 20В 1.5A источник питания.

Тестирование

Последний элемент установленный на плату должен быть микроконтроллер. Перед тем, как установить его я рекомендовал бы сделать некоторые основные тесты оборудования:

Test1: Подключить небольшое напряжение (достаточно 10В) к входным клеммам платы и убедитесь, что регулятор напряжения выдает ровно 5В постоянного напряжения.

Test2: Измерьте выходное напряжение. Оно должно быть 0В (или близкое к нулю, например, 0,15, и оно будет стремиться к нулю, если вы подключите вместо нагрузки резисторы на 2кОм или 5кОм.)

Test3: Установить микроконтроллер на плату и загрузить программное обеспечение LCD-тест, выполнив команды в директории распакованного пакета tar.gz digitaldcpower.

сделать test_lcd.hex
сделать load_test_lcd

Вы должны увидеть на дисплее надпись: "LCD works".

Теперь вы можете загрузить рабочее программное обеспечение.

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

Установите низкое ограничение тока, например, 30мА при 10В. Вы должны увидеть что напряжение уменьшится сразу почти до нуля, как только вы подключите лампочку на выходе. Существует неисправность в цепи, если напряжение не понижается. С помощью автомобильной лампы можно защитить цепь питания, даже если есть неисправность, поскольку она не делает короткого замыкания.

Программное обеспечение

Этот раздел даст вам понимание того, как работает программа, и как вы можете использовать знания, чтобы сделать некоторые изменения в ней. Однако следует помнить, что защита от короткого замыкания сделана программным способом. Если вы сделали где-то ошибку, то защита может не сработать. Если у вас произойдет короткое замыкание на выходе, то ваше устройство окажется в облаке дыма. Чтобы избежать этого, вы должны использовать 12В автомобильную лампу (см. выше) для проверки защиты от короткого замыкания.

Теперь немного о структуре программы. При первом взгляде на основную программу (файл main.c, скачать в конце этой статьи), вы увидите, что есть только несколько строк кода инициализации, которые выполняются при включении питания, а затем программа входит в бесконечный цикл.

Действительно, в этой программе есть два бесконечных цикла. Одним из них является основной цикл ("while(1){ ...}" в файле main.c), а другой представляет собой периодическое прерывание от аналогового цифрового преобразователя (функция "ISR(ADC_vect){...}" в файле analog.c). После инициализации прерывание выполняется каждые 104мкс. Все остальные функции и код выполняются в контексте одного из этих циклов.

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

1. Код прерывания не должен быть слишком длинным, так как он должен завершиться до следующего прерывания. Потому что здесь важно количество инструкций в машинный коде. Математическая формула, которая может быть записана в виде одной строки CИ-кода может использовать до сотни строк машинного кода.

2. Переменные, которые используются в функции прерывания и в коде главного цикла могут внезапно измениться в середине исполнения.

Все это означает, что такие сложные вещи, как обновление дисплея, проверка кнопок, преобразование тока и напряжения должны быть сделано в теле главного цикла. В прерываниях мы выполняем задачи критические по времени: измерение тока и напряжения, защита от перегрузки и настройка ЦАП. Чтобы избежать сложных математических расчетов в прерываниях они выполняются в единицах ЦАП. То есть в тех же единицах что и АЦП(целые значения от 0 ... 1023 для тока и 0 .. 2047 для напряжения).

Это основная идея программы. Я также коротко объясню про файлы которые вы найдете в архиве(при условии, что вы знакомы с CИ).

main.c - этот файл содержит основную программу. Все инициализации производятся здесь. Основной цикл также реализуется здесь.
analog.c - аналого-цифровой преобразователь, все что работает в контексте прерывания задачи может быть найдено здесь.
dac.c - цифро-аналоговый преобразователь. Инициализируется из ddcp.c, но использованы только с analog.c
kbd.c - программа обработки данных с клавиатуры
lcd.c - драйвер ЖК-дисплея. Это специальная версия, в которой не понадобится RW контакт дисплея.

Для загрузки программного обеспечения в микроконтроллер вам нужен программатор, такой как avrusb500. Вы можете скачать zip архивы программного обеспечения в конце статьи.

Отредактируйте файл hardware_settings.h и настройте его в соответствии с вашим оборудованием. Здесь вы также можете сделать калибровку вольтметра и амперметра. Файл хорошо прокомментирован.

Подключите кабель к программатору и к вашему устройству. Затем установите биты конфигурации на работу микроконтроллера от внутреннего генератора частотой 8МГц. Программа предназначена для этой частоты.

Кнопки

Блок питания имеет 4 кнопки для местного управления напряжением и макс. током, 5-я кнопка служит для сохранения настроек в памяти EEPROM, чтобы в следующий раз при включении блока были эти же настройки напряжения и тока.

U+ увеличивает напряжение и U - уменьшает. Когда вы держите кнопку, то через некоторое время показания будут "бежать" быстрее, чтобы легко изменить напряжение в больших пределах. Кнопки I + и I - работают так же.

Дисплей

Индикация дисплея выглядит следующим образом:

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

Некоторые фотографии устройства

Вот некоторые фотографии источника питания который я собирал.

Он очень маленький, но с более широкими возможностями и более мощными, чем многие другие источники питания:

Старые алюминиевые радиаторы от процессоров Pentium хорошо подойдут для охлаждения силовых элементов:

Размещение платы и адаптера внутри корпуса:

Внешний вид устройства:

Вариант двухканального блока питания. Прислал Boogyman:

mob_info