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

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

13.05.2019

Лабораторного блока питания, да еще и с управлением от компьютера, и не смог устоять. Детали решил брать в российских магазинах, потому что доллар, санкции, ну и все такое. Вот что из этого получилось…

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

Первый блок питания





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



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

Список закупленных деталей:

Чип-Дип
силовой транзистор - 110 р.
- 2х8 р.
- 540 р.
итого 825 р.

Чип-нн (со ссылками не получается из-за специфики сайта)
операционный усилитель LM358N - 12 р.
конденсатор электролитический 2200 мкф. - 13 р.
винтовые терминалы 2х - 22 р.
держатель светодиода х3 - 20 р.
кнопка с фиксацией красная, здоровенная - 17 р.
шунт 0.1 ом - 30 р.
многоборотные подстроечные резисторы 470 ом х2 - 26 р.
итого 140 р.

Принцип работы сего устройства.

Ардуино следит за напряжением на выходе, за током, и посредством ШИМ пинает силовой транзистор так, чтобы блок питания выдавал установленные значения.
Блок питания умеет выдавать напряжение от 1 до 16 вольт, обеспечивать ток 0.1 - 8 ампер (при нормальном источнике напряжения) уходить в защиту и ограничивать ток. То есть его можно использовать для зарядки аккумуляторов, но я не рискнул, да и у меня уже есть. Еще одна особенность этого странного блока питания в том, что он питается от двух напряжений. Основное напряжение должно подкрепляться вольтодобавкой от батарейки, или второго блока питания. Это нужно для корректной работы операционного усилителя. Я использовал ноутбучный блок питания 19в 4А в качестве основного, и зарядку 5в 350мА от какого-то телефона в качестве добавочного питания.

Сборка.

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

Окончательный результат:



Пробный запуск обнадежил, все работало как надо



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

Натыкал на переднюю панель кнопок управления и лампочек. Здоровенная крутилка это энкодер со встроенной кнопкой. Используется для управления и настройки. Зеленая кнопка переключает режимы индикации на дисплее, прорезь снизу для разъема юсб, три лампочки (слева направо) сигнализируют о наличии напряжения на клеммах, активации защиты при перегрузе, и об ограничении тока. Разъем между клеммами для подключения дополнительных устройств. Я втыкаю туда сверлилку для плат и резалку для оргстекла с нихромовой струной.

Засунул все кишки в корпус, подсоединил провода




После контрольного включения и калибровки закрыл крышкой.

Фото собранного

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

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


Прибор обладает кое-какой точностью, китайский мультиметр с ним согласен. Конечно калибровать самопальную махарайку по китайскому мультиметру и говорить о точности достаточно смешно. Несмотря на это прибору найдется место на моем столе, так как для моих целей его вполне достаточно

Некоторые тесты

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

К блоку питания подключена 12-вольтовая лампа накаливания и амперметр. Внутренний амперметр после подстройки работает сносно

Измерим напряжение на клеммах. Великолепно.

В прошивке реализована ваттосчиталка. К блоку подключена все та же лампочка на 12 вольт, на цоколе которой написано «21W». Не самый паршивый результат.


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

О магазинах:
Чип-нн порадовал скоростью доставки, но ассортимент маловат на мой взгляд. Этакий интернет магазин, аналогичный арадиомагазину в среднем городке. Цены ниже, кое на что в разы.
Чип-дип… закупил там то, чего не было в чип-нн, иначе б не сунулся. розница дороговата, но все есть.

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

Выходное напряжение блока питания можно изменять в пределах 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г.
Раздел:

Без чего не может обойтись не один радиолюбитель? Правильно - без ХОРОШЕГО блока питания. В этой статье я опишу, как можно сделать неплохой, на мой взгляд, блок питания из обычного компьютерного (AT или ATX). Хотелось что бы параметры блока устанавливались с помощью энкодера. Идея хороша тем, что не нужно покупать дорогие трансформаторы, транзисторы, мотать импульсные трансформаторы и катушки... Достать компьютерный БП на сегодняшний день не составляет большого труда. Например на местном радиорынке средний БП ATX 300W стоит ~8$. Естественно это за б/у. Но следует учитывать, что чем качественнее копьютерный БП - тем качественнее девайс мы получим=) Бывает что китайские БП так плохо укомплектованы/собраны что и смотреть страшно - отсутствуют абсолютно все фильтры на входе, и почти все фильтры на выходе! Так что выбирать нужно внимательно.За основу был взят БП АТХ CODEGEN 300W который был переделан под напряжение 20В и добавлена плата управления.

Характеристики:

Напряжение - 3 - 20,5 Вольт
Ток - 0,1 - 10А
Пульсации - зависит от модели "исходника".

В изготовлении такого БП есть одно "НО": если Вы ни разу не ремонтировали или хотя бы не разбирали компьютерный БП, то изготовить лабораторный будет проблематично. Это связано с тем, что схематических решений компьютерных БП очень много и описать все необходимые переделки я не смогу. В данной статье я опишу как изготовить плату для контроля за напряжением и током, куда её подключить, и что переделать в самом БП, но точной схемы переделки я Вам не дам. Поисковики вам в помощь. Ещё одно "но": схема рассчитана на использование в БП на основе довольно распространенной микросхемы ШИМ - TL494 (аналоги КА7500, МВ3759, mPC494C, IR3M02, М1114ЕУ).

Схема управления

Схема АТХ CODEGEN 300W

Немного пояснений по первый схеме. В пунктир обведена часть схемы, которая находится на плате БП. Там указаны элементы, которые нужно поставить вместо того, что там стоит. Остальную обвязку TL494 не трогаем.

В качестве источника напряжения используем канал 12 Вольт, который немного переделаем. Переделка состоит в замене ВСЕХ конденсаторов в цепи 12 Вольт на конденсаторы такой же (или больше) ёмкости, но большего напряжения 25-35 Вольт. Канал 5 Вольт я вообще выкинул - выпаял диодную сборку и все элементы, кроме общего дросселя. Канал -12В также нужно переделать на большее напряжение - мы его тоже будем использовать. Канал 3,3 Вольта тоже нужно убрать, чтобы он нам не мешал.

Вообще, в идеале нужно оставить только диодную сборку канала 12 Вольт и конденсаторы/дроссели фильтра этого канала. Так же нужно убрать цепи обратной связи по напряжению и току. Если цепь ОС по напряжению найти не трудно - обычно на 1 вывод TL494, то по току (защита от КЗ) обычно приходится искать довольно долго, особенно если нету схемы. Иногда это ОС на 15-16 вывод той же ШИМ, а иногда хитрая связь со средней точки управляющего трансформатора. Но эти цепи необходимо убрать и убедиться, что ничего не блокирует работу нашего БП. Иначе лабораторный не получится. Например - в CODEGEN-е я забыл убрать ОС по току... И не мог поднять напряжение выше 14 Вольт - срабатывала защита по току и выключала БП полностью.

Ещё одно важное замечание: Необходимо изолировать корпус БП от всех внутренних цепей.

Это связано стем, что на корпусе БП - общий провод. Если, совершенно случайно, коснуться выходом "+" на корпус, то получается неплохой феерверк. Т.к. теперь нет защиты от КЗ, а есть только ограничение по току, но оно реализовано по отрицательному выводу. Именно так я сжёг первую модель своего БП.

Хотелось что бы параметры блока устанавливались с помощью энкодера.

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

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

Если в течении некоторого времени не проводить никаких действий система управления переходит в ждущий режим и не реагирует на вращение энкодера.

Установленные параметры сохраняются в энергонезависимой памяти и при последующем включении устанавливаются по последнему выставленному значению.

Индикатор в верхней строке отображает измеренное напряжение и ток.

В нижней строке отображается установленный ток ограничения.

При выполнении условия Iizm>Iset БП переходит в режим стабилизации тока.

Первая часть марлезонского балета.


