Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Измерительная техника >

Теги статьи: ЗУ (зарядное устройство)Добавить тег

Тестер литиевых аккумуляторов

Автор: GoldenAndy
Опубликовано 22.04.2022
Создано при помощи КотоРед.

 

Возникла необходимость проверить пару мелких литиевых аккумулторов. 200 и 280 "махов".

Вариант 1. Зарядить аккумулятор, нагрузить на резистор, засечь время и ждать.
Неточный. Можно провтыкать и переразрядить.

Вариант 2. Подключить разряженный аккумулятор к БП, у которого ограничение 4.25 вольта и ограничение тока. Т.е. сначала в режиме CC заряжается до 4.25В, потом БП переходит в CV и доливает остатки заряда.

Тоже неточный. Можно провтыкать момент перехода из CC в CV и окончание заряда.
Плюс надо сначала разрядить. см. пункт первый.

Вариант 3. Собрать какую то автоматизацию на макетной плате с применением микроконтроллера. Ну тут только макеткой не обойтись, надо бы попаять немножко.

Вариант 4. поискать что то готовое.
По быстрому на радиокоте нашлось 2 конструкции.
1. Тестер всяких-разных аккумуляторов от Shodan-а на ATMEGA8 и 7-сегментнике.
2. Тестер литиевых аккумуляторов от eufs. Тут применен цветной дисплей от СониЁриксона и ATTINY26 в качестве мозга.

Варианты 1 и 2 - матушка лень обломала. Вариант 3 - туда же. Вариант 4 - делать чужое - это надо делать, на макетке не выйдет. Плюс нельзя добавить свои плюшки.

Вроде ради двух аккумуляторов городить какой то огород - нехорошо. Но некоторые товарищи уговорили.
В результате родился Вариант 5. Сделать своё.

Но поскольку вещь как бы не очень востребованная лично мною - см. выше - надо проверить 2 (два) аккумулятора, то покупать что то дополнительно не правильно. Надо сделать "из говна и палок" - т.е. из той комплектухи, что есть дома.
В результате был использован МК ATMEGA328, дисплей "от Нокии" 84*48 пикселей, операционник LM358, зарядник TP4056, ИОН TL431 ну и по мелочи деталек...

В результате таки что то получилось.


Получившийся прибор умеет следующее:

  • Питание - 5 вольт.
  • Измерение внутреннего сопротивления батареи
  • Заряд аккумулятора фиксированными токами 50, 100, 150, 200, 250, 300, 350, 400, 450, 500 мА
  • 3 режима разряда аккумулятора - фиксированный ток (CC), фиксированное сопротивление (CR) и фиксированная мощность (CP)
  • В режиме разряда фиксированным током - поддержка разрядных токов 10, 20, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500 мА
  • В режиме разряда на фиксированное сопротивление - эмуляция сопротивлений 9, 10, 11, 12, 14, 16, 20, 30, 50, 100, 220, 440 Ом
  • В режиме разряда с поддержанием постоянной мощности - 25, 50, 100, 200, 300, 400, 500, 600, 800, 1000, 1200, 1400 мВт
  • Комбинированный режим - разряд, потом заряд
  • График разряда/заряда
  • Звуковой сигнал окончания рабочего цикла - 0..60 сек
  • Мигание подсветкой дисплея по окончании рабочего цикла - 0..60 сек
  • Звуковое подтверждение нажатия кнопок (отключаемое)
  • Защита TP4056 от неправильного подключения аккумулятора
  • Калибровка измерителей разрядного/зарядного тока и напряжения
  • Настройка контрастности дисплея и полярности подсветки дисплея
  • Возможность заданием коэффициента в меню калибровки и заменой нескольких элементов схемы увеличить зарядный/разрядный ток в 2 раза - т.е. до 1А.

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

Чем хороша TINY26 - у неё АЦП умеет в дифференциальные входы и коэффициент усиления х20 в диф.режиме.
Чем плоха - флеш-память у нее всего 1024 машинных команды (2 кб флеша).
Чем она совсем плоха - её у меня нет.

Казалось бы, берем более толстый МК, у которого АЦП умеет дифференциальные входы и усиление. Например, ATMEGA32.

Но есть один маленький нюанс. Входное напряжение операционного усилителя (который стоит на входе АЦП в контроллере), если по правильному, не должно выходить за пределы диапазона питания МК и его внутреннего ОУ. А в режиме измерения разрядного тока в схеме eufs-а измеряемое напряжение на шунте получается отрицательное. Т.е. ниже нуля. Что есть нехорошо с точки зрения схемотехники.
Да, я понимаю, что оно как то работать будет. У eufs-а же работает... И калибровка, скорее всего, нивелирует возможные погрешности усиления. Но мне это не нравится.

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

Ставить две LM-ки? Искать 4канальный ОУ?...
Я попробовал сделать финт ушами и реализовать управляемый усилитель. Когда надо - он инвертирующий, когда надо - неинвертирующий. Цена вопроса - три дополнительных резистора и три n-канальных дешевых полевика. Я не знаю, что дешевле - три полевика и три резистора или еще один корпус LM358. И то и другое у меня есть. Я решил попробовать три транзистора.

Измерение напряжения на выходах ОУ. Поскольку питание устройства не всегда стабильное, внутренний ИОН в Мегах - грустный, я поковырялся в коробочках и вытащил оттуда TL431. Это достаточно стабильный ИОН напряжением 2,5 вольта.

И теперь вопрос - зачем мне ATMEGA32 ?
Не достаточно ли взять народную ATMEGA8, коих у меня еще полсотни лежит?
Я прикинул запланированные возможности и решил, что увы, недостаточно. И взял ATMEGA328.
Тогда можно совершенно не париться по поводу ресурсов и не трамбовать каждый байт, что бы уместиться в 8 кб флеша. Ну и 328я мега - это более позднее поколение контроллеров и в ней встроенный RC-тактовый генератор более стабильный. И с меньшим разбросом. А нам надо время заряда-разряда считать. Пусть будет.

После вот таких всяких разных размышлений нарисовалась вот такая схема.

Схема


Схема более подробно - вот тут, в PDF.

Питание.
Питание на схему подается через разъем XT3. Изначально я там себе поставил микро-USB. Ну лично мне так удобнее. В общедоступном проекте там стандартный круглый коннектор 2.1*5.5 мм.
Для аналоговой части 5 вольт дополнительно фильтруются LC-фильтром L1C5C7. Это питание идет как на плюс питания ОУ, так и на питание AVcc аналоговой части МК.
Для ОУ так же нужно отрицательное напряжение питания, хотя бы -2..-3 вольта. Его можно получить при помощи специализированных микросхем. Их много разных. Но их надо покупать. Поэтому берем наш микроконтроллер и формируем одним из таймеров меандр с частотой порядка 7.8 кГц. Этот меандр через резистор R5 поступает на каскад C3D1D2, при помощи которого на конденсаторе C4 образуется отрицательное напряжение порядка -3.5..-4 В. Это напряжение дополнительно фильтруется LC-фильтром L2C6C8.

Зарядная часть.
Зарядная часть аккумулятора реализована на широко распространенной МС TP4056 (IC3). Применено типовое включение за исключением пары нюансов. Ток заряда задается при помощи 4х резисторов 3, 6, 12 и 24 кОм - это резисторы R9+R10, R11+R12, R13+R14, R15+R16.
Применены пары резисторов для облегчения подбора соответствующих номиналов.
Эти резисторы подключены к выходам МК, настроенным в режим "открытый сток". И комбинацией выходных сигналов МК как раз и выбирается ток заряда аккумулятора.
Общий провод для TP4056 заведен на верхний конец шунта, для исключения влияния падения на шунте на процесс зарядки.
В таком включении через шунт будет течь еще и собственный ток потребления TP4056, но этот ток учитывается и сохраняется при калибровке.

Каскад на двух p-канальных полевиках Q1Q2R19 - это отключение аккумулятора от TP4056.
Если на входных клеммах напряжение будет менее 0.8 вольта - то в течении приблизительно 200 мкс контроллер отключит аккумулятор от TP4056. Кроме того, в режиме калибровки данный каскад позволяет отключить TP4056 от выходных клемм и измерить собственный ток потребления для его учета при измерении тока заряда.

Разрядная часть.
На транзисторах Q6Q7 и резисторе R37 организован стабилизатор тока, управляемый поданным на базу Q6 напряжением.
Напряжение формируется посредством ШИМ на 13-м выводе контроллера. Частота ШИМ - порядка 7.8кГц поступает на RC-фильтр R33C9, откуда через делитель R34R35 поступает на базу Q6. C10 - дополнительная фильтрация пульсаций.

Следует учесть, что при разряде полностью заряженного аккумулятора (4.25 вольта) током 0.5А на резисторе R37 и транзисторе Q7 будет выделяться 2.1 Ватта тепла, из которых 0.75 Ватта - на резисторе R37. Я предусмотрел теплоотвод от транзистора в виде полигона на печатной плате.

Возможно, если регулярно будут использоваться высокие токи разряда - 300-400-500 мА, нужно будет предусмотреть либо доп. теплоотвод, либо активное охлаждение.

Измерительная часть.
Измерение напряжения производится непосредственно на клеммах для подключения аккумулятора. Но поскольку отрицательная клемма подключена к общему проводу через токоизмерительный шунт, на котором может падать до +/-50 мВ, применен дифференциальный усилитель на половинке ОУ (IC4.b). Кроме того, поскольку напряжение аккумулятора 4.25-4.3 вольта необходимо привести к диапазону ИОН на TL431 - это 2.5В, применена обвязка ОУ - R21-R24. Это два делителя для двух плечей усилителя с коэффициентом деления 18:10.
С учетом того, что применено дифференциальное включение усилителя, необходимо обеспечить идентичность делителей. Т.е. необходимо максимально точно подобрать одинаковые пары резисторов R21=R22, R23=R24. При этом стремиться подбирать точно 180 кОм и 100 кОм не нужно... Эти погрешности влияют только на коэффициент деления и будут учтены при калибровке. Главное, что бы пары резисторов были максимально одинаковые.

Измерение тока заряда/разряда. Последовательно с аккумулятором включен токоизмерительный шунт R18. На нем при токе 0.5 А падает 50мВ. Эти 50 мВ надо усилить до 2.5 вольт. Это усиление осуществляет вторая половинка ОУ - IC4.a.
Проблема в том, что при зарядке это +50мВ, при разрядке -50мВ.
Данная проблема решается просто.

Если открыт транзистор Q3, а Q4Q5 закрыты - напряжение с шунта через R31 попадает на неинвертирующий вход ОУ. R29R30 изолирован от входного сигнала закрытым Q5. Инвертирующий вход подключен через R28 к земле, что вместе с R26 образует схему неинвертирующего усилителя. Сопротивление R31 искажения не вносит, поскольку входное сопротивление ОУ на порядки больше.

Если Q3 закрыт, а открыты Q4Q5, то сигнал с шунта попадает на резисторы R29R30 и далее, на инвертирующий вход ОУ. Неинвертирующий вход ОУ притянут к земле транзистором Q4. Резистор R31 - 10 кОм практически не влияет на измерение, поскольку он в данном режиме включается параллельно шунту 0.1 Ом, и его сопротивление в 100 000 раз больше этого шунта.
Резистор R28 отключен от схемы транзистором Q3 и влияния не оказывает.
Таким образом, в данном включении получаем классический инвертирующий усилитель.
Параллельное включение R29R30 - это всего лишь обеспечение дробного сопротивления без поиска нестандартных резисторов.

При указанных на схеме резисторах коэффициент усиления в обоих режимах составляет 46.45(45). При указанном коэффициенте и напряжении ИОН 2.5 вольта максимальное напряжение, которое можно измерить - это 2.5 / 46.4545 = 53.8 мВ. При шунте 0.1 Ом такое напряжение обеспечивается током 538 мА. Соответственно, с учетом всяких погрешностей как раз получается подходящий диапазон для АЦП.

Выходы ОУ подключены к АЦП контроллера через резисторы 10 кОм. Диоды D3,D4 - защитные для случаев, когда на выходах ОУ появляется отрицательное напряжение. Например, при некорректном подключении аккумулятора.

Отображение и управление.
Вся информация отображается на монохромном дисплее 84х48 пикселей.

Управление устройством осуществляется при помощи 4 кнопок - Вверх, Вниз, Выбор (Ок) и Отмена.

Звуки нажатия кнопок и окончания рабочего цикла воспроизводятся пищалкой SP1 со встроенным генератором.

Режим зарядного/разрядного тока 1А.
В прошивке устройства предусмотрен режим программного удвоения показаний датчика тока.
И, заменив часть резисторов, можно удвоить зарядно-разрядный ток.

Для перевода устройства в режим 1А нужно:
- шунт R18 заменить на 0.05 Ом (Или включить в параллель 2 по 0.1 Ом)
- токозадающий резистор разрядного тока R37 поставить 1.5 Ом мощностью не менее 2 Вт (или в параллель 2 резистора по 3 Ом)
- резисторы R9-R16, задающие ток зарядки, уменьшить в 2 раза - 1.5, 3, 6 и 12 кОм.

Следует учесть, что при разряде полностью заряженного аккумулятора (4.25 вольта) током 0.5А на резисторе R37 и транзисторе Q7 будет выделяться 2.1 Ватта тепла. А при токе 1А это будет 4.25 Ватта. И в таком случае необходимо предусмотреть либо активное охлаждение, либо какой то пассивный теплоотвод в виде радиатора для транзистора и, возможно, для резистора. Лучше даже применить какой то выводной транзистор с монтажом на радиатор.
Например 2SC1162 или 2SD882 - первые попавшиеся поиском транзисторы в TO-126 с током от 3 Ампер и рассеиваемой мощностью от 4 Ватт. Ну и помнить, что 1.5 Ватта будет выделяться на резисторе R37.

Корпус.

В далекие-далекие времена, когда я был маленьким, а микросхемы - большими, вопрос корпусов для радиолюбительских конструкций решался.... ну по разному.
В большинстве случаев это были какие то коробочки бытового назначения - шкатулки, мыльницы и т.д.
Либо корпуса от неисправной БРЭА - почему то в основном встречались упоминания конструкций в корпусах неисправных приёмников. Иногда были варианты покупки какого то радиоконструктора и в комплектном корпусе делалось что то своё.
Еще были варианты сделать корпус из листового оргстекла, дюрали и других листовых (и не очень) материалов.

И разработка конструкции в подавляющем большинстве случаев могла идти двумя путями.
1. Есть корпус - делаем устройство под этот корпус
2. Делалось устройство и потом под готовую плату проектировался корпус.

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

Поскольку 3D-принтера у меня нет, а делать корпуса я аккуратно не умею, мне остается один выход - взять корпус и сделать под него устройство.

Корпус как раз был. Куплен в Китае. Черная коробочка, местами даже глянцевая.


Ищется на алишечке по ключевым словам Plastic Project Box Case, размер 100x60x25 мм.

Под этот корпус и была разработана плата.

Плата.

Плата сделана в двух вариантах - для изготовления дома и для заказа за 2 бакса у китайцев.

Герберы для заказа на заводе.

Герберы для ручного изготовления.

В корпусе, по углам было вкручено 4 нейлоновые стойки. В процессе окончательной сборки, для более плотного прилегания платы к верхней крышке на стойки были дополнительно приклеены проставочки толщиной около миллиметра.


Плата в корпусе.


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

 

Прошивка и фьюзы

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

Фьюзы:

Первое включение, калибровка и работа

Первое включение.
При первом включении устройство переходит в режим настройки контрастности дисплея.


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


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

В режим настройки контрастности и подсветки можно зайти принудительно, если нажать одновременно кнопки Вверх и Вниз перед включением питания. Кнопки нужно удерживать до звукового сигнала.

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

Так же в режим калибровки можно перейти принудительно, если нажать кнопку Отмена перед включением питания. Кнопку нужно удерживать до звукового сигнала.

В режиме калибровки на экране отображается меню из 5 пунктов. Перемещение по меню производится кнопками Вверх и Вниз, выбор пункта меню - кнопкой Ок.
Кнопка Отмена выходит из выбранного пункта меню без сохранения результата.

  • Multiplier - это как раз выбор режима измерения тока - 500 мА (х1) или 1А (х2) (см. выше описание доработок для тока 1А)
  • Calibr. I(ch) - калибровка АЦП для измерения зарядного тока.
  • Calib. (I(dis) - калибровка АЦП для измерения разрядного тока.
  • Calibrate U - калибровка АЦП для измерения напряжения. Калибровка использует результаты калибровок зарядного и разрядного тока, поэтому её нужно проводить после успешной калибровки АЦП измерителя тока.
  • IU-meter view - просто отображение измеренного значения тока и напряжения

Выбор режима измерения тока.

Нажатие Ок переключает коэффициент х1 или х2.

Калибровка АЦП для измерения зарядного и разрядного тока.
Обе калибровки функционально одинаковые, отличаются только полярностью подключения внешнего источника тока.

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

Калибровка зарядного тока

Калибровка разрядного тока

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

Напряжение внешнего БП и/или резистор подбираются так, что бы через шунт R18 тёк ток 500 мА (или 1А в случае множителя х2). После подключения БП и настройки тока необходимо нажать Ок.

Включится режим ввода реального тока.


В случае, если не получается точно установить ток 500 мА (1А), здесь можно выставить кнопками Вверх и Вниз тот ток через шунт, который получилось установить. Пределы калибровочного тока - 475-525 мА с шагом 1мА (950 - 1050 мА с шагом 2мА).

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

Калибровка АЦП для измерения напряжения.

В данном режиме производится расчет коэффициентов для измерения напряжения, а так же уровни ШИМ для задания разрядного тока. Соответственно, внешний БП должен обеспечивать ток нагрузки не менее 500 мА (1А для режима 2х).

При включении режима отобразится соответствующая подсказка.


На внешнем блоке питания необходимо выставить напряжение 4 вольта, подключить блок к клеммам для подключения аккумулятора и нажать Ок.

Включится режим ввода точного напряжения БП.


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

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

Далее начнется процесс калибровки ШИМ для разрядного тока. Процесс длится порядка 25-30 секунд.

Если в процессе проведения калибровок будут возникать ошибки - прибор будет выводить их на экран с соответствующим звуковым сигналом.

Измеритель напряжения и тока.

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

Если подключить БП через резистор к клеммам BAT- и C.Gnd - измеренный ток так же отобразится на экране.


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

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

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

После включения устройства отображается заставка и версия прошивки.


Далее устройство отобразит на экране основное меню.


В правом верхнем углу отображается напряжение на подключенном аккумуляторе.

Ниже - меню из 6 позиций (шестая - Options - находится ниже U(low) и отображается при перемещении курсора вниз).

Перемещение по меню - кнопками Вверх и Вниз, выбор пункта меню - Ок.
Кнопка Отмена - выход из подменю на уровень выше или отмена редактирования параметра.

  • START - переход в подменю начала тестирования аккумулятора
  • I(ch) - выбор тока зарядки аккумулятора
  • Disch.mode - режим разряда аккумулятора.
    Изначально был запланирован только один режим - постоянным током независимо от напряжения аккумулятора.
    Но потом возникла мысль, что можно сделать эмуляцию разряда на постоянное сопротивление и эмуляцию с поддержанием постоянной мощности через пересчет текущего тока, напряжения на аккумуляторе и коррекцию разрядного тока.
  • I(dis)/R(dis)/P(dis) - выбор разрядного тока, сопротивления или мощности
  • U(low) - нижний предел разрядки аккумулятора
  • Options - настройки звука кнопок, продолжительности мигания подсветки и подачи звукового сигнала по окончанию цикла.


Меню режимов тестирования аккумулятора.


CHECK R(int) - Проверка внутреннего сопротивления аккумулятора. Выполняется установленным разрядным током. Вычисляется как разница напряжения ЭДС и напряжения под нагрузкой, деленная на ток нагрузки. Длится несколько секунд.

Да, это старый грустный тестовый аккумулятор...

DISCH.+CHARGE - Комбинированный режим, сначала идет разряд аккумулятора в установленном режиме, по достижению аккумулятором установленного нижнего значения разряд длится еще 30 сек, после чего включается режим зарядки аккумулятора. Если в настройках включена подача звукового сигнала по окончанию рабочего цикла, то при переходе от разряда к зарядке прозвучит одиночный звуковой сигнал длительностью 1/2 секунды.

CHARGE - только зарядка аккумулятора установленным током.

DISCHARGE - только разряд аккумулятора в установленном режиме до нижнего предела напряжения.

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

Разряд аккумулятора

Заряд аккумулятора

Окончание цикла разряда-заряда аккумулятора.


Файлы:
Архив ZIP
Архив ZIP
Архив ZIP
Документ PDF


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

51 2 3
5 0 1

Эти статьи вам тоже могут пригодиться: