Разработка внешнего аккумулятора на четырех батареях LiFePO4

luxt1n81ms84ovom69egdejgse4.png
Упрощенная схема BQ40Z50-R1

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

В рамках одного проекта мы разрабатывали внешний аккумулятор с поддержкой обычной и быстрой зарядки, в том числе от солнечных батарей. Еще одно требование — минимизация габаритов устройства. На первом этапе мы реализовали обычную зарядку четырех одинаковых АКБ LiFePO4 за счет микроконтроллера и менеджера заряда BQ40Z50-R1, без применения специализированной микросхемы заряда и ШИМ. Помимо заряда микроконтроллер красиво управляет индикаторными светодиодами и взаимодействует с пользователем по BLE. Делимся подробностями этого этапа разработки.

Постановка задачи и решение


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

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

Для уменьшения себестоимости и габаритов нового зарядного устройства решено использовать микросхему BQ40Z50-R1 от Texas Instruments в качестве «зарядника» и «балансира» для четырех АКБ LiFePO4., несмотря на то, что это микросхема — менеджер, а не «зарядник» (т.е. она может контролировать параметры напряжения, тока и т.п., но не управлять процессом заряда). Подробности о микросхеме BQ40Z50-R1 см. в технической спецификации и справочнике.

Параметры АКБ:

  • Номинальное напряжение 3,2 В
  • Максимально допустимое напряжение 3,65 В 
  • Номинальный зарядный ток при полной разрядке 400 мА


Для программирования микросхемы BQ40Z50-R1 мы использовали специализированный программный пакет Battery Management Studio (bqStudio) и интерфейсную плату EV2300 — всё это инструменты для разработчиков от компании Texas Instruments. Задача bqStudio — сгенерировать корректные настройки менеджера BQ40Z50-R1, чтобы он «подружился» с используемой батареей.

Схемотехника


Как уже было отмечено, микросхема BQ40Z50-R1 — это зарядный менеджер, который используется для контроля параметров заряда/разряда АКБ, а также настройки различных алгоритмов заряда/разряда АКБ в зависимости от текущих параметров (например, температуры, зарядного/разрядного тока и прочего).

Разработчики микросхемы предусмотрели возможность активного режима заряда и режима с ограничением по току (Pre-charge), который используется при полной разрядке АКБ. Схемотехника устройства при этом не изменяется (см. спецификацию). Необходимо только пересчитать токоограничительный резистор в цепи Pre-charge. В нашем случае для заряда выбранных АКБ LiFePO4 нужен был зарядный ток порядка ~400 мА.

Настройка микросхемы BQ40Z50-R1


BQ40Z50-R1 настраивается при помощи программного пакета bqStudio. Для записи установленных параметров и общения с микросхемой используем преобразователь SMB to USB:

wozjspu7qm-mjzfcngm5iazzmtq.jpeg
Программатор EV2300

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

ltqmnm0sckhwsr5t8vqlcviroty.png
Интерфейс программы Battery Management Studio (bqStudio)

Расскажем об этапах настройки BQ40Z50-R1:

1. Выбор сходного профиля по химии батареек (Chemistry Programming)

При установке программы в пакете присутствует файл Chem.ini, в котором описано более 1 000 видов АКБ, различных по химическому составу, емкости, количеству ячеек и др. критериям. Texas Instruments постоянно обновляет перечень химических параметров батарей различных производителей. Но если нужной батареи в списке нет — не беда, параметры химии можно задать вручную. Для корректной работы зарядного устройства нужно выбрать наиболее подходящий для разработки профиль батарейки и нажать кнопку «Обновить химию из базы данных» (Update Chemistry from Database):

v_gzvvlknqhfaa9u2yks56nvk8u.png
Интерфейс окна bqStudio для выбора профиля химии

2. Калибровка (Calibration)

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

  • напряжения на батарее;
  • напряжения на 1-й ячейке;
  • напряжения на входе;
  • тока;
  • температуры.


Замеренные параметры заносим в программу и нажимаем кнопку «Калибровать».

3. Настройка (Settings)

Затем подключаем нужные функции:

  • включение/выключение защит (Protection);
  • терморезисторов (Temperature Enable/Mode);
  • режим определения заряда, разряда батареи (SOC Flag Config): по напряжению или по емкости;
  • включение балансировки (Balancing configuration);
  • включение/отключение одноразовых защит (Fuse);
  • включение/отключение самовосстанавливаемой защиты (Protection);
  • что должно включится автоматически после подачи питания (Manufacturing) — при этом должны быть установлены биты FET_EN=1 и GAUGE_EN=1.


4. Расширенный алгоритм заряда (Advanced Charge Algorithm)

Этот режим работы встроен в микросхему BQ. Внешний микроконтроллер может включить и использовать этот режим для управления током заряда, напряжением и другими параметрами заряда. Микросхема BQ40Z50-R1 будет проводить все измерения, анализ и вычисление необходимых для АКБ параметров заряда и отсылать микроконтроллеру рекомендации по шине SMBus. Также BQ может управлять внешними ключами переключения режимов и токов заряда и защиты. Для правильного использования этого режима необходимо провести ряд настроек: токи, напряжения для разных диапазонов температуры, признак окончания заряда, балансировку.

Для правильной работы данного режима настраиваем в окне программы управления следующие поля:

  • Значение температур, при которых будут переключаться режимы заряда (Temperature Range)
  • Токи и напряжения заряда для заданных выше диапазонов температур (Low/Standart/High/Rec Temp Charging)
  • Ток предзаряда (Pre-Charging)
  • Ток обслуживающего заряда (Maintenance Charging) — для компенсации саморазряда
  • Напряжения (Voltage range), по превышению которых будут выставлены следующие флаги, они будут видны микроконтроллеру в регистре статуса заряда (Charging status):
    PV — режим Pre-charge
    LV — низкое напряжение
    MV — среднее
    HV — высокое


В нашем случае нужно было изменить в настройках Data Memory параметры Precharge Start Voltage [2,14.4.8.1] на 2300 мВ; Charging Voltage Low [2,14.4.8.2] на 3500 мВ; Charging Voltage Med [2,14.4.8.1] на 3555 мВ; Charging Voltage High [2,14.4.8.1] на 3600 мВ. По умолчанию в BQ40Z50-R1 уже установлено автоматическое регулирование режимов заряда/разряда, поэтому нужно было только записать параметры микросхемы, нажав Write_All. По окончанию записи в строке состоянии появляется надпись Successful.

o-9xhmljivpotlaxqgsv0je1bas.png
Меню Data Memory в программном пакете bqStudio

5. Защита (Protection)

Без настройки защиты никак нельзя:

  • Устанавливаем регистр PCHGC-защиты по току, при котором Pre-charge будет выключаться на заданное время, если ток в это время превысит установленный порог.
  • Устанавливаем защиту по Under voltage и Over voltage (из описания на АКБ).
  • Остальные параметры оставляем по умолчанию.


6. Измерение заряда (Gas Gauging)

Gas Gauging — особая функция микросхемы BQ40Z50-R1 для вычисления текущей емкости батареи и оставшегося времени до полного заряда или разряда.

Для работы этого режима из многих установок настраиваем наиболее важные:

  • Design — прогнозируемые значения емкости и напряжения батареи
  • FD — уровни напряжения или емкости полного разряда
  • TD — уровни напряжения или емкости для отключения разряда
  • FC — уровни напряжения или емкости полного заряда
  • TC — уровни напряжения или емкости для отключения заряда


Многие параметры для этого режима берутся из базы данных аккумуляторов. Если требуемого аккумулятора нет в базе, можно подобрать похожий и провести полный цикл обучения для BQ40Z50-R1.

Процесс обучения для вычисления емкости батареи:

  1. Полностью разрядить батарею и выждать примерно 5 часов.
  2. Отправить команду Enable и Reset. (Data Memory/Gas Gauging/State/Update Status). В регистрах LStatus статус должен обновиться на 0×04.
  3. Зарядить батарею до момента, пока в регистре ChargeStatus бит статуса FC (Full charge) не измениться на »1». Затем следует выждать примерно 2 часа. LStatus должен изменится на 0×05. Конечно, заряжать батарею нужно тем методом, который рекомендован производителем батареи.
  4. Разрядить до уровня С/10 и выждать примерно 5 часов (LStatus должен изменится на 0×06).
  5. Всё. Цикл обучения завершен.


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

Выводы


В результате получается «зарядник» с режимом Pre-charge для заряда АКБ. Когда АКБ полностью разряжен — зарядный ток действительно составляет порядка 400 мА, но со временем ток ожидаемо падает и к концу заряда (достижение номинального напряжения) составляет порядка 50 мА.

Общее время заряда в таком случае составляет 5–6 часов. Емкость АКБ в конце заряда составляет 80–90% от номинальной. Если вам не нужна быстрая зарядка нескольких АКБ, требуется минимизировать себестоимость микросхемы заряда и сократить месте на плате, то это ваш вариант.

© Habrahabr.ru