Ну, собственно, поехали! Давным-давно, лет 7 назад, по случаю прикупил на фирму штук 5 корпусов АТХ по 12 баксов. Корпуса, на удивление, оказались очень хорошими - добротный металл и т.п. - на уровне Inwin и до сих пор служат верой и правдой. Блоки питания были на 250 ватт и работали отлично - тихо и надежно. Однако прогресс на месте не стоит, и со временем пришлось менять мамы, ну и, до кучи, данные БП. Дома их завалялось парочку, и на досуге я решил сделать мощный блок питания как для зарядки разных, в том числе и автомобильных, аккумуляторов, так и для экспериментов с Пельтье и т.п. На сайте итальянского коллеги http://www.chirio.com/switching_power_supply_atx.htm нашел схему переделки, которая меня устроила в плане минимальных доработок и грамотного использования микросхемы ШИМ. Переделка прошла с успехом, немножко доработав схему, я добился устраивающих меня характеристик БП, но, так как в данном случае это не является темой статьи, подробности опускаю.


Встал вопрос о том, чтобы блок питания заимел собственные "мозги", т.е. мог показывать свой товар лицом (выдаваемые напряжение и ток), ну и пытался себя каким-то образом защищать от непосильной ношы (перегрузки и перегрева). В сети есть много вариантов реализации подобных схем, но, для увеличения энтропии Вселенной, и, пренебрегая принципом «бритвы Оккама», мною было принято решение о разработке еще одного показометра.
Анализ реализованных конструкций и курение даташитов привели к тому, что свой выбор я остановил на ATTINY26 и двухстрочном дисплее 1602. Обоснование следующее: тинька имеет достаточно памяти (как мне казалось вначале), дифференциальный вход с программируемым усилением, ну а дисплей - большой и информативный и достаточной простой в управлении – не надо городить динамическую индикацию и т.п. На просторах Интернета мною был найден кусок по реализации ваттметра от немецких камрадов с усреднением из 64 выборок по напряжению и току, который и был взят за основу. Программка накидалась быстро, скомпилировалась где то на 70% и была зашита в тиньку. Однако, как говорится, "гладко было на бумаге, да забыли про овраги". На тестовом этапе выявились баги в виде "мусора" на дисплее от десятичных знаков значений. "Ага", - сказали русские мужики и применили оператор FUSING. Все стало красиво, мусор исчез, но размер кода подрос где-то до 90%. Так как экран был 16*2, а на дисплей выводилось 3 значения - ток, напряжение и потребляемая мощность, то выглядело это кривовато и чего-то не хватало, а именно - температуры. Как известно, последняя имеет немалую роль при эксплуатации электрооборудования и контролировать ее желательно.


