![]() |
![]() |
|||||||||||||||
Многофункциональный источник питания
Автор: Стороженко Роман (drakon, D_EL), d_el@mail.ua Давным-давно (еще в глубоком детстве) я хотел себе нормальный блок питания. Вначале делал всякие на LM138 и индикаторами на HD44780. Затем нашел хороший блок питания, зарядное устройство . Я его много раз делал и переделывал, экспериментировал с усилителем тока. Кулером у меня управляла ATtiny13 стоящая на отдельной плате. Один раз питал ним модуль Пельтье 5В, 5А, на радиаторе выделялось 100Вт. Через несколько минут корпус БП начал плавится, а я тем временем травил радиотехнические байки. Заметил вовремя но не я. Все обошлось хорошо, только немного дно прогнулось. После этого инцидента я решил добавить защиту от перегрева, но места в ATmega8 почти не осталось, а хотелось много чего добавить. В это время заметил недорогую плату STM32VLDISCOVERY, с нее все и началось. Регулятором является параметрический стабилизатор с ОС на ОУ. Регулирующий элемент - IRFP9140 выдерживает 16А постоянного тока. В качестве усилителя токового датчика применен "Zero-Drift, Single-Supply, Rail-to-Rail Input/Output Operational Amplifier, Low offset voltage: 1 μV".
Управляет всем хозяйством STM32F100RBT6B - это мк на ядре ARM Cortex™-M3, 24 MHz (1.25 DMIPS/MHz), 128 Kbytes Flash, 8 Kbytes SRAM, 12-bit ADC, 12-bit DAC. В качестве тактового генератора используется внутренний RC-генератор на 8МГц (HSI), далее на PLL домножается до 24МГц. Стабильности данного генератора достаточно для нормальной работы UART'а (проверял на 38400 бод). В качестве генератора для RTC используется внутренний низкочастотный генератор на 40кГц (LSI). RTC нужен для отмера больших интервалов времени. ИОН - MAX6125 (на выходе 2.5В), он одновременно питает аналоговую часть мк (Vdda и Vref соединены внутри мк). Датчик температуры DS18B20, работает на шине MicroLan (1-Wire) с паразитным питанием. Кулерами управляет step-down преобразователь. Дисплей от Siemens A60/ A65/ C60/ M55/ MC60, внутри стоит контроллер S1D15G14. Инициализировал дисплей в режиме 8bit/pix. Светодиод HL1 можно не ставить, он иногда нужен для разработки и отладки ПО. В разъем X6 у меня воткнут bluetoth модуль HC-05, чтоб управлять с помощью ПК или телефона. Список команд можно выудить с исходника (файл drivers.c). Прошивается контроллер по SWD через разъем X5. Можно прошить через UART1 с помощью встроенного boot loader'а, но если вы доросли до STM32, то не иметь st-link либо j-link - стыдно. Источником нестабилизированного напряжения может служить классический трансформаторный БП, у меня установлен переделанный импульсный источник ps-65-24. Кулера любые на 12В, с суммарным током не больше 300мА. Коммутатором является N-канальный полевой транзистор, можно применить реле с малым сопротивлением контактов, но их размеры оставляют желать лучшего. Пищалка - пьезокерамический излучатель без встроенного генератора. Интерфейс управления интуитивно понятный (особенно мне :)). Есть 3 окна: Base, Scope, Charger. Все настройки сохраняются при выключении во внутренюю флеш память. Минимальное количество перезаписей настроек составляет 1280000, кому мало - можно увеличить. Управляется все с помощью шести кнопок и энкодером с кнопкой.
Программа написана на Си в µVision V5.10.0.2 без использования SPL, все что есть лежит в архиве. Вопросы можно писать на мой e-mail, если будет интерес, то можно будет создать ветку на форуме. Если вы сюда дочитали - спасибо, жду отзывов и критики (я ее люблю).
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |