Питание микроконтроллера. Цифровой лабораторный блок питания с управлением через пк


Индикатор - ЖКИ дисплей на основе контроллера НD44780, 2 сточки по 16 символов. Управление напряжением осуществляется встроенным в контроллер ШИМ ом. Его скважность регулируется энкодером, каждый шаг которого приводит к увеличению или уменьшению напряжения на 0,1 вольт на выходе БП. Полный оборот энкодера – 2 вольта. Поскольку ШИМ может изменять напряжение на накопительной емкости лишь в интервале от 0 до 5 вольт, применен ОУ с коэффициентом усиления 5. Таким образом фактическое напряжение на выходе БП регулируется в пределах 0 – 25 вольт.
Регулирующим элементом является мощный составной транзистор КТ827А. С эмиттера регулирующего транзистора через верхнее плечо делителя (2 Х 8,2 к) осуществляется обратная связь, благодаря чему даже при больших токах в нагрузке напряжение поддерживается на строго заданном уровне вплоть до сотых долей вольта.

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

Блок защиты от короткого замыкания в нагрузке. Выполнен виде отдельного устройства включенного между выпрямителем и регулирующим элементом. Ток срабатывания защиты - 5 А. Подбирается резистором 47к в базовой цепи транзистора управляющего ключом КТ825Г.

Настройка.
Заключается в подборе резисторов, обозначенных звездочкой, для соответствия показаний ЖКИ реальным току и напряжению на выходе БП.

Детали.
Шунт взят из разбитого мультиметра, его сопротивление около 0,01 Ом. Исходное состояние контактов энкодера описано в принципиальной схеме, он может быть любой соответствующий этим состояниям. Кроме вращения, он имеет вн контакты, которые замыкаются без фиксации при нажатии на вал.
Транзисторы n-p-n без маркировки могут быть КТ315 или любыми маломощными, подобными им в чип корпусе. Транзистор p-n-p в ключе, управляющем подсветкой может быть любой средней мощности.

Как пользоваться БП.
Энкодером регулируется напряжение 0 – 25 вольт с шагом 0,1 вольта. При кратком (менее 0,5 сек) нажатии на ручку включается/выключается подсветка. При нажатии более 0,5 сек происходит запись установленного напряжения в энергонезависимую память контроллера.

Полный проект для MPLAB вы можете скачать ниже.

Список радиоэлементов

Обозначение Тип Номинал Количество


МК PIC 8-бит

PIC16F628A

1


АЦП MCP3202 1


Операционный усилитель

LM358

2


Линейный регулятор

LM7809

1


Линейный регулятор

LM7805

1


Биполярный транзистор

КТ825Г

1


Биполярный транзистор

КТ827А

1


Биполярный транзистор

КТ315А

2


Транзистор
1


Диодный мост
1


4700 мкФ 1


Электролитический конденсатор 2200 мкФ 3


Электролитический конденсатор 1 мкФ 1


Электролитический конденсатор 470 мкФ 2


Электролитический конденсатор 4.7 мкФ 4


Электролитический конденсатор 10 мкФ 1


Конденсатор 0.1 мкФ 1


Резистор

2.2 кОм

1


Резистор
1


Резистор

4.7 кОм

2


Резистор

47 кОм

1


Резистор

3.3 кОм

2


Резистор

100 кОм

1


Резистор

1 кОм

3


Резистор

0.01 Ом

1


Резистор

470 Ом

1


Резистор

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


Ну, собственно, поехали! Давным-давно, лет 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 выборки и я пытался ввести поправки на ошибку смещения, вставлял конденсаторы для интегрирования показаний и т.п. В дальнейшем я отрекся от неправедного пути и встал на путь исправления и сотрудничества с администрацией. Показания сразу стали более-менее соответствовать закону Ома с учетом отсутствия округления результатов.

Представляю для вашего внимания проверенную схему хорошего лабораторного источника питания, опубликованного в журнале "Радио" №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.

11

Рис. 2. Схема блока питания.

Основные изменения в схеме относительно оригинала:
1) под R-2R ЦАП выделен порт С микроконтроллера целиком, так проще работать,
2) сами резисторы в ЦАПе других номиналов, такие, какие были, кстати, эти резисторы надо бы подбирать с высокой точностью, иначе при работе ЦАПа будут ступеньки.
3) схема Дарлингтона в выходном каскаде заменена на один КТ8106А ;
4) токоизмерительный шунт сделан более мощным и с меньшим сопротивлением (0,55 Ом);
5) устранено совмещение сигнальных линий энкодера и LCD-экрана.
6) предусмотрена обвязка термодатчика и схема управления вентилятором с ШИМ управлением.

Исходники были модифицированы под данную схему. Переназначены ножки микроконтроллера. Файлы для работы с клавиатурой были заменены (kbd.c и kbd.h ) на файлы для работы с энкодером . Алгоритм работы энкодера следующий: нажали на энкодер - вошли в режим установки напряжения, нажали еще раз - вошли в режим установки тока, нажали еще раз - сохранили установки. Если в режиме настройки не трогать энкодер более 20 секунд, блок автоматом выходит из режима настройки и не сохраняет изменения. Энкодер работает по внешним прерываниям и использует таймер Timer2 для реализации защитных пауз.

Изменена логика работы со светодиодом состояния. Теперь он показывает аварийные ситуации - перегрузку блока питания, перегрев и состояние перезаписи прошивки бутлоадером.

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

Добавлен опрос 3-го аналогового входа АЦП для термодатчика. Реализована ШИМ-регулировка оборотов вентилятора охлаждения в зависимости от показаний датчика.

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

Сборка

Корпус УПС очень хорошо подходит для переделки. Прочный, пластик, внутренние усилительные ребра. Да и размер подходящий. Вместо задней панели с силовыми разъемами я вырезал аналогичный по цвету и форме кусок ровного пластика от лотка струйного принтера. К нему прикрутил радиатор от старого Атлона. К радиатору через изолирующую термоподложку прикрепил выходной транзистор, диодный мост и датчик температуры. Два слова о том как определять обмотки в трансформаторе: самые толстые три провода - это вторичная силовая обмотка. От нее у меня питается силовая часть. Бывает еще и вторая слаботочная вторичная обмотка для питания внутренней схемы УПС. Она определяется так - это два тонких провода одинакового (у меня были оранжевые) цвета. У меня от нее запитана схема управления, микроконтроллер, подсветка экрана и вентилятор. Остальные относительно тонкие провода - это первичная обмотка с большим количеством отводов. С их помощью можно подобрать подходящее выходное напряжение силовой обмотки при приемлемом токе холостого хода.

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

В качестве интефейса МК-компьютер я пока использую готовую платку преобразователя USB-TTL RS232 на микросхеме CP2102. Через нее осуществляется перепрошивка МК и общение компьютера со схемой. В будущем я планирую сделать оптоизолированный RS232 интерфейс.

Рис.3. Передняя панель.


Рис. 4. Установка радиатора.


Рис. 5. Внутренности блока.

Прошивка

Я все делал в среде AVR Studio 4.18 с WinAVR-20100110 . Готовые файлы прошивки для бутлоадера и основной программы лежат в архиве.
Прошить микроконтроллер можно и просто основной программой или связкой "бутлоадер+основная программа ". Первый случай подойдет тем, кто ничего в основной программе менять не собирается. Или не собирается делать интерфейс блок-компьютер. В случае использования бутлоадера можно перепрограммировать полностью собранное устройство и на первом этапе очень удобно было, например, подгонять калибровочные параметры. Однако, для бутлоадера блоку нужен RS232.

Вне зависимости от способа программирования вначале нужно подключить собранную плату к ISP-программатору. Затем прошить соответствующим hex-файлом и выставить фьюзы. В случае использования программы без бутлоадера HIGH=0xDB LOW=0xDE, во втором HIGH=0xDA LOW=0xDE. Остальное изменять не стоит.

Как только бутлоадер прошит, дальнейшие манипуляции по перепрограммированию осуществляются очень просто: подключаешь блок к компьютеру RS232 интерфейсом, контролируешь (в случае USB -эмуляции порта), что подключение произошло к COM1, 2, 3, или 4, включаешь питание блока и сразу запускаешь в студии Tools->Avr Prog. В ней выбираешь файл из архива с прошивками \AVRGCC1\Debug\PowerUnit.hex и шьешь.
Поскольку и бутлоадер и вся процедура у меня сделана по статье , тонкости процесса можно почерпнуть там.

Калибровка

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

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

Интерфейс и работа с компьютером

Работа интерфейса также изменилась по сравнению с программой Гвидо: скорость 38400 kbps, 8N1. В конце строки требуется символ перевода каретки.
Набор команд:


С помощью этих команд можно управлять блоком из любой терминальной программы. Я предпочитаю использовать Serial monitor в Arduino, но это дело вкуса.
Я написал небольшую программу для Windows которая умеет выводить данные в график и задавать значения, в том числе и по протоколу. См. раздел файлов.


Рис.6. Интерфейс программы управления. Вкладка с графиками.

Эффектов, частотомеров и так далее. Скоро дойдёт до того, что и мультивибратор будет проще собрать на контроллере:) Но есть один момент, который очень роднит все типы контроллеров с обычными цифровыми микросхемами серии К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мА на мегагерц.

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



Просмотров