» » » Сделай сам лабораторный блок питания с микропроцессорным управлением на ATMega16. Вторая жизнь Back-UPS

 
 
 

Сделай сам лабораторный блок питания с микропроцессорным управлением на ATMega16. Вторая жизнь Back-UPS

Разместил Freeflyer 11 мая 2012. Просмотров: 41 985

11

Что такое "Back-UPS"? С точки зрения самодельщика - это прочный корпус и мощный блок питания внутри!
Чтобы получился лабораторный блок питания надо добавить только схему управления на микроконтроллере ATMega16!
«Досталась» как-то мне УПСка за бесплатно. Конечно, неисправная. Вот такая:

Рис. 1. Внешний вид блока бесперебойного питания до модификации

Оказалось, что после выработки ресурса аккумуляторной батареи компьютерщики в нашей конторе их частенько просто списывают и выбрасывают целиком. Забота о природе не позволила мне мириться с таким положением вещей. Притащив это богатство домой начал думать что же с ней делать. Попытка восстановить аккумулятор методом заливки дистиллированной воды и зарядки малым током не привела к успеху. Что дальше? Покупать аккумулятор? Да и есть уже у меня УПСка, и не нужна мне вторая. Основные полезные детали очевидны: прочный, пластиковый, аккуратный корпус и мощный трансформатор внутри. Решил сделать из нее лабораторный блок питания для мастерской. Тем более, что старый Б5-47 уже надоел своим визгом, наверное, просится на пенсию машинка 1988 года рождения.

Техническое задание для нового блока определил максимально нескромное (иначе его проще купить готовый):
1) Линейная схема — это надежно и тепло!
2) Выходное напряжение: не менее 15В — хватит и для зарядки 12В аккумуляторов, и для питания цифровых цепей, кроме того, есть идея как в дальнейшем увеличить выходное напряжение в 2 раза.
3) Выходной ток: не менее 3А, но можно и побольше.
4) Регулируемое напряжение стабилизации и регулируемое ограничение по току, защита от КЗ.
5) Цифровая индикация.
6) Интерфейс к компьютеру — можно будет с компьютера контролировать процесс зарядки - разрядки аккумулятора, составлять сложные протоколы работы, можно даже реализовать контроль параметров через какой-нибудь Web-сервис типа Pachube.
7) Удобное управление – я люблю энкодеры.
8) Малый шум (это после работы с блоком питания Б5-47).
9) Минимальные затраты — используем преимущественно имеющиеся комплектующие.

В поисках готового решения набрел на сайт Гвидо Сошера, где опубликована уже третья версия цифрового блока питания, которая, в принципе, устроила по всем параметрам, кроме управления и используемого микроконтроллера. Не оказалось у меня в запасе восьмой Меги... Зато оказалась ATMega16, и макетка для нее.
И не люблю я кнопки. В плане управления устройствами я поклонник энкодера: всего одна ручка, нажал — вошел в режим управления, крутанул — установил значение, нажал — значение сохранилось в EEPROM. Красота! Но программу Гвидо пришлось переработать.

Разработка

Для последней на тот момент "3.0" версии блока питания, схема у Гвидо на сайте не приведена. Даны только общие идеи построения блока. Вот они:
1) Для управления выходным напряжением используется гибридный ЦАП: младшие разряды получаются из ШИМ модулятора, а старшие из R-2R преобразователя.
2) Используется наивысшая скорость работы АЦП в непрерывном цикле по прерываниям, затем точность преобразования еще повышается путем усреднения избыточного числа измерений (оверсэмплинг), но только для канала измерения напряжения, таким образом точность измерения повышается до ~0,01В.
3) Выходная часть блока выполнена по схеме эмиттерного повторителя с предварительным усилителем.

После некоторых поисков была найдена схема 1-й версии блока. Так же на сайте выложены исходные тексты последней версии прошивки контроллера. По этим источникам удалось уточнить распределение ножек микроконтроллера и схема приобрела следующий вид:
Исключён фрагмент. Полный вариант статьи доступен только полноправным членам сообщества и подписчикам.
Пожалуйста, ознакомьтесь с условиями доступа.

Рис. 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 и шьешь.
Поскольку и бутлоадер и вся процедура у меня сделана по статье «Использование Bootloader’а», тонкости процесса можно почерпнуть там.

Калибровка

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

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

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

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

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

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



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


Файлы

[24-05-2012 Updated] Статья с обновленной программой. Все новые версии будут публиковаться там.

Прошивка для бутлоадера и основной программы:
proshivka.zip | Файл 232,71 Kb загружен 172 раз.

Заключение

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

Хотя в качестве корпуса для такой конструкции я бы все равно взял УПСину.
Очень уж они удобные.
Максим (Freeflyer)
Местоположение в тайне.
Профиль Freeflyer
О себе автор ничего не сообщил.
 

Понравилось? Палец вверх!

  • всего лайков: 25

Поделись с друзьями!

Связанные материалы:


SMD практикум № 2! Индикатор уровня заряда аккумулятора для автомобилиста

Длительная эксплуатация аккумуляторной батареи автомобиля достигается её поддержанием в заряженном...

Автоматическое зарядное устройство с циклическим и буфферным режимами для

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

Схемка в блокнот. Устройство для разрядки никель-кадмиевых аккумуляторов

При эксплуатации никель-кадмиевых аккумуляторов перед тем как ставить их на зарядку, их надо...

Зарядное устройство с циклическим током для восстановления кислотных аккумуляторных

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

Программа для лабораторного блока питания с микропроцессорным управлением на ATMega16

Обещанный релиз первого варианта "правильной" программы к статье Сделай сам лабораторный блок...

Простое зарядное устройство с постоянным током зарядки и ограничением выходного

Зарядное устройство для щелочных и свинцовых аккумуляторов ёмкостью до 10-15 Ампер-час, для...

Сделай сам корпус домашнего лабораторного блока питания из старого компьютерного

Давно хотел поменять свой морально и физически устаревший лабораторный блок питания. Рыскал в...

Портативный Boombox по-украински

Здравствуйте, датагорчане! Вашему вниманию и возможно немного на критику я выставляю сделанный мной...

Игорь, с Днем Рождения!

С Днем рождения! Сегодня, 5 сентября, у нашего Игоря Котова, основателя Датагории, День Рождения! ...

О бесперебойном питании и воспитании

Пишет Max Qlman: Сдали в ремонт источник бесперебойного питания APC Back-UPS 600. Не...

Импульсный преобразователь аккумуляторного питания 12V - 8V для видеокамеры на

Пришло письмо от Юрия Козака: Игорек! Высылаю тебе документацию на небольшое устройство для питания...

Аккумуляторы Джи Пи. Купил? Охлади!

Здравствуйте, дорогие единомышленники!:) Помните навязчивую рекламку? Джи Пи - увидел - купи! ...
<
  • Главный редактор
16 мая 2012 00:11

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 604 комментария
  • 257 публикаций
 
  • 0
Максим, с почином!
Машинка получилась класс. Спасибо за добрый материал.

<
  • Кандидат
16 мая 2012 00:51

Михаил / Dust112

  • С нами с 22.05.2011
  • Ушёл в реал Пользователь offline
  • 14 комментариев
  • 1 публикация
 
  • 0
Просто класс, да еще и с исходниками.

<
  • Гражданин
16 мая 2012 10:29

Александр / Халява

  • С нами с 22.03.2010
  • Ушёл в реал Пользователь offline
  • 16 комментариев
  • 0 публикаций
 
  • 0
Интересная статейка. Ну что ж, буду ждать, когда у меня этот UPS умрёт.

<
  • Гражданин
16 мая 2012 13:01

Андрей / andrew_spb

  • С нами с 21.02.2009
  • Ушёл в реал Пользователь offline
  • 128 комментариев
  • 2 публикации
 
  • 0
