Модуль ZS-042 приехал с бонусом: в держателе сидел аккумулятор LIR2032, и я ещё порадовался — вечно живая батарейка бесплатно. Через год аккумулятор сдулся, я купил в аптеке свежую CR2032, поставил её и забыл. А через полгода нашёл модуль с горбатой таблеткой, выпирающей из держателя: часы шли, но пружина уже не держала. Причина лежала на самой плате — диод и резистор 200 Ом рядом с держателем: зарядная ветка, которая круглосуточно давит 5 вольт в первичную литиевую ячейку, не предназначенную для заряда.
Предупреждение о вздувшейся таблетке я давал вскользь в уроке про подключение DS3231 — здесь разбираем тему целиком. Чем LIR2032 отличается от CR2032 кроме цены, как устроена и как посчитать зарядную ветку, когда аккумулятор оправдан, а когда это деньги на ветер, и что сделать с платой, чтобы обычная CR2032 жила в ней спокойно.
CR против LIR: две таблетки с одной ногой
Между буквами C и LiR прячется целая химия. CR2032 — первичный литиевый элемент: 3,0 вольта, 220–240 мА·ч, заряжать запрещено, саморазряд около одного процента в год. LIR2032 — литий-ионный аккумулятор в том же корпусе 20 на 3,2 мм: номинал 3,6 В, полностью заряженная — 4,2 В, ёмкость 40–45 мА·ч, в пять с лишним раз меньше первичной. Напряжения 3,6 В DS3231 не боится: паспорт разрешает на входе батарейки до 5,5 В. А вот со старым DS1307 аккуратнее: его паспорт открывает входу батарейки диапазон 2,0–3,5 В, и полная LIR с её 4,2 вольтами за пределом.
Отсюда расклад по платам. На модуле DS3231 аккумулятор электрически легален и работает: резерв при микроамперном токе часов тянется годами. На DS1307 ставить LIR я не советую не из вредности — за границей паспортного диапазона поведение чипа никто не гарантирует. Там совет из урока про DS1307 и батарейку — обычная CR2032 — остаётся лучшим из возможных.
На глаз таблетки различаются по маркировке: у аккумулятора на корпусе читается LiR или 3.6V, часто слово Rechargeable; первичная честно пишет CR и 3V Lithium. Цена подсказывает в ту же сторону: LIR стоит вдвое-втрое дороже первичной, а её реальная ёмкость у безымянных производителей плавает. Я мерял три «новых» таблетки из разных партий под лёгкой нагрузкой: лучшая показала около 42 мА·ч, две другие ощутимо меньше паспортного. Дата выпуска на блистере здесь важна ещё сильнее, чем для CR: литий-ионная химия стареет, даже когда просто лежит на полке.
| Параметр | CR2032 | LIR2032 |
|---|---|---|
| Напряжение | 3,0 В ровно | 3,6 В номинал, 4,2 В полная |
| Ёмкость | 220–240 мА·ч | 40–45 мА·ч |
| Заряд | запрещён: газ и вздутие | нужна зарядная ветка на плате |
| Резерв при 1 мкА | десятилетия на бумаге | годы, и саморазряд съедает быстрее |
| Куда годится | любой RTC-модуль | DS3231 с зарядной веткой; DS1307 — нет |
Аккумулятор оправдан там, где питание пляшет. Шлагбаум во дворе, табло на входной группе, узел охраны: устройства включены в сеть годами, но свет выключают, вилку дёргают, щиток перебирают — LIR между этими событиями дозаряжается и не тратится впустую. Считайте в уме: десяток перерывов питания по сутки в год съедают у аккумулятора 10–15 процентов ёмкости, которые он тут же возвращает от сети; первичная таблетка эти перерывы просто складывает в свой износ без права на возврат. И наоборот: датчик температуры на даче, который кормится от батареек и месяцами не видит 5 вольт, посадит аккумулятор в ноль, а глубокий разряд литий-ионная таблетка не прощает — ёмкость после него падает необратимо. Мой выбор по опыту: всегда включённым устройствам — LIR, автономным датчикам — CR2032 и спокойный сон.
Историческая справка для владельцев старых плат: часть DS1307-модулей десять лет назад собиралась с LIR2032 в комплекте, у их родни та же зарядная ветка с диодом и резистором у держателя. Если ваш экземпляр из этой серии — решение прежнее: разорвать зарядную цепь и посадить первичную таблетку. У новых партий компонентов заряда может не быть вовсе — тогда ставить аккумулятор бессмысленно вдвойне: заряжаться нечему, а ёмкость впятеро меньше CR. Тот же принцип работает в обратную сторону: увидели на плате диод с резистором — знайте, производитель рассчитывал на LiR, и решение о первичной таблетке принимаете вы, а не отвёртка.
Зарядная ветка: диод, резистор и закон Ома
Найти зарядную ветку на плате просто: проследите от плюса держателя к цепи питания — там сидят два мелких компонента, диод и резистор с маркировкой 201, то есть 200 Ом. Путь тока: 5 вольт с VCC, минус примерно 0,7 В на диоде, дальше резистор, дальше плюс таблетки; минус таблетки сидит на земле. Ток заряда считается в уме: вычтите из питания падение диода и напряжение таблетки, остаток поделите на 200 Ом. Пустой аккумулятор на 3,0 В при 5 В питания: (5 - 0,7 - 3,0) / 200 — это 6,5 мА. Полный на 4,2 В: (5 - 0,7 - 4,2) / 200 — 0,5 мА, заряд почти встал.
Что эти цифры дают. Полный заряд 40 мА·ч при среднем токе три-четыре мА занимает примерно 12–16 часов — я добавляю запас на неидеальность химии, отсюда хвост. Сравните с первичной: CR2032 резервирует часы на годы без единого провода к сети, а LIR за ту же роль платит в пять раз меньшей ёмкостью и вечным подогревом от ветки — свобода перезарядки сама по себе бесплатной не бывает. Теперь ловушки. Питание 3,3 В, типовое для плат на Li-ion: (3,3 - 0,7 - 3,6) — число отрицательное, заряд не идёт вовсе; на таких платах LIR — просто слабенькая первичная таблетка с самоуверенной маркировкой. И главное: эта ветка — грубый подзаряд без контроля напряжения, а не честное зарядное устройство. Первичную CR2032 она убивает постоянным током 3–6 мА: в ячейке выделяется газ, таблетка вздувается — гербарий я собрал на собственном модуле. Полярность диода и работа с выпайкой — отдельная наука, я разбирал её в уроке про диод и полярность.
С аккумулятором список камней короче, но они дороже. Саморазряд LiR-химии на порядок выше первичной: за полгода без подзарядки таблетка теряет ощутимую часть ёмкости, а глубокий разряд кладёт на неё крест. Вечный подзаряд 0,5 мА в полную таблетку — постоянный подогрев, ускоряющий старение. Подделки обещают 60 мА·ч и живут вдвое меньше паспортного. И последнее: как ни хорош аккумулятор на бумаге, верить надо журналу, а не маркировке. Скетч-сторож ниже хранит последнюю метку времени в EEPROM и замечает, если часы откатились назад — первый симптом того, что резерв не вытянул перерыв питания. Метка — один long, но если захотите хранить вместе с ней счётчик перезапусков или признак заводки, упакуйте всё в структуру и пишите целиком: приёмы put и get я разбирал в уроке про EEPROM.put и структуру, а бережную запись — в уроке про износ ячеек.
Живость аккумулятора проверяется тем же мультиметром, что и первичная, но с другими порогами: полная LIR показывает 4,1–4,2 В, рабочая — от 3,6, и ниже 3,0 вольт таблетку я списываю, потому что часть химии уже умерла безвозвратно. Хранить запасные LiR-таблетки лучше заряженными и подзаряжать раз в год — полное хранение в разряженном состоянии их убивает. И не ставьте аккумулятор на плату с 3,3-вольтовым питанием, даже если очень хочется перезаряжаемости: вы только что видели в расчётах, что ток зарядной ветки там нулевой, — аккумулятор будет просто стареть без работы.
#include <Wire.h>#include <RTClib.h>#include <EEPROM.h> RTC_DS3231 rtc;int addr = 0; // 4 байта метки в EEPROM void setup() { Serial.begin(9600); if (rtc.begin() == false) { Serial.println("RTC molchit: proverte provodku"); while (1) { } } long metka = 0; EEPROM.get(addr, metka); uint32_t now = rtc.now().unixtime(); if (metka > 0 && now < metka) { // время откатилось назад: резерв не вытянул перерыв питания Serial.print("otkat na "); Serial.print(metka - now); Serial.println(" s. Batarejka? Zavodim vremya kompilyacii"); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); now = rtc.now().unixtime(); } EEPROM.put(addr, now); Serial.print("metka v EEPROM: "); Serial.println(now);} void loop() { DateTime now = rtc.now(); Serial.print("unix="); Serial.println(now.unixtime()); delay(60000);}Эксперименты
- Введите 5 — классика: 6,5 мА в пустую, 0,5 в полную, полный заряд примерно за 16 часов.
- Введите 4.3 — питание через защитный диод: ток в полную отрицательный, аккумулятор вечной недозарядки.
- Введите 3.3 — плата на Li-ion: заряд не идёт вовсе, LIR превращается в слабую первичную таблетку.
- Прикиньте на бумажке, сколько лет протянет LIR с её 40 мА·ч при токе 1 мкА, и сравните с расчётом из урока про ресурс CR2032.
- CR2032 — первичный элемент: 3,0 В, 220–240 мА·ч, заряжать нельзя; LIR2032 — аккумулятор: 3,6–4,2 В, 40–45 мА·ч
- DS3231 терпит до 5,5 В на входе батарейки, DS1307 — только 2,0–3,5 В: полная LIR на DS1307 вне паспорта
- Зарядная ветка ZS-042: VCC, диод 0,7 В, 200 Ом, таблетка; ток от 6,5 мА на пустой до 0,5 мА на полной
- CR2032 в плате с зарядом вздувается: выпаяйте диод и проверьте мультиметром отсутствие 5 В на держателе
- LIR оправдан на включённых в сеть устройствах с частыми перерывами питания; автономным датчикам — только CR2032
- 1. Чем LIR2032 принципиально отличается от CR2032?
- 2. Почему LIR2032 плохо встанет на модуль с DS1307?
- 3. Плата питается от Li-ion, на шине 3,3 В. Зарядится ли LIR через ветку с диодом и 200 Ом?
- 4. На плате ZS-042 вздулась CR2032. Что сделать, чтобы поставить её же без риска?
- 5. Что первым ловит скетч-сторож из этого урока?
Частые вопросы по теме урока
- Чем LIR2032 принципиально отличается от CR2032?
- LiR — литий-ионная перезаряжаемая химия в том же корпусе: 3,6–4,2 В и в пять раз меньшая ёмкость, чем у первичной CR. Это аккумулятор: номинал 3,6 В, полная — 4,2 В
- Почему LIR2032 плохо встанет на модуль с DS1307?
- Диапазон входа батарейки DS1307 кончается на 3,5 В. Напряжение полной LIR выше — поведение чипа за пределом никто не гарантирует. Полная таблетка даёт 4,2 В, а паспорт входа DS1307 — 2,0–3,5 В
- Плата питается от Li-ion, на шине 3,3 В. Зарядится ли LIR через ветку с диодом и 200 Ом?
- После падения 0,7 В на диоде от 3,3 В остаётся меньше, чем нужно даже пустой таблетке: ток зарядной ветки отрицательный, то есть нулевой. Нет: диод и резистор съедают всю разницу напряжений
- На плате ZS-042 вздулась CR2032. Что сделать, чтобы поставить её же без риска?
- Вздутие вызвал постоянный подзаряд. Разорвите цепь выпайкой диода и убедитесь мультиметром, что на держателе нет питания с VCC. Выпаять диод из зарядной ветки и проверить отсутствие 5 В на держателе
- Что первым ловит скетч-сторож из этого урока?
- Сторож хранит последнюю метку в EEPROM: если время в RTC оказалось меньше сохранённого, счёт останавливался — резерв не вытянул перерыв. Откат времени назад после перерыва питания