Блок питания с микроконтроллерным управлением
Состоит из блока индикации и управления, измерительной части и блока защиты от КЗ.
Блок индикации и управления.
Индикатор — ЖКИ дисплей на основе контроллера Н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 вы можете скачать ниже.
Источник
Лабораторный блок питания с управлением от микроконтроллера
Данная статья предназначена для тех, кто хочет научиться программированию микроконтроллеров Atmel AVR. На этом примере мы рассмотрим принцип построения структуры программы, обработке прерывания, взаимодействие МК с аналоговой частью и принципах управления систем с обратными связями. К тому — же это полезный и удобный прибор.
Вступление
Каждый специалист по разработке электронных устройств, а также ремонтники радиоаппаратуры сталкиваются с проблемой источника питания для проверки и ремонта созданного ими устройства. Недорогие лабораторные источники, которые имеются в продаже, не всегда соответствуют поставленным задачам, либо слишком дороги, да к тому же обилие органов управления не позволяет оперативно изменять характеристики подаваемого к прибору напряжения и тока.
Поиск подходящих конструкций, которые бы удовлетворяли всем моим требованиям, на просторах интернета и публикациях в журналах не принесла результата, либо они были маломощные, либо крайне неудобные. Поэтому за дело пришлось взяться самому.
Были сформулированы следующие требования к будущему блоку питания:
1. напряжение от 0 до 50 В.
2. максимальный ток нагрузки до 5 А.
3. установка защиты по превышению тока от 0 до 5А.
4. удобство эксплуатации.
5. удобство ремонта и регулировки.
6. возможность использования базового микроконтроллерного модуля в других конструкциях, путем изменения конфигурации в сервисном режиме.
После того как требования оформились в техническое задание, можно приступать, собственно к проектированию самого устройства.
Рис.1 Блок-схема блока питания
Блок — схема (рис.1) состоит из четырех блоков:
1. первичный источник предназначен для гальванической развязки от питающей сети и понижения напряжения для регулятора. В зависимости от примененного первичного источника (импульсный блок или трансформатор с секционной вторичной обмоткой) используются разные подпрограммы микроконтроллера (об этом будет описано ниже).
2. регулятор — собственно основная силовая аналоговая часть, которая осуществляет регулирование напряжения и тока в зависимости от параметров установленных микроконтроллером, а также обеспечивает компенсацию падения напряжения на токоизмерительном резисторе.
3. МИКРОКОНТРОЛЛЕР (МК) — обеспечивает управление всей этой системой, сбор данных о текущих значениях — напряжении на выходе блока, потребляемый ток нагрузкой. Индикация напряжения, тока и текущем состоянии блока, установка конфигурации, индикация превышения тока нагрузки сверх установленных значений. Запоминание последних установленных параметров.
4. УПРАВЛЕНИЕ И ИНДИКАЦИЯ — то что мы видим и то чем мы управляем. Управление производится всего двумя органами управления, это энкодер с кнопкой, и просто кнопка.
Микроконтроллер
Проблемы выбора микроконтроллера передо мной не стояла, исходя из поставленной задачи выбор пал на микроконтроллер фирмы Atmel AVR Mega8, по той простой причине — что в этой микросхеме есть все, что душе угодно. Немаловажным фактором послужило и то, что корпус этого МК имеет небольшое число выводов.
Концепция новых скоростных микроконтроллеров была разработана группой разработчиков исследовательского центра ATMEL в Норвегии, инициалы которых затем сформировали марку AVR. Первые микроконтроллеры AVR AT90S1200 появились в середине 1997 г.и быстро снискали расположение потребителей.
AVR-архитектура, на основе которой построены микроконтроллеры семейства AT90S, объединяет мощный гарвардский RISC-процессор с раздельным доступом к памяти программ и данных, 32 регистра общего назначения, каждый из которых может работать как регистр- аккумулятор, и развитую систему команд фиксированной 16-бит длины. Большинство команд выполняются за один машинный такт с одновременным исполнением текущей и выборкой следующей команды, что обеспечивает производительность до 1 MIPS на каждый МГц тактовой частоты.
32 регистра общего назначения образуют регистровый файл быстрого доступа, где каждый регистр напрямую связан с АЛУ. За один такт из регистрового файла выбираются два операнда, выполняется операция, и результат возвращается в регистровый файл. АЛУ поддерживает арифметические и логические операции с регистрами, между регистром и константой или непосредственно с регистром.
Регистровый файл также доступен как часть памяти данных. 6 из 32-х регистров могут использоваться как три 16-разрядных регистра-указателя для косвенной адресации. Старшие микроконтроллеры семейства AVR имеют в составе АЛУ аппаратный умножитель.
Базовый набор команд AVR содержит 120 инструкций. Инструкции битовых операций включают инструкции установки, очистки и тестирования битов.
Все микроконтроллеры AVR имеют встроенную FLASH ROM с возможностью внутрисхемного программирования через последовательный 4-проводной интерфейс.
Периферия МК AVR включает: таймеры-счётчики, широтно-импульсные модуляторы, поддержку внешних прерываний, аналоговые компараторы, 10-разрядный 8-канальный АЦП, параллельные порты (от 3 до 48 линий ввода и вывода), интерфейсы UART и SPI, сторожевой таймер и устройство сброса по включению питания. Все эти качества превращают AVR-микроконтроллеры в мощный инструмент для построения современных, высокопроизводительных и экономичных контроллеров различного назначения.
Отличительные особенности:
●8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением
●Прогрессивная RISC архитектура
●130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл
●32 8-разрядных рабочих регистра общего назначения
●Полностью статическая работа
●Производительность приближается к 16 MIPS (при тактовой частоте 16 МГц)
●Встроенный 2-цикловый перемножитель
●Энергонезависимая память программ и данных
●4 -256 Кбайт внутрисистемно программируемой Flash памяти
●Обеспечивает 1000 циклов стирания/записи
●Дополнительный сектор загрузочных кодов с независимыми битами блокировки
●Внутрисистемное программирование встроенной программой загрузки
●Обеспечен режим одновременного чтения/записи (Read-While-Write)
●512 байт EEPROM
●Обеспечивает 100000 циклов стирания/записи
●1 Кбайт встроенной SRAM
●Программируемая блокировка, обеспечивающая защиту программных средств пользователя
- возможность программирования непосредственно в системе через последовательные интерфейсы SPI и JTAG;
- разнообразные способы синхронизации: встроенный RС-генератор с внутренней или внешней времязадающей RС-цепочкой, встроенный генератор с внешним кварцевым или пьезокерамическим резонатором, внешний сигнал синхронизации;
- двухканальный генератор ШИМ — сигнала регулируемой разрядности (один из режимов работы 16-битных таймеров/счетчиков). Разрешение формируемого сигнала может составлять от 1 до12 бит;
- многоканальный 10-битный АЦП последовательного приближения, имеющий как несимметричные, так и дифференциальные входы;
- последовательный синхронный интерфейс SPI.
- очень низкая стоимость.
Тем не менее, выбор микроконтроллера (и не только его) для своей микропроцессорной системы является очень ответственным делом. Оно может быть некритично для какой ни будь радиолюбительской установки — плюс минус сто рублей не деньги, но если вам придется работать на «дядю» который все считает, и при предоставлении готового изделия вы выйдите из бюджета, то вы можете сильно потерять в деньгах. Быстродействие микроконтроллера , каким бы он шустрым не был, часто сводится на нет медленной периферией, индикаторы, дисплеи, датчики, исполнительные механизмы, сервоприводы — требуют для своей работы определенные протоколы обмена информацией, которые, обычно, очень медленные(по сравнению с тактовой частотой МК). И в подпрограммы обслуживания этих устройств вводятся различные задержки, притормаживающие(и весьма) работу всей системы. Поэтому быстрые МК нужны в основном, если для работы всей системы требуется производить много вычислений, по результатам которых происходит то или иное действие
Регулятор
Схема стабилизатора напряжения и тока представлена на рис. 2, там же находится и микроконтроллер U3. к регулятору предъявляются особые требования, он должен обеспечивать регулировку напряжения и тока в широких пределах, обеспечивать защиту питаемого устройства.
Схемотехника не отличается излишествами, но показала в процессе эксплуатации высокую надежность. Работу регулятора напряжения рассмотрим на примере рис.3.
Силовой элемент регулятора выполнен на p-канальном полевом транзисторе Q1, трбования предъявляемые к этому транзистору простые — максимальное напряжение должно быть хотя бы в полтора раза выше напряжения питания, максимальный ток минимум в два раза больше максимального тока нагрузки и сопротивление открытого канала(чем меньше, тем лучше). сопротивление открытого канала легко уменьшить соединив параллельно два, три транзистора без всяких выравнивающих резисторов и индуктивностей — это не импульсный регулятор.
Регулировка напряжения происходит изменением напряжения на затворе транзистора Q1 за счет приоткрывания транзистора Q2. когда Q2 закрыт напряжение на затворе Q1 равно напряжению питания и транзистор закрыт. Усилитель ошибки, выполненный на ОУ U1.А сравнивает напряжение на выходе стабилизатора посредством делителя напряжения R4, R1, коэффициент деления которого равен отношению выходного напряжения к опорному, в данном случае 1:10, т.е. при выходном напряжении 50 В опорное должно быть 50 : 10 = 5 В. Разница между опорным напряжением и напряжением полученному с делителя усиливается усилителем и подается на затвор Q2. Таким образом, компенсируется повышение напряжение на выходе стабилизатора, пока напряжения на входах 2 и 3 не уравняются. Изменяя величину опорного напряжения от 0 до 5 В можно менять напряжение на выходе стабилизатора. Резисторы R5, R8 и конденсатор С2 образуют интегратор, преобразующий импульсы ШИМ в постоянное напряжение. В схеме на рис. 2 присутствует отрицательное напряжение -2.5 В , оно необходимо для того, чтобы обеспечить нулевое напряжение на выходе стабилизатора. Особенности схемотехники операционных усилителей состоит в том, что невозможно получить нулевое напряжение на выходе ОУ если отрицательный вывод питания подключен к земле, и соответственно на выходе стабилизатора появляется напряжение достигающее 500 — 700 мВ.
Стабилизатор тока выполнен на ОУ U2.А ,U2.В, напряжение с датчика тока R5 усиливается ОУ U2.В с коэффициентом усиления равным 10, с выхода этого усилителя напряжение приходит на вход АЦП1 микроконтроллера и на вход усилителя ошибки U2.А, на второй вход которого подается сигнал ШИМ тока с микроконтроллера, в случае превышения напряжения с датчика тока напряжения с ШИМ ОУ U2.А переводит стабилизатор напряжения в режим стабилизатора тока уменьшая через диод D1 напряжение на затворе Q2, уменьшая тем самым напряжение на выходе блока питания до тех пор пока потребляемый нагрузкой ток не сравняется с током установленным микроконтроллером.
При таком способе получения информации о потребляемом токе возникает одна проблема — несоответствие индицируемым микроконтроллером данных о выходном напряжении. Это можно решить, введя в программу обслуживания коррекцию в виде вычитания из значения фактического значения выходного напряжения данных о потребляемом на данный момент времени тока. Как показано на примере:
Источник
Необычный блок питания на микроконтроллере
Этот блок питания уже рассматривался на местном форуме, однако полного описания конструкции там не было. Теперь я решил подробно рассказать, как его настраивать и пользоваться им. От большинства блоков питания, описываемых в интернете, он отличается методом понижения напряжения и компактной формой корпуса.
На самом деле, это не полноценный блок питания, а понижающий преобразователь напряжения. В качестве DC-DC используется преобразователь на микросхеме LM2576, управляемый микроконтроллером. В блоках питания с микроконтроллерным управлением, конструкции которых обычно описываются в интернете, понижение напряжения обычно производится линейным методом — вся лишняя мощность в таких блоках питания рассеивается радиатором мощного транзистора.
Использование преобразователя DC-DC позволяет отказаться от использования большого радиатора. В случае, если нагрузка не требует высокого напряжения, то для обеспечения большого тока можно использовать слаботочный первичный блок питания, но способный выдавать более высокое напряжение (обычно я использую первичный блок питания 24 В, 0.8 А).
Так как большой радиатор в этом блоке питания не нужен, то корпус удалось сделать максимально компактным. Для того, чтобы блок питания занимал меньше места в шкафу, передняя панель сделана откидной.
Недостаток же DC-DC — относительно высокий уровень шумов по питанию (это важно при работе со слабыми сигналами).
Зачем нужно микроконтроллерное управление напряжением? Напряжение на выходе такого блока питания можно точно устанавливать энкодером, при этом регулировку напряжения можно временно заблокировать (чтобы случайно не сбить напряжение, и не сжечь устройство, зацепив ручку энкодера). Дискретность установки напряжения можно менять. Можно управлять напряжением, в зависимости от тока (для заряда аккумуляторов).
Характеристики получившегося блока питания:
Напряжение питания: 7-35 В.
Выходное напряжение: 1.3 — 30 В
Максимальный ток: 3 А
Дискретность установки напряжения: 0.1 В
Дискретность отображения тока: 0.01А (в блоке питания нет стабилизации тока)
Защита от КЗ.
Блок питания разбит на две части (силовую и цифровую), которые сделаны на отдельных платах.
Схема блока питания (силовая часть):
Обвязка LM2576 или LM2596 стандартная — из даташита. Дроссель L1 в данном блоке питания взят из блока питания принтера (там был DC-DC), маркировки на нем не было. Вообще, микросхема LM2576 нетребовательна к дросселю. Параметры дросселей для конкретных токов и напряжений даны в даташите.
Резистор R9 используется для быстрого разряда конденсатора при отключении напряжения.
Для управления напряжением с микроконтроллера используются ОУ U1. U1B повышает напряжение (3 В > 30В), U1A замыкает обратную связь DC-DC, и позволяет регулировать напряжение на выходе.
На ОУ U3 собран узел измерения тока. Стабилитрон D2 защищает микроконтроллер от скачков напряжения, вызываемых скачками тока (например, при КЗ во время разряда конденсатора).
Схема цифровой части:
Тут все довольно стандартно. Питание цифровой части (5В) обеспечивается от отдельного DC-DC — так как входное напряжение может быть большим, то обычные линейные стабилизаторы могут греться, а места под радиатор в корпусе нет. Внимание — линии VCC у цифровой и силовой части разные.
Напряжение для управления DC-DC формируется при помощи ШИМ, и фильтруется ФНЧ на R12,R13,C2,C3.
Транзистор Q1 и его обвязка служат для формирования напряжения 12 В для подсветки индикатора (повышающий преобразователь).
Резистор R9 задает ток срабатывания защиты от КЗ (используется компаратор контроллера).
Кнопки, индикатор, энкодер устанавливаются в передней панели. Для защиты от дребезга выводы энкодера соединяются через конденсаторы 0,01 мкФ с землей.
Фото готового блока питания (на форуме есть другие фотогорафии):
Прошивка для контроллера: прошивка.
Пример установки фьюзов для AVR Studo:
Разводка печатных плат (для Sprint-Layout): здесь.
Описание работы с блоком питания.
При включении блока питания, на индикаторе несколько секунд отображается величина входного напряжения и номер прошивки. После этого блок переходит в режим отображения главного меню — здесь при помощи энкодера нужно выбрать один из 6 режимов. Выбор режима производится кнопкой «Выбор» S3, возвращение в главное меню из любого выбранного режима — кнопкой «Меню» S4. При переходе в главный режим питание нагрузки отключается.
Наиболее часто используемый режим — «Точный», предлагается первым. В этом режиме дискретность установки напряжения — 0.1 В.
На самой верхней строчке отображается желаемое напряжение, которое и устанавливается энкодером. В центре экрана — потребляемый нагрузкой ток. Внизу — напряжение на выходе блока питания, измеренное АЦП (требуемое и желаемое напряжения могут немного различаться при большом токе или высоких напряжениях).
Красная кнопка слева S1 управляет подачей напряжения на нагрузку. Короткое нажатие на нее либо включает нагрузку, либо перезагружает ее (DC-DC остается отключенным до тех пор, пока конденсатор на выходе блока питания не разрядится). Длительное нажатие на кнопку отключает нагрузку.
Нажатием кнопки «Выбор» можно включить или отключить блокировку энкодера, при блокировке около значения желаемого напряжения появляются скобки.
Нажатием кнопки «Грубо» S2 можно управлять дискретностью установки напряжения (шаг установки напряжения становится равным 0.5 В).
Режим работы «Грубый» полностью аналогичен предыдущему, но в нем шаг установки напряжения всегда равен 1 В.
Режим работы, обозначенный в меню «Аккум.», предназначен для зарядки свинцовых аккумуляторов. Нажимая кнопку «Выбор», при помощи энкодера последовательно вводят значения начального напряжения, конечного напряжения, и максимального тока. После этого начинается заряд аккумулятора. Блок питания постепенно поднимает напряжение на выходе от начального до конечного. Если ток превышает установленный, то подъем напряжения прекращается.
В режиме заряда на верхней строчке отображается напряжение на выходе блока питания (измеренное АЦП), в центре — ток, внизу — напряжение, которое ожидается на выходе блока питания.
Режим работы «Конст.» аналогичен режимам грубой и точной установок, но в нем при помощи энкодера выбираются стандартные значения напряжений — 3.3; 5; 7; 9; 12 В
Режим работы, обозначенный в меню «Стат.» — отображаются константы, записанные в EEPROM. Можно просматривать суммарное время работы блока питания, и коэффициенты коррекции, используемые для расчета значения тока.
Режим работы, обозначенный в меню «Калиб.» — определение коэффициентов коррекции при измерении тока. Так как у ОУ имеется напряжение смещения, то для большей точности измерения тока приходится измерять эти коэффициенты.
Для измерения коэффициентов к блоку питания через амперметр нужно подключить нагрузку, способную выдержать ток до 1 А. Я использовал достаточно мощную автомобильную лампочку.
После нажатия кнопки «Выбор» энкодером нужно установить на выходе блока такое напряжение, при котором ток через нагрузку будет наиболее близок к 0.1 А, затем еще раз нажав «Выбор», устанавливают ток равным 1 А. После третьего нажатия на кнопку контроллер рассчитывает значения коэффициентов и сохраняет их в EEPROM, после чего происходит переход в главное меню.
Защита от КЗ — срабатывает во всех режимах по прерыванию от встроенного в контроллер компаратора, при этом подача питания на нагрузку отключается, на экран выводится сообщение. Через 0.5 сек производится проверка — на нагрузку подается напряжение 1.3В, если ток при этом превысит 3А, то защита отключается, иначе процесс повторяется.
Настройка блока питания при сборке.
Так как конструкция у меня состоит из двух частей, то и собиралась она последовательно. Сначала собирается силовая часть. После сборки резисторы R2, R10 устанавливаются в нижнее по схеме положение. Это обеспечит защиту контроллера от перенапряжения при последующем подключении. После установки перемычки J1 и подачи напряжения на вход силовой части, проверяют ее работоспособность — на выходе DC-DC должно быть напряжение не менее 1.3 В, которое должно изменятся при подаче внешнего напряжения на линию VOLT_CTRL. DC-DC должен обеспечивать нужный ток.
Затем собирается цифровая часть. Наладки она не требует (возможно, потребуется поменять выводы энкодера местами).
Сначала настраивается индикация входного напряжения (резистором R2). Для контроля правильности настройки придется включать и отключать первичный блок питания. Последующая настройка идет в точном режиме.
Далее настраивается коэффициент усиления ОУ, отвечающего за установку напряжения. Энкодером нужно установить нужное напряжение, например 10 В, подключить к выходу блока питания мультиметр, и поворачивая резистор R1, добиться совпадения напряжений на экране (желаемого) и мультиметре. После этого, поворотом резистора R10 добиваются совпадения напряжений на экране (действительного) и мультиметре.
После этого к выходу блока питания подключают нагрузку и амперметр, энкодером устанавливают такое напряжение, при котором ток в нагрузке близок, например, к 1 А, и поворотом резистора R12 устанавливают такое же значение тока на экране. После этого нужно произвести определение коэффициентов тока, как описано выше.
Резистор R9 на цифровом блоке используется для установки тока срабатывания защиты от КЗ. После подключения к блоку питания нагрузки, способной выдержать ток 3 А, и установки нужного напряжения, подстраивают резистор, добиваясь срабатывания защиты.
В случае одиночной платы при настройке прибора важно контролировать положения резисторов R2, R10, чтобы напряжения на их выходах не превышали 5 В.
Источник