🔋 Скрытая функция TP4056/TP4057/TP4054 для управление зарядкой с микроконтроллера
Вступление
Cкорее всего вы знакомы с микросхемами зарядки Li-Ion/LiPo аккумуляторов:
- TP4056 (1A, SOIC-8)
- TP4057 (0.5A, SOT-23-6)
- TP4054 (0.4A, SOT-23-5)
Я применял её несколько раз и проблем с ней не возникало, главным их преимуществом является низкая цена и высочайшая доступность, ибо это чудо природы клепает чуть-ли не каждый китайский подвал 🐲
![]() 🔋 Просто зарядка с USB-C |
⭐ Светодиодный тестер (проверяльщик), первый |
![]() 🎼 Музыкальная коробка DFPlayer |
Назначение выводов
Как видно, у старшей версии TP4056 есть вывод CE (Chip Enable), но у TP4057 и TP4054 нет такого вывода. Зато у всех микросхем присутствует PROG, который используется для задания зарядного тока через внешний резистор.
|
|
|
|
А теперь суть: Если подать на вывод PROG высокий уровень то микросхема выключает заряд (полностью обесточивает положительный выход BAT), что дает возможность остановить процесс заряда в любой нужный момент.
Схематическая реализация
Нужно просто подключить вывод PROG к микроконтроллеру напрямую либо через резистор небольшого сопротивления (кстати, это кусок схемы 🏡 обновленного датчика влажности почвы, теперь он на ESP32).
В этом случае нужно более продвинутое управление, а именно либо высокий уровень, либо высокоиспедансный (плавающий; вход без подтяжек), то есть вывод нужно переконфигурировать на лету:
| ЗАРЯД РАЗРЕШЕН | ЗАРЯД ЗАПРЕЩЕН |
| Вход (ПЛАВАЮЩИЙ; FLOAT) | Выход ( ВЫСОКИЙ; HIGH) |
Проверка на модуле TP4056
Посмотрим как это работает с испытанием на китайском модуле TP4056 с USB Type-C:
|
Включено: синий светодиод светит |
Выключено: синий светодиод не светит |
Для начала просто подключил синюю плату к питанию, на выводе PROG напряжение почти 0 В (аккумулятор не подключен), ну а на выход соответственно поступает 4.145В-4.224В (это у мультиметра такая интересная функция MIN/MAX 😎).
Теперь подключив 5В (ток до 5 мА) к выводу PROG на входе увидим плавное уменьшение напряжения до нуля (разряжается выходной конденсатор), то есть управление отлично сработало и микросхема полностью отключила напряжение по плюсу (зарядка не происходит):
|
|
|
| VOUT = 4.168V | VOUT = 0V |
То же самое, но с подключенным аккумулятором 18650 и амперметром. Когда зарядка разрешена, ток она происходит током 102 мА, а когда запрещена то полностью останавливается и ток 0 мА:
|
|
|
IBAT = 0.102A |
IBAT = 0A |
Заключение
🟢 Считаю функцию весь и весьма полезной ибо она позволит самостоятельно контролировать когда ( на каком уровне напряжения) будет завершена зарядка и при необходимости держать аккумулятор на оптимальном уровне заряда для продления срока службы.
Конечно же в этом случае понадобиться ещё и схема слежения за уровнем напряжения (в простейшем случае делитель с управляемым питанием).
🟢 В случае с TP4056, у которой присутствует вывод управления микросхемой (CE) можно использовать его для более простого управления (ВЫСОКИЙ - включено; НИЗКИЙ - выключено). Но вариант с использованием PROG более универсальный.
🧐 При испытаниях был применен простейший держатель щупа, сооруженный из подручных средств. Если проводите испытания/запуск электроники, то советую ознакомиться с очерком о нём: Простое приспособление для проверка плат (испытаний электроники)
![]() |
|





Вообще в даташите на эти модули написано, что если оставить Rprog плавать, то он подтянется к VCC и заряд остановится. Логично, что если его подтянуть к VCC, заряд также остановится
Ну это не очень очевидно
Я это вообще случайно обнаружил на другой похожей микросхеме, где ток зарядки также определяется резистором
«Будьте проще и люди к вам потянуться» — не мудрите с контроллером, просто поставьте компаратор, который будет срабатывать на нужжном вам пороговом напряжении заряда.
В схеме уже есть МК, он измеряет напряжение АКБ и это позволит выбрать точное значение напряжения и менять его с 0 дополнительных затрат по компонентам.
Так что что-либо дополнительно ставить это не всегда нужно)