Отличная статья и хороший материал для размышлений. Например, схему аналоговой части положил себе в копилку, как и идею сделать БП из УПС. Правда, радиатор с вентилятором так наружу вытаскивать не буду.., ИМХО, неконструктивно. но это уже вопросы компоновки.

<
  • Гражданин
17 мая 2012 11:56

Владимир / Vlad_B

  • С нами с 2.02.2009
  • Ушёл в реал Пользователь offline
  • 15 комментариев
  • 0 публикаций
 
  • 0
у меня уже есть куча бесперебойников smile

<
  • Гражданин
17 мая 2012 22:58

Игорь / AudioKiller

  • С нами с 10.01.2012
  • Ушёл в реал Пользователь offline
  • 293 комментария
  • 3 публикации
 
  • 0
На самом деле классное устройство - старые блоки устарели ну очень сильно, даже морально. А соединение с компом - это вообще замечательно. Но есть вопросы:

1. Mega16 - не "сильно жирно" для такого?
2. Не слишком ли мелкие индикаторы? Может стОит перейти на цифровые LED? Тем более, что они сами светятся и видны даже издалека. По крайней мере, напряжение выводить на них крупными цифрами.

И еще. При низких выходных напряжениях на регулирующем трензисторе рассеивается слишком большая мощность. Для улучшения жизни используют несколько обмоток силового транса, и если установлено низкое Uвых, питание на стабилизатор подают с низковольтной обмотки, а если требуется большое выходное напряжение, то включают более высоковольтную обмотку. Но аналоговыми средствами получается плоховато, а вот контроллер - он сам простится на такую работу: он же уже "знает", какое напряжение нужно на выход, и переключит обмотку (с некоторым гистерезисом). Даже для питания макс. 15 вольт 3А этостановится актуальным, а для большего питания... Тем более, что умные "мозги" могут позволить иметь 3...4 ступени входного напряжения.

<
  • Гражданин
18 мая 2012 01:20

Максим / Freeflyer

  • С нами с 15.05.2009
  • Ушёл в реал Пользователь offline
  • 5 комментариев
  • 3 публикации
 
  • 0
Спасибо всем за интерес к статье и теплые отзывы.

AudioKiller
1. Mega16 - не "сильно жирно" для такого?

Вопрос оптимального подбора МК становится острым при значительной партии устройств. Кроме того, линейки МК Атмела не так богаты, как, например у Техас Инстр. Мега16 сейчас стоит ~100р., что примерно на 20р. дороже восьмой. Есть ли смысл в экономии? Кроме того она просто была в наличии, и под нее была удобная макетка. Я об этом упоминал. Если есть желание сделать проект на другом МК (хоть больше, хоть меньше) - исходники все есть, раскладка по портам там вынесена в отдельные заголовки, проект намеренно сделан в доступной среде разработки, изменение распиновки займет 20 минут. А иметь запас по ногам МК - это всегда хорошо. Может быть захочется SD карту прикрутить, или еще что-нибудь.
Переходить на более "скромный" МК, наверное, имеет смысл в случае изготовления блока питания вообще без "живых" органов управления, только с "виртуальным" управлением через компьютер. Это может быть оправдано в некоторых случаях. Например, если делать мобильное устройство и нужно сэкономить в габаритах.
AudioKiller
2. Не слишком ли мелкие индикаторы? Может стОит перейти на цифровые LED? Тем более, что они сами светятся и видны даже издалека. По крайней мере, напряжение выводить на них крупными цифрами.

Это усложнит и удорожит проект. У меня индицируются 2 значения напряжения и 2 значения тока. Чтобы вывести аналогичное количество информации на LED в режиме динамической индикации потребуется 8+12 ножек МК и транзисторы-драйверы (т.к. ток слишком большой для ножек МК), против всего 6 ножек МК в случае LCD. Или микросхема - сдвиговый регистр. В общем это сложнее и дороже. При желании получить более яркие читаемые цифры я бы применил VFD или OLED экраны. По-моему есть даже такие, которые совместимы с этим LCD по цифровому интерфейсу. Т.е. в прошивке и схеме даже менять ничего не надо. С другой стороны, можно на 4-х строчный LCD экран псевдографикой цифры выводить... Тоже крупнее будет.
Но на этот экранчик я сейчас вообще редко смотрю: на компьютере в интерфейсе программы цифры можно сделать любого размера быстро и просто.
И еще. При низких выходных напряжениях на регулирующем трензисторе рассеивается слишком большая мощность. Для улучшения жизни используют несколько обмоток силового транса, и если установлено низкое Uвых, питание на стабилизатор подают с низковольтной обмотки, а если требуется большое выходное напряжение, то включают более высоковольтную обмотку. Но аналоговыми средствами получается плоховато, а вот контроллер - он сам простится на такую работу: он же уже "знает", какое напряжение нужно на выход, и переключит обмотку (с некоторым гистерезисом). Даже для питания макс. 15 вольт 3А этостановится актуальным, а для большего питания... Тем более, что умные "мозги" могут позволить иметь 3...4 ступени входного напряжения.

Такая схема управления ведет к переделке трансформатора, что не укладывается в концепцию "блока быстрого приготовления". Хотя свободных ног у МК осталось много: A4-A7 как раз можно подключить к реле, кроме того, я намеренно оставил свободной ногу D7 - на нее выходит ШИМ 62,5кГц, т.е. можно сделать гибридный импульсно-линейный стабилизатор. Но если серьезно говорить о бОльших мощностях, то эту же схему управления легко можно использовать как "мозги" для импульсного БП на той же 494 микросхеме.

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

<
  • Гражданин
20 мая 2012 04:55

Игорь / AudioKiller

  • С нами с 10.01.2012
  • Ушёл в реал Пользователь offline
  • 293 комментария
  • 3 публикации
 
  • 0
Согласен. Я говорю о том, что конструкция слишком хороша, чтобы оставаться "конструкцией выходного дня". Я уверен, что многие захотят обзавестись такой удобной и полезной штукой. Отсюда и желание "сделать лучше".

<
  • Главный редактор
24 мая 2012 09:47

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 604 комментария
  • 257 публикаций
 
  • 0
Размещена статья с обновленной программой
Программа для лабораторного блока питания с микропроцессорным управлением на ATMega16
Благодарим Макса!
drinks

<
  • Кандидат
22 января 2015 17:31

Павел / astinis

  • С нами с 22.01.2015
  • Ушёл в реал Пользователь offline
  • 2 комментария
  • 0 публикаций
 
  • 0
Ходу предупредить повторяющих эту схему, узел измерения тока как в оригинале Гвидо Сошера, т.е падение напряжения на шунте снимается относительно общего провода. При зарядке аккумуляторов от 12 вольт и выше, если они подключаются к обесточенному БП, бывает, вылетает порт МК, измеряющий ток.
У себя при повторении конструкции Гвидо, я использовал шунт 0,1 Ома в плюсовом плече + INA138.

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

Из опыта пользования БП - и кнопки, и энкодер для меня не удобны при изменении напряжения/тока, поэтому в своей реализации я использую прямой ввод с кейпада.

<
  • Кандидат
13 марта 2015 14:19

Павел / astinis

  • С нами с 22.01.2015
  • Ушёл в реал Пользователь offline
  • 2 комментария
  • 0 публикаций
 
  • 0
вопрос к автору.

на схеме VD2 выполняющий роль термодатчика -кремний или германий?
и нет ли опечатки в полярности его включения, ибо как известно, для измерений используется прямая ветвь ВАХ диодов, поскольку обратная ветвь менее стабильна.

на схеме верхнее плечо R2R идет на порт PD4?
на схеме плохо читается

еще вопрос, по прошивке.

в оригинальной прошивке Гвидо Сошера на входе измерения тока
(PC0 mega8)включен внутренний подтягивающий (pull-up) резистор.
есть подозрения, что это и является причиной выхода порта при подключении 12в аккумуляторов.

В вашей прошивке pull-up резистор включен/выключен?

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


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