Разработка power bank для ноутбука. от макета к готовому изделию. часть вторая

Разработка power bank для ноутбука. от макета к готовому изделию. часть вторая

В прошедшей части статьи о разработке PowerBank для ноутбука мы остановились на изготовленном макете, измеренном КПД и пониманием того, что делать дальше. А дальше необходимо было оживлять железку. Исходя из этого воображаю вашему вниманию часть вторую: ПО макета.
Смотрите кроме этого: Брелок Griffin Travel Power Bank может зарядить Apple Watch четыре раза

За надёжным переходником BreakSafe для Apple MacBook компания Griffin объявила дорожный аксессуар Travel Power Bank, что является аккумулятором с совмещенной беспроводной зарядкой для умных часов Apple Watch. Travel Power Bank выполнен в форм-факторе брелока для ключей и разрешает перезарядить часы Apple четыре раза. С целью достижения этого результата Griffin разместила в корпуса зарядного устройства миниатюрную батарею на 800 мАч.

Travel Power Bank перезаряжается через micro-USB и оснащён единственной кнопкой для активации беспроводной зарядки.

Паузу между частями оказался большим — все силы были брошены на проект быстрозарядного внешнего аккумулятора проект которого на данный момент собирает помощь на boomstarter. Продолжим.Чтобы понять какие конкретно микросхемы нам нужно будет программировать взглянуть на структурную схему макетаОтсюда видно, что нужно будет писать ПО для управляющего МК (STM32F042), и конфигурировать совокупность контроля Li-ion аккумуляторная батарей + зарядное устройство (BQ40Z60).

Я начал со второго, потому как вычислял эту часть самая сложной. Для программирования контроллера BQ40Z60 нам пригодится: — Адаптер EV2400 и EV2300(готовый либо самодельный). У меня с прошлых проектов остался EV2300, исходя из этого я применял его.— Программа Battery Management Studio (bqStudio).Подключается адаптер по шине SMBus, для подключения я покинул точки подпайки на линиях SMBD и SMBC.(Не самое практичное ответ — позже осознал, что нужно было ставить разъем).По окончании танцев с бубном BQ40Z60 определилась в Battery Management Studio.

Обстоятельством тому был дремлющий режим в который входит контроллер при отсутствии подтяжки на шине SMBus и отсутствии обращения к нему. Просыпается он при подключении ЗУ.Потом займемся конкретно настройкой чипа BQ40Z60. Заявить, что у него большое количество регистров — ничего не сообщить. Настроек миллион.

Потому, что конфигурирование — продолжительный и процесс(для описания нужна отдельная статья) я обрисую его кратко. По окончании запуска появляется основное окно Battery Management StudioВкладка Data memory содержит много полей в каковые мы должны внести режимы работы и параметры батарей контроллера.На вкладке Chemistry возможно попытаться найти готовые калибровки для применяемых ячеек.Для моих YOKU LP 5558115 3500mAh готовых калибровок не выяснилось (кстати калибровки всегда обновляются).

Отыскал похожие YOKU LP 656193 4000mAh. Смекнув, что про имеющиеся пакеты я все равно ничего не знаю, выбрал данный профиль.После этого во вкладке Data memory я настроил:Calibration: калибровочные значения для вольтметров(ячейки, внешнего адаптера и батареи), сопротивление датчика тока, калибровочные значения для датчика температуры.Settings: включение защит, терморезисторов, светодиодов, дремлющего режима, конфигурации батареи.Protections: настройка порогов защит(напряжение, время, температура), настройка порогов напряжения внешнего адаптера.

Permanent Fail: настройка порогов срабатывания необратимых неточностей(таких при которых предстоящая работа батареи неосуществима). Advanced Charge Algorithm: настройка зарядного устройства(токи, напряжения для различных диапазонов температуры, показатель окончания заряда, балансировка).Gas Gauging: настройка блока определения уровня заряда(паспортные емкость/напряжение ячеек, сопротивление проводов, статистика).Power: настройка режимов работы контроллера.PF Status: состояние статусных бит Permanent Fail защит.System Data: поля для данных производителя.SBS Configuration: настройка порогов срабатывания триггера Alarm, главные информацию о батарее(серийный номер, дата производства, производитель, имя, химия).LED Support: настройка режима свечения индикаторных светодиодов.Black Box: тёмный ящик (история трансформации статусных бит защит).Lifetimes: статистика батареи.Ra Table: таблица внутренних сопротивлений ячеек.В ходе настройки я изменял не все поля, но для старта этого хватило.С данной частью схемы был лишь один аппаратный косяк связанный с выводом 21-AFEFUSE микросхемы.

Случилось это вот как:Схему я драл с отладочной платы за исключением микросхемы вторичной защиты и пережигаемого предохранителя. У BQ40Z60 за пережигание предохранителя отвечает 21 вывод AFEFUSE (так я думал). Исходя из этого я взглянул 5 страницу даташита BQ40Z60 заметил в таблицетип вывода Output и с чистой совестью покинул его болтаться в воздухе.

Неприятности пришли по окончании спайки платы: наподобие все настройки перебрал (а в то время сомнений было довольно много), но не работает — не включались зарядный и разрядный транзисторы. По окончании 2х дней ошибок/раздумий/и сомнений проб я увидел, что бит FUSE_EN не установлен и решил «поинтересоваться у людей» и в то время, когда я запостил вопрос ко мне пришло озарениеГлядя на схему отладочной платы я высказал предположение, что вывод AFEFUSE возможно кроме этого входом, что подтвердилось разделом 9.3.2.4 стр.24, где написано, что в случае если вывод не употребляется, его необходимо соединить с почвой.

Я это сделал пинцетом и все получило. Через 5 мин. мне ответили на e2e.com — ответ четкий и верный, я высказал собственный «фи» по поводу неточности в таблице выводов — давали слово исправить в следующих предположениях документации. Дабы поставить точку в настройке контроллера я прогнал 2 обучающих цикла полный заряд/разряд + релаксация (заняло в общем 30 часов).Сейчас перейдем к программированию STM32F042.

На этапе макета от этого процессора требовалось совсем не большое количество: — Руководить преобразователем напряжения, обрабатывать кнопки.— Уходить как возможно глубже в сон, чтобы не разряжать батарею. — Считывать главные параметры АКБ из контроллера(напряжение, ток, уровень заряда, температура, текущее состояние, количество циклов, время до полного заряда/разряда) и выводить их в ПК через USART (потому, что на плате уже стоял преобразователь CP2102). Хоть процессор и содержит USB на борту, в макете я его не применял, да и делался макет под 051 МК, но я не смог его приобрести.Управление преобразователем сводилось к выставлению двух выводов(режим и включение работы), подачи ШИМ (с последующей RC фильтрацией) на вывод задания частоты преобразования микросхемы LTC3780 (в итоге установил частоту на максимум — 400кГц), и вход мониторинга сигнала PowerGood.

Но кроме того тут я умудрился наступить на грабли. Баг был плавающий и появлялся в то время, когда Power Bank продолжительно полежит отключённым, выражался в том, что он просто не включался. Неприятность заключалась в том, что я сперва включал прерывание на сигнал PowerGood от LTC3780, а после этого включал саму микросхему(EN). Получалось, что прерывание срабатывало еще до старта преобразователя и выключало его. Переставил события местами и добавил задержку — неприятность провалилась сквозь землю.

В остальном данный функционал дался легко. Было решено сделать интерфейс пользователя с 1 светодиодами и 5 (6) кнопкой (не смотря на то, что на плате макета было 2 светодиодов и 10 кнопки).

Трудится он следующим образом:Устройство отключено — короткое нажатие (Устройство отключено — долгосрочное нажатие (500 мс) — включение устройства (загорается 5ый светодиод).Устройство отключено — подключение ЗУ -&аккумуляторная; анимация уровня заряда на 4 светодиодах до окончания процесса заряда.Устройство включено — короткое нажатие — анимация уровня заряда на 4 светодиодах.Устройство включено — долгосрочное нажатие — выключение устройства.Устройство отключено — ток потребления меньше 50 мА более 3 мин. — выключение устройства.Это разрешило убрать из устройства 27 элементов.Опыт реализации дремлющих режимов на STM32F0xx у меня уже был, исходя из этого на громадные грабли я тут не рассчитывал. Для оптимизации потребления я в первую очередь заменил LDO 3,3В на mcp1703 с малым током собственного потребления (необходимо было не драть с отладки, а сходу ставить его).

Размер, цена, потребление, обвес — меньше, чем у LP2951.-Когда устройство отключено, МК находится в режиме STANDBY и реагирует лишь на нажатие кнопки либо подключение ЗУ. Потребление в таком режиме образовывает 108 мкА (100 из них потребляет BQ40Z60).-При подключенном устройстве процессор большая часть времени (не считая опроса и моментов индикации BQ40Z60) находится в режиме STOP с потреблением 1,5 мА (1 мА это светодиод).

В индикации и моменты опроса ток потребления колеблется от 4,5 до 9 мА. -При подключенном USB МК в режиме RUN на 48 Мгц, потребление 15 мА. В будущем сделаю питание МК в этом режиме от USB. Самой громадной потенциальной проблемой был опрос BQ40Z60. С SMBus я не трудился и до последнего сохранял надежду, что SMBus это I2C 1в1(частично это так, поскольку физический уровень у них однообразен), но оказалось, что канальный уровень очень сильно разнится и это порождало последовательность трудностей.

Тут обрисовывать отличия SMBus от I2C я не буду, а приведу ссылку на достаточно грамотную статью. На этапе макета я не стал ввязываться в борьбу с SMBus (к слову как программист я на большое количество не сильный, чем как схемотехник) и потому, что приёма байта и команды отправки в SMBus и I2C совпадали всецело, я применял лишь их. В итоге из BQ40Z60 я считывал SOC, SOH, Current, CellVolt, TimeToFull, TimeToEmpty.

В зависимости от значений регистров изменялся режим работы(выдавались предупреждения, любо происходило выключение). Ну и на стороне ПК само собой разумеется была нужна программа, талантливая отображать считанные с АКБ данные в эргономичном виде. Потому, что графические интерфейсы я имел возможность лишь в Borland C++ Builder и делал это весьма в далеком прошлом, то я попросил программиста набросать для меня простенькую отладку. Для макета на скорую руку оказалось следующее:Это все работы, каковые были совершены на стадии макета.

Потом в замыслах(а потому, что я обрисовываю уже совершённые операции, то часть работ уже сделана) передача ТЗ конструктору для создания/изготовления корпуса PowerBank, исправление неточностей/доработка схемы, переделка платы под корпус, доработка ПО. Затем устройство будет похожим на товар и, по окончании доведения, станет товаром в прямом смысле этого слова. В следующих частях статьи мы разглядим основные сложности и этапы процесса перехода от макета к готовому изделию, работу по корпусированию, разглядим цене разных операций и решений, оптимизацию, и заметим конечный итог.

Случайная статья:

21 Savage — Bank Account (Official Audio)


Похожие статьи:

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.