Как гласит пословица: "Мужик сказал - мужик сделал!", - подумал я и полез в коробку за цифровым термодатчиком DS1820. "Щас", - ответил компилятор после добавления кода чтения датчика и вывода на дисплей температуры, благополучно показывая результаты компиляции 146%, взяв, по всей видимости, пример с недавних событий. Оптимизация кода в виде применения подпрограмм, снижения числа переменных, убирания FUSING и шаманства с выводом на дисплей (об этом позже), ни к чему не привели - размер хекса превышал 100%. "Нормальные герои всегда идут в обход", - подумал я и на следующий день поехал в магазин за аналоговым термодатчиком. С этим датчиком дела пошли веселей, ибо все свелось к очередному измерению напряжения и, в конце концов, компилятор сдался и показал пресловутые 90 с небольшим %. Так как оставалось немного места в памяти и свободные ноги у камня, я решил вставить парочку исполнительных ключей для того, чтобы электронный болван мог не только моргать глазками на дисплее, но и принимать простейшие решения по типу: «Я устал, я ухожу» . Вставляем куски управления ключами - проверка на условия и память практически закончилась.
Дальше все прозаично - разводка платы, ЛУТ, впайка деталей и на тестирование. Однако эпопея не была завершена - при работе с лабораторным БП на шунте 10 Ом и малых токах индикатор мне подмаргивал показаниями, но не настолько часто, чтобы это раздражало. Когда же я его нагрузил на переделанный блок питания - а пульсации при 10 А составили около 30 мВ - отображение меняющихся чисел начало раздражать. Задавшись извечными русскими вопросами - "кто виноват?" и "что делать?" - я пришел к трилемме: либо усреднять показания больше чем из 64 выборок, либо загрублять вывод данных на дисплей и/или менять период отображения данных. Последние два варианта меня не устраивали – хамов и тормозов в моем окружении достаточно, да это и не кошерно выглядит, и я решил увеличить количество выборок. Бодро изменив в циклах значения с 64 на 255 и сдвиг вправо с 6 на 8 разрядов – таким незатейливым образом реализована операция деления, я, довольный собой - красным молодцем, втыкаю камень обратно в плату.
Вначале - на малых напряжениях - все было хорошо, а потом начались какие-то глюки - показания съеживались и противоречили здравому смыслу. Минут через пять после напряженного мозгового штурма, что означает введение в себя С2Н5ОН-содержащих продуктов, меня осенило: "эврика!", - возопил я внутри себя, как тот мудрец из Сиракуз и, в отличие от него, сухой снаружи и слегка одетый, распугивая домашних, побежал по квартире к своим друзьям: Клаве и Моне. Ларчик открывался просто - сложение 10-разрядных чисел 64 раза давало в итоге 16-разрядное число, а вот если больше - то при больших значениях происходило переполнение, и данные скукоживались и блекли. Лобовая психическая атака с гаишными жезлами в тельняшках на зебрах на изменение типа переменных с Word на Dword и, тем самым, увеличением разрядности с 16 до 32 бит, окончилась позорным провалом - переменные упорно не хотели взаимодействовать между собой, ругаясь на то, что они разного типа, что приводило к нехорошим подозрениям на счет их половой идентификации. Тут я вспомнил замечательный апноут AN #193 - Examples for using OVERLAY на сайте www.mcselec.com и, невзирая на возможные опасности, решил подобраться к ним с тыла. Изюминка заключалась в следующем - я считываю данные с 10-ти разрядного АЦП в переменную типа Word, а складываю переменные типа Dword, частью которых и является присвоенное значение АЦП и так, от забора и до обеда, 256 раз. Потом полученный результат Dword сдвигаю вправо на 8 разрядов - и на выходе у меня получается опять переменная типа Word, но уже усредненная от 256 выборок. Против такого финта ушами переменные не смогли устоять и покорно принялись за работу, взбрыкнув напоследок переполнением памяти. Измерение температуры осталось в старом формате - процесс более стабильный во времени и меньше подвержен флуктуациям. В связи с экономией места пришлось применять различные утряски и усушки: оставить по минимуму количество переменных, что повлияло на читабельность программы. Применение FUSING нехило кушало память - поэтому выводим на дисплей значения Single как есть, а, чтобы не было мусора - лишние знакоместа забиваем пробелами. Введение разнотипных операций - деления и умножения также кушало драгоценное место и от первого пришлось отказаться. Сравнение граничных параметров с текущими пришлось перевести в попугаи формата типа Word. Дошло до мелочей типа отказа от вывода знака градус Цельция, ну и остальное.
В конце концов, настойчивость победила, компилятор показал ровно 100%, и блок питания обзавелся собственными фаршированными нулями и единичками мозгами, а я - экспириенсом.

Часть вторая - железная


Итак, с начинкой для мозгов мы разобрались, теперь осталось разобраться с тем, что так любят все зомби. Что мы имеем в данном случае:
- индикатор - относительно стандартный, только таращится синим светом и, по слухам, имеет альтернативный знакогенератор на китайском языке, был приобретен на http://www.buyincoins.com/ за смешные относительно наших цен деньги – порядка 90рублей. Его братья также хорошо работают в других големах;
- камень ATTINY26 - был у меня в одном экземпляре и еще есть его два собрата, но ATTINY261 - с ними размер программы больше на 2%, так что, если не найдете 26 - придется что-то вырезать из программы. Стоимость тоже около 100 рублей в DIP корпусе. Нулевой канал АЦП работает в дифференциальном режиме - задействованы порты 0 и 1, коэффициент усиления внутреннего ОУ - 20. Второй канал - измерение напряжения, третий - внешний опорник, четвертый - измерение температуры;
- ИОН был собран внешний на TL431 по типовой схеме на напряжение 4,096 вольт. Конечно, лучше бы использовать готовые опорники, но в магазинах нашей косопузой Рязани на данное напряжение их нет, а ждать их не хотелось, да и цена кусается в отличие от. Почему 4,096 В - оказалось удобно применить в расчетах при требуемых характеристиках показометра и поэтому так;
- термометр реализован на LM335Z – 30 деревянных - дешево и сердито - в бытовых условиях диапазона вполне хватает. По расчетам на дисплей корректно должны выводиться данные от -9 до 99 градусов, если ранее не сработает защита. Аналоговое измерение температуры свелось к нехитрым действиям в виде отнимания константы смещения и деления остатка на 2,5 – но для понимания этого пришлось решить систему уравнений с двумя неизвестными, тем самым освежив школьные знания по алгебре;
- исполнительные элементы - сборка из двух полевиков – 25 рублей - куда навесить, какие условия их срабатывания и что с ней сделать - решайте сами - фантазия ограничивается только вами и размером кода)));
- шунт - самое серьезное дело во всей конструкции. Давным-давно, когда винчестеры были большими и из их дисков делали хорошие дециметровые антенны, при разборке ЭВМ достались мне некоторые элементы, в том числе несколько шунтов из какой-то проволоки, скорее всего нихром, диаметром около 1 мм и сопротивлением 0,1 Ом. По прошествии многих лет, согласно законам жанра, в живых остался только один, которому и была проведена децимация в виде усечения 1/10 части. Однако, в связи с тем, что в процесс вмешались до сих пор неустановленные барабашки: может коэффициент усиления внутреннего ОУ не равен 20, может сопротивление проводов, или еще что - пришлось вместо расчетного коэффициента 0,02 применить 0,025 и излишек срезать подстроечным резистором. Шунт в данной конструкции общий и расположен на плате БП АТХ. На плате место предусмотрено для стационарного шунта - меняя коэффициент пересчета - можно вогнать в нужный диапазон.
Подстроечных резисторов четыре - для ИОН, вольтметра и амперметра. регулировка контрастности. Предусмотрено место и для подстроечника термометра, если ИОН будет ниже 3 вольт. В принципе, при использовании точных резисторов можно попробовать обойтись и без них, но в данном случае я решил сделать так – проще в настройке и обеспечивает приемлемую для меня точность. Мелкие деталюшки, цепь питания и развязки аналоговой части стандартны и в пояснениях не нуждаются. Номиналы на схеме показаны условно и могут меняться в пределах здравого смысла и типовых решений узлов. Разводка платы была задумана под бутербродную конструкцию, однако при монтаже в корпус был сделан небольшой джампер-шлейф. О том, как все соединить, в следующей серии нашей трилогии.


Часть третья – почувствуй себя Франкенштейном.


Итак, юные и не очень Франкенштейны, будем оживлять нашего гомункула. Для этого нам понадобится, согласно канонам, тело и мозги. Необходимое предупреждение: будьте внимательны при работе с волшебной силой электричества и представляйте все последствия своих заклинаний. Телом в моем случае, как было описано в первой части, является переделанный БП от старого системного блока стандарта АТХ. На его борту оказалась дежурка, выдающая порядка 9 вольт, что вполне меня устроило для обеспечения энергией «мозгов». Вентилятор также запитан от нее. Параметры выходных напряжений и тока были заданы в диапазоне от 1-20 Вольт и 0-12 Ампер соответственно. Так как выносную панель мне делать не хотелось, и в наличии имелся набор отрезных дисков, гравер, дрель и т.п., то через 30-40 минут жужжания на балконе я сделал необходимые отверстия в крышке БП.

Как было указано выше, бюджет на детали в моем случае составил порядка 300 рублей и никаких дефицитных элементов в конструкции не задействовано. Прилагаемая печатка выполнена в формате Sprint Layout и печатается «как есть». Аналоговая земля выполнена в виде контура отдельно от цифровой и сильноточной цепи и соединена в одном месте. Камень устанавливается через цанговую панельку, и при желании, легко снимается и ставится. Отдельный разъем для зомбирования тиньки не предусмотрен, но при желании можно зашить через разъем для дисплея, и выведенную отдельно лапку RESET – нога 10 панельки.


Опускаем такие рутинные для каждого современного алхимика процессы по выращиванию гомункула в виде изготовления платы, запаивания элементов и т.п. и переходим к его оживлению. Для этого, не вставляя контроллер в панельку, подаем питание 9-10 Вольт на вход и, если никаких дыма и вспышек не произошло, пробегаемся вольтметром по ногам панельки дабы убедиться в наличии 5 Вольт на лапках 5 и 15 – т.е. питания контроллера. Далее тычем щуп на лапку 17 – опорное напряжение и крутим подстроечник возле TL431, до достижения напряжения 4,096 В. К сожалению, мой палантир страдает дальнозоркостью и последнюю значащую цифру не кажет. В данном случае я ориентировался на ощущения своей пятой точки опоры, которая со временем выработала требуемую чувствительность. После подключаем дисплей на шлейфе, вставляем заколдованную нашими заклинаниями тиньку и снова подаем питание. Регулировкой подстроечника выставляем контрастность и, если все было сделано правильно, видим какие-то цифры и буквы.
Подаем на нагрузку, подключенную через плату, напряжение и вспоминаем закон Ома. Нагрузку желательно иметь точную – у меня в качестве такой был резистор 10 Ом с допуском +-0,25% аж 1964 года выпуска, т.е. старше меня самого. Скорее всего, его сняли с какой-нибудь баллистической ракеты, которая грозила нашему потенциальному врагу и министр обороны которого с криками «Русские идут!» безуспешно попытался преодолеть земное тяготение. Потом потенциальный враг превратился в заклятого друга и в его «партнерских» объятиях многое превратилось в прах или же растворилось неизведанными оффшорными путями по просторам нашего земного диска. Как-то так оказался у меня данный резистор. Путем сложных, недоступных простому смертному с гуманитарным образованием, измерений необходимо узнать действующее напряжение и вычислить протекающий через цепь ток и подстроечными резисторами добиться нужных показаний на дисплее. Мощность же, потребляемая нагрузкой, равна их произведению. Подключая нагрузку с меньшим сопротивлением, будьте внимательны и осторожны, ибо при несоответствии рассеиваемой мощности вы можете вызвать духов в виде волшебного дыма, из которого состоят все радиоэлементы, а, возможно, и пламени. У меня такой дым пошел из 5-ти ваттных резисторов общим сопротивлением около 1,5 Ом, и только через полчаса сложными пассами в виде открывания балкона удалось изгнать демона обратно. Резисторы, как ни странно, выжили, но на конкурсе красоты среди своих братьев заняли бы место в арьергарде.
На приведенных ниже фотографиях видны испытания моего почти-что собранного гомункула с изменением тока и напряжения. Термодатчик всунут внутрь резистора ПЭВ-5 сопротивлением 6,2 Ома и видно, как он нагревается. Хочу предупредить, что опытный, пытливый глаз инквизитора сразу заметит несоответствие в показаниях между этими фотографиями и захочет устроить допрос с пристрастием. Поэтому ответственно заявляю - «in omnibus voluntas Dei!» - фотографии были сделаны, когда цикл был 64 выборки и я пытался ввести поправки на ошибку смещения, вставлял конденсаторы для интегрирования показаний и т.п. В дальнейшем я отрекся от неправедного пути и встал на путь исправления и сотрудничества с администрацией. Показания сразу стали более-менее соответствовать закону Ома с учетом отсутствия округления результатов.

Эффектов, частотомеров и так далее. Скоро дойдёт до того, что и мультивибратор будет проще собрать на контроллере:) Но есть один момент, который очень роднит все типы контроллеров с обычными цифровыми микросхемами серии К155 - это питание строго 5 вольт. Конечно найти такое напряжение в устройстве подключенном к сети не проблема. А вот использовать микроконтроллеры в составе малогабаритных девайсов с батареечным питанием уже сложнее. Как известно, микроконтроллер воспринимает только цифровые сигналы – логический ноль или логическую единицу. Для микроконтроллера ATmega8 при напряжении питания 5В логический ноль – это напряжение от 0 до 1,3 В, а логическая единица – от 1,8 до 5 В. Поэтому для его нормальной работы и требуется такое значение питающего напряжения.

Что касается микроконтроллеров AVR, то есть два основных типа:

Для получения максимального быстродействия при высокой частоте - питание в диапазоне от 4,5 до 5,5 вольт при тактовой частоте 0...16 МГц. Для некоторых моделей - до 20 МГц, например ATtiny2313-20PU или ATtiny2313-20PI.

Для экономичной работы на небольших тактовых частотах - 2,7...5,5 вольт при частоте 0...8 МГц. Маркировка микросхем второго типа отличается от первого тем, что на конце добавляется буква "L". Например, ATtiny26 и ATtiny26L, ATmega8 и ATmega8L.

Существуют и микроконтроллеры с возможностью понижения питания до 1.8 В, они маркируются буквой "V", например ATtiny2313V. Но за всё надо платить, и при понижении питания должна быть снижена и тактовая частота. Для ATtiny2313V при питании 1,8...5,5 В частота должна находиться в интервале 0...4 МГц, при питании 2,7...5,5 В - в интервале 0...10 МГц. Поэтому если требуется максимальное быстродействие, надо ставить ATtiny26 или ATmega8 и повышать тактовую частоту до 8...16 МГц при питании 5В. Если важнее всего экономичность - лучше использовать ATtiny26L или ATmega8L и понизить частоту и питание.

В предложенной схеме преобразователя, при питании от двух пальчиковых батареек с общим напряжением 3В - выходное напряжение выбрано 5В, для обеспечения достаточного питания большинства микроконтроллеров. Ток нагрузки составляет до 50мА, что вполне нормально - ведь при работе на частоте например 4 МГц, PIC контроллеры, в зависимости от модели, имеют ток потребления менее 2 мА.


Трансформатор преобразователя мотается на ферритовом кольце диаметром 7-15мм и содержит две обмотки (20 и 35 витков) проводом 0,3мм. В качестве сердечника можно взять и обычный маленький ферритовый стержень 2,5х7мм от катушек радиоприёмников. Транзисторы используем VT1 - BC547, VT2 - BC338. Допустима их замена на другие аналогичной структуры. Напряжение на выходе подбираем резистором 3,6к. Естественно при подключенном эквиваленте нагрузки - резисторе 200-300 Ом.


К счастью технологии не стоят на месте, и то что казалось недавно последним писком техники - сегодня уже заметно устаревает. Представляю новую разработку кампании STMicroelectronics - линейка микроконтроллеров STM8L, которые производятся по технологии 130 нм, специально разработанной для получения ультранизких токов утечки. Рабочие частоты МК - 16МГц. Интереснейшим свойством новых микроконтроллеров является возможность их работы с в диапазоне питающих напряжений от 1,7 до 3,6 В. А встроенный стабилизатор напряжения дает дополнительную гибкость выбора источника напряжения питания. Так как использование микроконтроллеров STM8L предполагают питание от батареек, в каждый микроконтроллер встроены схемы сброса по включению и выключению питания, а также сброса по снижению напряжения питания. Встроенный детектор напряжения питания сравнивает входные напряжения питания с заданным порогом и генерирует прерывание при его пересечении.


К другим методам снижения энергопотребления в представленной разработке относятся использование встроенной энергонезависимой памяти и множества режимов сниженного энергопотребления, в число которых входит активный режим с энергопотреблением - 5 мкА, ждущий режим - 3 мкА, режим остановки с работающими часами реального времени - 1 мкА, и режим полной остановки - всего 350 нА! Микроконтроллер может выходить из режима остановки за 4 мкс, позволяя тем самым максимально часто использовать режим с самым низким энергопотреблением. В общем STM8L обеспечивает динамическое потребление тока 0,1мА на мегагерц.

Обсудить статью ПИТАНИЕ МИКРОКОНТРОЛЛЕРА



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows