Лабораторный блок питания с микропроцессорным управлением на ATMega16 из старого Back-UPS. Источник питания на ATmega8 Схема польского блока питания на микроконтроллере


Что такое «Back-UPS»? С точки зрения самодельщика - это прочный корпус и мощный блок питания внутри!
Чтобы получился лабораторный блок питания надо добавить только схему управления на микроконтроллере ATMega16 !

Предыстория с Back-UPS

«Досталась» как-то мне УПСка за бесплатно. Конечно, неисправная. Вот такая:


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


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

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


Рис. 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 которая умеет выводить данные в график и задавать значения, в том числе и по протоколу. См. раздел файлов.

Большинство современных лабораторных источников питания снабжены цифровыми индикаторами для контроля выходных токов и напряжений. Вместе с тем, использование для этих целей специализированных микросхем АЦП типа ICL 7106 и ICL 7107 наблюдается реже. Эти микросхемы громоздки и не снабжены динамическим управлением индикаторов. Производители КИП стараются реализовывать функции измерения и управления на одной микросхеме – микроконтроллере. Это упрощает и удешевляет конструкцию прибора за счёт снижения количества элементов. Возможность обновлять ПО также является немаловажным достоинством схем на микроконтроллерах.

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

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

Основные возможности и режимы:

1. Режим отображения времени даты с учётом високосного года.
2. Функция автоматической коррекции времени.
3. Режим снижения яркости в дежурном режиме (только для VFD версии).
4. Отображение температуры нагретой зоны.
5. Режим отображения напряжений, токов и мощностей в рабочем режиме.
6. Функция проверки исправности датчика температуры.
7. Функция автоматического включения/выключения вентилятора охлаждения.
8. Функция ручного управления подачей мощности в нагрузку.

Лабораторный источник питания состоит из следующих функциональных блоков:

1. Блок управления и индикации.
2. Блок измерения.
3. Источник питания для блока управления и индикации и блока измерения.
4. Силовой блок.
5. Устройство стабилизации напряжений и токов.
6. Устройство охлаждения.

Блок управления и индикации

Блок управления и индикации представляет собой устройство, построенное на базе микроконтроллера ATMEGA8 (схема 1.1 и 1.2).

В нём имеются четыре аналоговых входа для измерения напряжений и токов, выходы для включения реле подачи напряжения в нагрузку и включения вентилятора охлаждения, вход для подключения датчика температуры, кнопки управления и индикаторная панель.
Программа для микроконтроллера ATMEGA8 была написана для VFD — вакуумного флюоресцентного дисплея 4*20 CU20045SCPB-T23A FUTABA и стандартного 4*20 ЖКИ.

Питание блока – стабилизированное 5 вольт. Максимальное паспортное потребление тока VFD – 1 ампер. Это на два порядка больше чем у ЖКИ, что следует учесть при выборе источника питания для этого блока.

Блок измерения

Блок измерения (схема 2) представляет собой гальванически развязанную между входом и выходом систему двойного преобразования аналогового сигнала – напряжение- частота-напряжение (V — F — V).

Блок измерения является прецизионным устройством с нелинейностью не хуже 0,01%. Питание устройства со стороны измерения (левая часть согласно схеме 2) 8,5 вольт и может лежать в пределах 5…40 вольт. Следует обратить внимание, что значительное изменение питающих напряжений от указанных на схеме потребует изменение номиналов в цепях питания светодиодов оптопар. Правая часть блока измерения гальванически связана с блоком управления и индикации и имеет тоже питание 5 вольт.

На схеме блока измерения изображён только один канал, канал напряжения и тока А. Канал В идентичен каналу А.

Настройка блока сводится к установке выходного напряжения при соответствующем напряжении на входе при помощи подстроечных резисторов RS – 10k и 50k для тока и напряжения соответственно. Для простоты настройки блока измерения необходимо использовать один источник питания 5…10 вольт, включенный параллельно всем питаниям каналов и второй, в качестве источника измеряемого напряжения на входе.

Затем необходимо проверить прохождение сигнала от входа к выходу в соответствии с указанными на схеме значениями. Во избежание выхода из строя блока измерения при настройке не следует превышать максимально допустимое значение напряжения на входе микросхем LM331.

Источник питания для блока управления и индикации и блока измерения

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

В авторском варианте использован импульсный трансформатор Т1 37P-6000 от отслужившего свой срок драйвера мотора. Это стандартный трансформатор, который использовался для питания цепей управления силовых модулей с составными транзисторами и питания процессорной части. Вполне допустимо применение любого импульсного трансформатора с 5-ти вольтовой обмоткой на 1,5 ампера и четырьмя изолированными обмотками с напряжениями 8…20 вольт 30-100 мА для блока измерения. Такие трансформаторы установлены во всех драйверах моторов серво- и переменного тока. Подойдут и импульсные трансформаторы для питания цепей управления IGBT-модулей. Иногда проще использовать готовый импульсный источник питания, доматав недостающие обмотки. При этом следует соблюдать фазировку согласно схеме 3 и не соединять корпус обмотки питания контроллера с общими шинами вторичных обмоток.

В таблице 1 указаны выходные напряжения и токи трансформатора Т1.

Таблица 1

Номер контакта трансформатора Т1

Назначение

Напряжение после выпрямителя

Минимально допустимый ток

Первичная обмотка
Обмотка для питания контроллера IC1
Обмотка для питания блока управления и индикации (схема 1) и правой части блока измерения (схема 2)
блока измерения (схема 2)
Обмотка для питания левой части блока измерения (схема 2)
Обмотка для питания левой части блока измерения (схема 2)
Обмотка для питания левой части блока измерения (схема 2)

Силовой блок

Силовой блок представляет собой четыре адаптированных источника питания от ноутбука. Адаптация сводится к переключению шины заземления и экрана от минусовой шины 19 вольт и подключению их через разделительные конденсаторы 4,7нФ 1кВ к обоим полюсам выходного напряжения 19 вольт согласно схеме 4. Это сделано для того, чтобы при последовательном включении каналов не происходило короткое замыкание через шину заземления. В силовом блоке следует использовать источники питания с выходным током не менее 3,5 ампер и напряжением 17-20 вольт. Готовые блоки питания следует вставить в изогнутый стальной экран из лужёной жести, затем спаять его по шву и заземлить.

Устройство стабилизации напряжения и тока

Устройство стабилизации напряжения и тока представляет собой линейную схему регулирования мощности. На схеме 5 изображён один канал А. Каналы А и В идентичны. Общие шины и шины питания каналов изолированы друг от друга. Вход устройства подключен к силовому блоку, а выход к входным контактам коммутационных реле pwrout1_2 в блоке управления и индикации. Выходные контакты коммутационных реле pwrout1_2 подключены непосредственно к клемам, расположенным на передней панели устройства. К этим клемам подключены входы блока измерения напряжения. Для измерения тока соответствующие входы блока измерения подключены к токовым шунтам R16 в соответствии с указанной на схеме полярностью.

Для настройки устройства стабилизации напряжения и тока необходимо установить напряжения питания +/-17,5 вольт в контрольных точках согласно схеме с неустановленными или отключенными микросхемами операционных усилителей ОР1 и установить границу включения индикатора защиты по току limit_I.

Напряжения питания +/-17,5 вольт в контрольных точках устанавливаются потенциометрами R23 и R24 при помощи цифрового вольтметра.

Граница включения индикатора защиты по току limit_I устанавливается потенциометром R20 в положении, когда регулятор тока R11 находится на минимуме – в крайнем левом положении. Индикатор защиты должен светиться ровно и без мерцаний.

Измерительные резисторы R16, составные транзисторы VT1 от двух каналов, датчик температуры IC2 от блока управления и индикации, вентилятор охлаждения размещают на основном радиаторе (площадью 2100 см²) в задней части корпуса источника питания. Микросхемы стабилизаторов напряжения двух каналов DA3 и DA4 также необходимо устанавить на радиатор. Это может быть как основной, так и установленный в устройстве стабилизации напряжения и тока радиатор. Установленные на корпус основного радиатора элементы необходимо изолировать, а радиатор заземлить. Общий провод питания 5В также необходимо заземлить. Трансформаторы питания каналов маломощные 220В/2*22В-2,5Вт.

Для удобства на плате устройства стабилизации напряжения и тока установлена линейка параллельно включеных разъёмов для питания 220 вольт всех блоков источника (схема 6).

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

В случае наблюдения осциллографом возбуждений на выходе элемента ОР1.2 операционного усилителя, необходимо увеличить ёмкость конденсатора С6.

Устройство охлаждения

Устройство охлаждения состоит из радиатора и вентилятора охлаждения, установленного на основной радиатор. Для питания вентилятора охлаждения и подсветки светодиодов ЖКИ (если индикатор с подсветкой) используется готовый миниатюрный источник питания для зарядки мобильного телефона, расчитанный на ток 500 мА и напряжение 12 вольт. Его выходное напряжение поступает на вход контактной группы реле COLLER в блоке управления и индикации и ко входу подсветки ЖКИ вышеописанным способом. Выход контактной группы реле COLLER подключается непосредственно к вентилятору охлаждения.


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

О деталях

Резисторы в измерительных цепях в блоке измерения и устройстве стабилизации напряжения и тока должны быть с точностью не хуже 1%, оптопары IC2, IC5 — 4N35, CNY17 или аналогичные. Транзистор VT1 в устройстве стабилизации напряжения и тока – любой N-P-N дарлингтон транзистор 60 – 250 вольт, мощностью не менее 150 ватт и током коллектора не менее 10 ампер. Измерительный шунт – резистор R16 – мощностью не менее 5 ватт. Без изменений схемы микросхема KA1M0565R может быть заменена на KA1H0565R. С определёнными доработками допустимо использование контроллеров серий TOP или VIPER. Контактные группы комутационных реле должны быть расчитаны на токи, указанные на схеме.

Для снижения общих габаритов устройства целесообразно использовать поверхностные SMD-компоненты, а нужные значения сопротивлений для измерительных цепей можно получить, используя программу Parcalc (http://pgurovich.ru/parcalc/) .

Работа с устройством

Устройство предназначено для отображения на индикаторе информации в 2-х режимах:
режим 0 – отображается время, календарь и температура на пониженной яркости;
режим 1 – отображаются напряжения, токи и мощности 2-х каналов на полной яркости.

Выбор режима производится соответствующим логическим уровнем напряжения на входе MODE (вывод 19 ATmega) .

При переходе из режима 0 в режим 1, удерживая кнопку MODE, напряжение с ЛИП не поступит в нагрузку до отпускания этой кнопки. Это сделано для контролирования момента подачи напряжения.

При превышении температуры датчика значения +45,0°С, независимо от режима индикации, включится вентилятор, а при снижении её до +35,5°С, вентилятор выключится.

При превышении температуры датчика значения +85,0°С в режиме 1 на индикаторе вместо значений мощностей отобразится надпись “ ALARM !” .

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

Редактирование времени и календаря

Установка новых значений времени и календаря возможна только в режиме 0. Кнопкой Sel (вывод 17 ATmega) производится выбор параметра для его изменения в следующем порядке: часы, минуты, день, месяц, день недели, год, секунды. Выбранный параметр мигает на индикаторе. Он устанавливается в нужное значение кнопками “+” и “-“ (выводы 18 и 19 ATmega) кроме секунд, кнопкой Sel секунды обнуляются, т.е. текущая минута начинается сначала.

Устройство выходит из режима редактирования:
— через 3 секунды после последнего нажатия на любую кнопку;
— после редактирования секунд;
— после редактирования точности хода часов.

После удержания кнопки “+” или “-“ нажатой более 3-х секунд увеличится скорость изменения значения выбранного параметра.

Редактирование точности хода часов

При необходимости подстроить точность хода часов нужно в режиме 0 подержать кнопку Sel нажатой не менее 3-х секунд. На индикаторе появится параметр, управляющий точностью. При изменении этого числа на единицу кнопками “+” и “-“ точность хода изменится в ту же сторону примерно на 1 секунду за 3 месяца. После установки нового значения параметра для его записи в EEPROM и выхода из редактирования нужно нажать кнопку Sel. Параметр точности может быть в пределах от 0 до 2000000.

Устройство источника питания не является критичным в плане ЭМС, не требует дополнительных мер и может быть собрано на тестовых платах с использованием SMD -компонентов. Важно, чтобы все экраны импульсных источников питания были соединены с заземлением, а высоковольтные первичные цепи были надёжно изолированы и закрыты. ленты. Both comments and pings are currently closed.

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Vampl = (R6 + R7) / R7

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

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

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

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

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

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

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

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

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

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

Пределы

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кнопки

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

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

Дисплей

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

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

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

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

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

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

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

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

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

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Vampl = (R6 + R7) / R7

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

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

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

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

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

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

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

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

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

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

Пределы

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кнопки

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

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

Дисплей

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

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

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

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

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

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

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

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

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

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

Сборка.

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

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



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



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

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

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




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

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

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

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


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

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

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

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

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

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


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

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