Сделать себе внешний аккумулятор для ноутбука я хотел уже давно, 3-4 года назад для работы в парке. Хоть и мечта рисовать схемы и трассировать платы в парке Горького или Битцевском лесу так и не реализовались (пока), но внешний аккумулятор (назовем его по-современному — PowerBank) я таки сделал. О том как это устройство проходило путь от макета до конечного изделия и почему я делал то, что уже есть на рынке, под катом.
Изначально я хотел написать небольшую статью про разработку PowerBank, но когда начал — понял, что одной частью не обойтись. Поэтому я разбил ее на 4 части и сейчас предлагаю вашему вниманию первую из них: макет (схемотехника).
Очевидно, что разработка любого электронного устройства начинается с технического задания (ТЗ), поэтому я обозначил для себя ряд параметров, которые мой PowerBank должен обеспечить:
- входное напряжение 19В (для возможности зарядки от стандартного ЗУ ноутбука)
- выходное напряжение 19В (как и у стандартного ЗУ)
- максимальный выходной ток 3,5А (как и у стандартного ЗУ)
- емкость ячеек не менее 60Вт*ч (+1 внутренняя АКБ)
Помимо основных требований я добавил еще несколько:
- КПД преобразователя и ЗУ не ниже 94% — чтобы обойтись без радиаторов.
- Частота преобразователя не ниже 300кГц — чтобы уменьшить размер самого преобразователя.
- USB порт для просмотра основных сведений о PowerBank таких как уровень заряда, здоровье, количество пройденных циклов, температура, ток и напряжение ячеек АКБ и т.д.
- Софт на ПК(Windows) для просмотра основных сведений о PowerBank.
- Возможность менять выходное напряжение, либо присутствие дополнительного выхода 5В для зарядки USB устройств.
- Светодиодная индикация уровня заряда и состояния PowerBank.
- Кнопка(Кнопки) для включения PowerBank и просмотра уровня заряда.
Для начала разработки я сделал структурную схему будущего устройства:
Комментируя схему, могу сказать, что управляющий МК я мог бы взять с USB, но побоялся трудностей разработки ПО для USB (в последствие понял, что зря) поэтому поставил преобразователь USART — USB.
Поскольку устройство изначально разрабатывалось для себя, то было решено делать макет преимущественно из тех деталей, которые были у меня в наличии и с которыми я уже работал (чтобы избежать подводных камней). При этом оптимизация по цене на этом этапе не проводилась. Поэтому я выбрал следующие комплектующие для PowerBank:
- МК — STM32F051K4U6 с прицелом заменить на STM32F042K4U6.
- Преобразователь USART<->USB — CP2102. Стоит не дорого, работает нормально, места занимает мало, обкатанное решение.
- Импульсный преобразователь напряжения — LTC3780IG. Далеко не самый дешевый/оптимальный вариант, но повышающе-понижающий, может 400кГц, имеет внешние ключи, обкатанное решение. В перспективе замена на LM5175 от TI или применения синхронного повышающего преобразователя.
- Линейный стабилизатор — LP2951ACD-3.3. Он был в наличии, не лучший вариант. Ток собственного потребления до 120мкА с прицелом заменить на MCP1703T-3302E/CB с током собственного потребления до 5мкА.
- Светодиоды зеленые и красные размером 0805.
- Кнопки обычные тактовые SMD.
Отдельно коснемся выбора зарядного устройства (ЗУ) и системы контроля и управления Li-ion аккумуляторами (Li-ion Battery Management System или BMS). Несколько лет назад я занимался ремонтом ноутбуков и в батареях частенько видел BMS от Texas Instruments. Поэтому в первую очередь я стал искать решение для своего устройства именно от этого производителя. Стоит отметить, что в общем-то альтернативы и нет поскольку производит подобные микросхемы лишь несколько контор (TI, Maxim, немного LT, ST-забросили, Intersil-экзотика для нас, может есть еще, но я не знаю). Так вот бродя по просторам сайта ti.com я наткнулся на очень интересную микросхему BQ40Z60RHBR это ЗУ и BMS в одной микросхеме. Она мне очень понравилась потому как заменяла собой 2 микросхемы. Такое решение явно дешевле, чем если делать отдельно ЗУ и BMS и места меньше занимает. Основные ТТХ микросхемы BQ40Z60:
- Ток заряда: до 4А
- Количество ячеек: до 4х
- Частота преобразования: 1МГц
- Входное напряжение: до 25В
- Емкость ячеек: до 65А*ч
- Функция балансировки
- Конфигурируемые светодиоды для индикации (заряд, емкость)
Микросхема достаточно новая (выпуск конца 2014 года), поэтому информации по ней мало и я немного переживал из-за этого зная, что BMS от TI достаточно сложны в программировании, а это еще и комбо (ЗУ + BMS). Также немного переживал из-за возможных косяках в кристалле, но зная, что буду использовать лишь базовый функционал надеялся, что никаких проблем не будет. Впрочем забегая вперед скажу, что так и вышло.
Кстати я не зря до этого не говорил практически ничего про ячейки и конфигурацию АКБ, только сейчас настал момент перейти к выбору. Для оптимального выбора конфигурации АКБ есть несколько критериев:
- Для уменьшения потерь на проводах нужно минимизировать токи между узлами устройства. С учетом этого батарея из 4х последовательно соединенных ячеек (общепринятое обозначение 4s1p или 4-serial 1-parallel) выгоднее, чем 4 параллельные ячейки (1s4p) см. рисунок.
- Поскольку ток заряда ограничен, то для того, чтобы повысить мощность (и скорость) заряда АКБ мы должны увеличивать напряжение. Этот критерий тоже за конфигурацию 4s1p.
- КПД преобразователя падает при росте разницы между входным и выходным напряжением. Вот график из документации на преобразователь MP2307DN.
С учетом того, что выходное напряжение устройства 19В опять же наиболее выгодной является конфигурация 4s1p.
Теперь рассчитаем некоторые параметры АКБ при условии емкости 60Вт*ч, конфигурации 4s1p (напряжение 14,8В):
Полученная цифра показалась мне слишком маленькой (ну или аппетит пришел во время еды) и я решил перейти к конфигурации 4s2p на ячейках LP 5558115 3500mAh, которые были в наличие. Итого мы имеем:
Емкость АКБ: 7А*ч (103Вт*ч)
Напряжение: 14,8В
Такой результат меня вполне устроил — это было больше, чем две внутренние батареи моего ноутбука (ASUS S451L, 46Вт*ч). Началась разработка макета…
На этапе макета я хотел заложить несколько дополнительных возможностей:
- подключил светодиоды BQ40Z60. У них есть функционал индикации уровня заряда с настраиваемыми порогами, а также процесса зарядки.
- добавил возможность регулировать частоту/режим работы (разрывных или неразрывных токов) преобразователя (с помощью ШИМ МК + RC-фильтр).
Схему обвязки BQ40Z60 срисовал с отладочной платы BQ40Z60EVM-578, обвязка LTC3780IG из ее документации, все остальное делал сам. В итоге получилась следующая схема.
Схема разбита на 3 блока:
- Блок преобразователя напряжения
- Блок ЗУ+BMS
- Блок управления на МК
Комментарии к схеме: блок преобразователя и ЗУ+BMS сделаны по схемам из документации [1],[2], блок управления делался из расчета реализовать спящий режим для минимального тока потребления в выключенном режиме. Забегая вперед скажу, что в паре моментов я таки накосячил, но с помощью ножа и паяльника смог заставить макет работать как надо. Полученная плата показана ниже:
Плата содержит 4 слоя по 18мкм, общая толщина 1мм, заказывал на seeedstudio.com.
Теперь пришло время коснуться главного показателя качества железа — это КПД всей системы в целом. Точнее у нас 2 КПД: при зарядке АКБ и при разряде. Строго говоря КПД при заряде стоит оптимизировать только для уменьшения нагрева устройства(рассчитывая, что энергии для заряда у нас много), в то время как потеря КПД при разряде фактически уменьшает реальную емкость PowerBank. Составим перечень элементов непосредственно влияющих на КПД при заряде:
ACFET — транзистор предотвращающий появление напряжения на разъеме внешнего питания при работе PowerBank от АКБ.
HighSideFET — верхний транзистор понижающего преобразователя ЗУ.
LowSideFET — нижний транзистор понижающего преобразователя ЗУ.
BuckInductor — дроссель понижающего преобразователя ЗУ.
CHGRCS — резистор датчика тока ЗУ.
CHGFET — зарядный транзистор АКБ.
DSGFET — разрядный транзистор АКБ.
CellCS — резистор датчика тока АКБ.
Транзисторы ACFET, CHGFET и DSGFET при работе имеют только статические потери поскольку они постоянно открыты и представляют собой резисторы с сопротивлением равным сопротивлению открытого канала транзистора Rds_on, поэтому эти транзисторы должны иметь как можно меньший Rds_on. Корпуса транзисторов я выбрал pqfn3.3x3.3 как подходящие по мощности и имеющие меньший размер по сравнению с моими любимыми pqfn5x6. С наименьшим сопротивлением канала из легкодоступных были IRFHM830D (Rds_on = 5мОм + диод Шоттки).
Транзисторы HighSideFET и LowSideFET работают в импульсном режиме, их выбор сложен и будет рассмотрен позже.
Попробуем оценить потери при входном напряжении 19В, токе заряда АКБ 4А, конфигурации 4s1p:
CellCS — ток через него равен току заряда, сопротивление 5мОм, потери:
CHGRCS — ток через него равен току заряда, сопротивление 10мОм, потери:
CHGFET и DSGFET — ток через них равен току заряда, сопротивление 5мОм, суммарные потери:
ACFET — ток через него равен входному току(возьмем максимально возможный ток входа 3,5А это максимум того, что может выдать штатное ЗУ ноутбука), сопротивление 5мОм, потери:
Сюда же можно прибавить потери на сопротивлении проводов ячейки-плата, а также дорожек самой платы. Я вычислил их путем измерения падения напряжения при токе в цепи АКБ равном 4А, оно составило 36мВ, что соответствует мощности:
BuckInductor — потери в дросселе можно разделить на 2 составляющие:
- потери на активном сопротивлении обмотки (DCR — dc winding resistance). Для выбранного дросселя IHLP2525CZER2R2M01 типовое значение DCR = 18мОм, что при среднем токе 4А даст потери:
- потери в сердечнике достаточно тяжело посчитать имея только данные из документации, поэтому верим заверениям Vishay что их материалы супер крутые, к тому же пульсации тока у нас в районе 20%, поэтому принимаем потери в сердечнике нулевыми.
Итого суммарные потери при заряде на статических компонентах составляют:
Для того, чтобы получить суммарные потери при заряде необходимо оценить потери на транзисторах HighSideFET и LowSideFET. В этом мне помогал апнот AN-6005 от fairchildsemi. Если кратко, то на вкладке ControllerDriver добавляем в базу наш контроллер и вписываем требуемые параметры в таблицу:
Данные берем из документации на BQ40Z60. Далее заполняем таблицу с параметрами транзисторов HighSideFET и LowSideFET на вкладке MOSFETDatabase:
Данные также берем из документации на транзисторы. Я экспериментировал со многими транзисторами(видно по базе) потому как частота преобразования в 1МГц это довольно высоко. Из всех транзисторов, которые я мог быстро достать самыми лучшими оказались CSD17308 от TI. Впрочем это как раз рекомендованные транзисторы с кита BQ40Z60EVM. Самыми лучшими по расчетам оказались eGaN транзисторы от EPC (Efficient Power Conversion), но цена 500р, месяц ожидания и специфический корпус сыграли против него. Еще пара комментариев вкладки MOSFETDatabase:
Правый столбец — Fig.Merit (Figure of merit — показатель качества) это произведение Rds_on на заряд затвора Qgsw. В общем чем ниже Fig.Merit, тем лучше транзистор, но нужно понимать, что это довольно эмпирический показатель.
На вкладке EfficiencySummary выбираем контроллер, используемые транзисторы и их количество, задаем параметры источника и нажимаем кнопку Run.
Для тока заряда 4А и входного напряжения 19В потери составят 1,17Вт. Общие потери:
После сборки макета я измерил схемы заряда при параметрах таких же как при оценочных расчетах:
КПД схемы 97,1%, при этом мощность потерь составила 1,908Вт при расчетных 2,07Вт. Что ж очень близко получилось прикинуть потери. Термограмма работающего устройства показана на рисунке.
Окружающая температура 23 градуса, плата без корпуса. 58 градусов в самой горячей точке (перегрев получается 58-23=35 градусов) при фольге в 18мкм это очень хороший показатель. Дроссель при этом нагрелся до 40 — скорее всего его подогревают транзисторы. Сам контроллер разогрелся до 52 градусов.
Теперь перейдем к оценке КПД системы при разряде. C начала оценим потери в самом преобразователе. Для этого составим перечень элементов непосредственно влияющих на КПД:
A — верхний транзистор понижающего плеча преобразователя LTC3780.
B — нижний транзистор понижающего плеча.
C — нижний транзистор повышающего плеча.
D — верхний транзистор повышающего плеча.
L — дроссель.
RS — резистор датчика тока.
И конечно потребление самого контроллера LTC3780. Подробно не буду останавливаться на работе микросхемы, скажу только, что она фактически представляет собой понижающий преобразователь стоящий после повышающего с общим дросселем. В зависимости от входного и выходного напряжений работает либо одна часть, либо вторая, либо обе(при примерном равенстве входного и выходного напряжений).
Для расчета КПД преобразователя будем использовать следующие параметры:
Условимся, что ноутбук потребляет всегда по максимуму. В реальности это близко к истине, поскольку при подключении внешнего источника он помимо энергии на работу потребляет еще и энергию на заряд внутренней АКБ, да и вообще при наличии внешнего питания в потреблении себе не отказывает. Напряжения соответствуют номинальному напряжению ячеек — 3,7В и пониженному — 3,3В. Важно отметить, что преобразователь в текущем устройстве всегда работает в повышающем режиме (входное напряжение никогда не превосходит выходного), однако это не значит, что транзисторы A и B не переключаются. Для зарядки конденсатора вольтдобавки(bootstrap) необходимо кратковременно выключать транзистор A и включать B(тоже самое будет происходить при работе в понижающем режиме для транзисторов С и D). У LTC3780 это происходит с частотой 40кГц.
Для оценки потерь воспользуемся xls файлом для LTC3780 из пакета LTpowerCAD2. Принцип работы похож на предыдущую работу с xls для BQ40Z60. Вводим все значения выходных напряжения и тока, входного напряжения, желаемую частоту преобразования, параметры ключевых транзисторов(я решил использовать CSD17308 как и в ЗУ). Дроссель был выбран IHLP5050EZER3R3M01 у которого типовое DCR = 7,7мОм. Для 3,5А индуктивность маловата, так случилось потому, что при закупке комплектующих я рассчитывал на выходной ток 4,5А. Для текущей конфигурации идеальным вариантом будет IHLP5050EZER4R7M01 с типовым DCR = 12,8мОм. Датчик тока — резистор типоразмера 2512 сопротивлением 5мОм.
После введения всех данных в полях MOSFETs Power Loss Break Down и Estimated Efficiency будут круговые диаграммы распределения потерь по компонентам и оценка КПД для указанного входного/выходного напряжений и тока нагрузки.
Оценка КПД очень оптимистичная — 98,79% при входном напряжении 14,8В и 98,51% при 13,2В (цифры без учета потерь в сердечнике дросселя). Основные элементы на которых происходят потери это дроссель/датчик тока(23%), транзистор A(25%) и D(38% от общих потерь).
Пришло время измерить реальный КПД.
Измеренный КПД — 96,93% при входном напряжении 14,8В и 96,35% при 13,2В. Проведем анализ полученных данных. Для этого переведем проценты КПД в мощность потерь:
В данном случае расхождения более существенны по сравнению с оценкой потерь в преобразователе ЗУ и составляют до 1,48Вт. Но если учитывать потери в сердечнике дросселя (которыми при не оптимально выбранной индуктивности нельзя пренебречь) картина не будет уже столь удручающей.
Оценим средний(при напряжении 13,2В) КПД PowerBank при разряде. Он складывается из КПД самого преобразователя, а также:
CellCS — ток через него равен входному току преобразователя, сопротивление 5мОм, потери:
CHGFET и DSGFET — ток через них равен входному току преобразователя, сопротивление 5мОм, суммарные потери:
Тогда КПД PowerBank при разряде:
Термограмма преобразователя при входном напряжении 14,4В и выходном токе 3,5А показана ниже:
Самой горячей точкой оказался транзистор С, но его нагрев (при окружающей 21 градус) составил всего 41,1 градус после 30 минут работы. Понятно, что в корпусе эти цифры будут выше, но запас по перегреву огромный.
И в заключение первой части статьи хочется сказать, что работа была проделана очень большая, а во второй части статьи нас ждет разбор аппаратных и программных грабель при запуске макета, конфигурирование BQ40Z60 и ПО для STM32F0. Надеюсь было интересно.
P.S.: Архив с проектом платы и исходники будут выложены в следующих частях статьи.
Автор: vladimir_open-dev