Воистину говорят: лень — двигатель прогресса! Вот и мне, взбудоражила голову мысль, автоматизировать процесс измерения и тренировки кислотных аккумуляторных батарей. Ведь кто, в здравом уме, будет, в наш век умных микросхем, корпеть над аккумулятором с мультиметрами и секундомером? Наверняка, многие знают «народное» зарядное устройство Imax B6. На хабре есть статья про него (и даже не одна). Ниже я напишу, что я с ней сделал и зачем.
Точность
В начале, моей целью было увеличение разрядной мощности, чтобы измерить свои батареи для бесперебойника и, в перспективе, тренировать их, не подвергаясь риску преждевременной старости (меня, а, не аккумуляторов). Погонял устройство в разобранном виде. Внутри оно щедро нашпиговано множеством дифференциальных усилителей, мультиплексором, buck-boost регулятором с высоким КПД, имеет хороший корпус, а в сети можно найти открытый исходный код очень неплохой прошивки. При токе зарядки до 5 ампер, им можно заряжать даже автомобильные аккумуляторы на 50А/ч (ток 0.1C). При всем, при этом этом, богатстве, в качестве датчиков тока, здесь используются обычные 1 Вт резисторы, которые, ко всему прочему, работают на пределе своей мощности, а значит, их сопротивление значительно уплывает под нагрузкой. Можно ли доверять такому измерительному прибору? Подув и потрогав руками эти «датчики» сомнения ушли — хочу переделать на шунты из манганина! Манганин (есть еще константан) — специальный сплав для шунтов, который практически не изменяют своего сопротивления от нагрева. Но его сопротивление на порядок меньше заменяемых резисторов. Так же, в схеме прибора используются операционные усилители для усиления напряжения с датчика до читабельных микроконтроллером значений (я полагаю, верхняя граница оцифровки — опорное напряжение с TL431, около 2,495 вольт). Моя доработка заключается в том, чтобы впаять шунты вместо резисторов, а разницу в уровнях компенсировать, изменив коэффициент усиления операционных усилителей на LM2904: DA2:1 и DA1:1 (см. схему).Схема Для переделки нам понадобятся: само устройство оригинал (я описываю переделку оригинала), манганиновые шунты (я взял от китайских мультиметров), ISP программатор, прошивка cheali-charger (для возможности калибровки), Atmel Studio для ее сборки (не обязательно), eXtreme Burner AVR для ее прошивки и опыт по созданию кирпичей успешной прошивке атмеги (Все ссылки есть в конце статьи). А так же: умение паять SMD и непреодолимое желание восстановить справедливость. Я нигде не учился разработке схем и вообще радиолюбительству, поэтому вносить такие изменения в работающее устройство вот так с ходу, было лениво боязно. И тут на помощь пришел мультисим! В нем возможно, не прикасаясь к паяльнику: реализовать задумку, отладить ее, исправить ошибки и понять, будет ли она вообще работать. В данном примере, я смоделировал кусок схемы, с операционным усилителем, для цепи, обеспечивающей режим заряда: Резистор R77 создает отрицательную обратную связь. Вместе с R70 они образуют делитель, который задает коэффициент усиления, который можно посчитать примерно так (R77+R70)/R70 = коэффициент усиления. У меня шунт получился около 6,5 мОм, что при токе 5 А составит падение напряжения нем 32,5 мВ, а нам нужно получить 1,96 В, чтобы соответствовать логике работы схемы и ожиданиям её разработчика. Я взял резисторы 1 кОм и 57 кОм в качестве R70 и R77 соответственно. По симулятору получилось 1,88 вольт на выходе, что вполне приемлемо. Так же я выкинул резисторы R55 и R7, как снижающие линейность, на фото они не используются (возможно, это ошибка), а сам шунт подключил выделенными проводами к низу R70, C18, а верх шунта напрямую к «+» входу ОУ. Лишние дорожки подрезаны, в том числе, и с обратной стороны платы. Важно хорошо припаять проводки, чтобы они не отвалились, со временем, от шунта или платы, потому что с этого датчика запитывается не только АЦП микроконтроллера, но и обратная связь по току импульсного регулятора, который, при пропадании сигнала, может перейти в максимальный режим и угробиться. Схема для режима разрядки принципиально не отличается, но, так как я сажаю полевик VT7 на радиатор, и увеличиваю мощность разрядки до предела полевика (94Вт по даташиту), хотелось бы и максимальный ток разряда выставить по-больше. В результате я получил: R50 – шунт 5,7 мОм, R8 и R14 — 430 Ом и 22 кОм соответственно, что дает требуемые 1,5 вольт на выходе при токе через шунт 5 А. Впрочем, я экспериментировал и с большим током — максимум вышло 5,555 А, так что зашил в прошивку ограничение до 5,5 А (в файле «cheali-chargersrchardwareatmega32targetsimaxB6-originalHardwareConfig.h»). По ходу вылезла проблема — зарядник отказался признавать, что он откалиброван (i discharge). Связано это с тем, что для проверки используется не макроопределение MAX_DISCHARGE_I в файле «HardwareConfig.h», а вторая точка калибровки для проверки первой (точки описаны в файле «GlobalConfig.h»). Я не стал вникать в эти тонкости хитросплетения кода и просто вырезал эту проверку в функции checkAll() в файле «Calibrate.cpp». В результате переделок, получился прибор, который обеспечил приемлемую линейность измерений в диапазоне от 100mA до 5А и который можно было бы назвать измерительным, если бы не одно но: так как я оставил мощный разрядный полевик внутри корпуса (несмотря на улучшенное охлаждение), нагрев платы от него все равно вносит искажение в результат измерения, и измерения немного «плывут» в сторону занижения… Не уверен, кто именно виноват в этом: усилитель ошибки или АЦП микроконтроллера. В любом случае, ИМХО, стоит вынести этот полевик за пределы корпуса и обеспечить там ему достаточное охлаждение (до 94Вт или заменить его на другой подходящий N-канальный).
Прошивка
Не хотел я писать про это, но меня заставили.
- Подключаем программатор к устройству, а программатор в комп (картинка ниже — для оригинала устройства! клон подключается иначе):
- Теперь попробуем скомпилировать нашу прошивку (это действие не обязательно, можно взять готовую из папки «cheali-chargerhexcheali-charger-imaxB6-original-0.33.hex», в таком случае, переходите к пункту 6). Вообще, как и что можно делать, часто пишут в сопроводительной документации, например, про сборку — в файле «building.md». В данном случае, порядок такой:
- установить Atmel Studio и cmake
- выполнить: s:cheali-charger> make
- Калибровка. Для нее понадобится батарея li-ion из, по крайней мере, 2-х элементов. Порядок калибровки можно прочитать в «README.md». Можно, переставляя ее в сторону по балансному разъему, откалибровать все 6 входов, при этом, первые 2 можно откалибровать отдельно (более точно), в меню экспертной калибровки, про нее написано в «calibration_expert.md».
Немного про мою доработку охлаждения
Полевик VT7, на новом месте, приклеен на термоклей, а его теплоотвод — припаян к медной пластинке: Охлаждение решил сделать из ненужного радиатора на тепловой трубке от мат-платы. На фото видно подходящую по размерам прижимную пластину и площадку транзистора, по периметру которой проложена изолирующая пластмасса — на всякий случай. Пяточек из жала паяльника припаян прямо к плате, к общему проводу — будет играть роль дополнительного теплоотвода от преобразователя:
Собранная конструкция не помешает стоять прибору на ножках: Готовы к прошивке: Я испытал эту переделку в пассивном режиме охлаждения: разряд 20 минут 6-вольтовой Pb-батареи максимальным током 5,5А. Мощность высветилась 30…31Вт. Температура на тепловой трубке, по термопаре, дошла до 91°C, корпус тоже раскалился и, в какой-то момент, экран начал становиться фиолетовым. Я, конечно, сразу прервал испытание. Экран долго не мог прийти в норму, но потом его отпустило. Теперь уже очевидно, что выносной блок нагрузки, с разъемным соединением, был бы наилучшим решением: в нем нет ограничений на размер радиатора и вентилятора, а сама зарядка получилась бы более компактной и легкой (в поле разряд не нужен). Надеюсь, что эта статья поможет новичкам быть смелее в экспериментах над беспомощными железяками. Замечания и дополнения приветствуются.Предупреждение
: описанные модификации, при неумелом применении, могут повредить компоненты зарядки, превратить ее в необратимый «кирпич», а так же привести к снижению надежности устройства и создать риск пожара. Автор снимает с себя ответственность за возможный ущерб, в том числе за зря потраченное время.
Ссылки
Альтернативная прошивка cheali-charger: https://github.com/stawel/cheali-charger (Её обзор на youtube: раз, два). Для компиляции прошивки: Atmel Studio и CMake Программа-прошивальщик: eXtreme Burner AVR ISP программатор: USBASP Programmer for ATMEL
В этой статье я расскажу как прошить Imax B6 Mini двумя разными способами. Первый самый распространенный, его использует большинство, второй более интересный на мой взгляд, более простой, позволяющий обновится до самой новой на данный момент версии.
Начнем по порядку. Для начала нам нужно зайти на сайт skyrc.com и перейти в раздел Download. Затем в категории выбрать пункт Chargers и найти свое устройство, в данном случае Imax B6 Mini. Переходим во вкладку Software и скачать программу Charger Master второй версии.
В моем случае файл сохранился без расширения, поэтому я скопировал все названия вместе с расширением и переименовал скачанный файл. Запускаем setup.exe или ChargeMaster2.msi — без разницы. Устанавливаем программу и при необходимости меняем путь установки. Я оставил все как есть.
После запуска Charge Master сообщает нам что для его работы требуется NET Framework 4-ой версии и предлагается нам его скачать. Соглашаемся и нажимаем кнопочку «Да». Как ни странно ничего не произошло поэтому я скачал его сам. Советую скачать автономный установщик, хотя это не особо принципиально и можно загрузить Web инсталлятор. После установки пробуем еще раз запустить программу. Программа запустилась, теперь можно подключить устройство к USB компьютера.
В программе обнаружился баг из-за которого при подключенном устройстве исчезает часть интерфейса. Для его устранения нам понадобится зайти в панель управления и переключить формат языка на английский либо же заменить разделитель целой и дробной части с запятой на точку.
В моем случае я просто поставлю формат на английский (США). Снова запускаем программу и пробуем подключиться. Все работает, переходим в раздел System и видим сообщение что доступна версия 1.12, у нас же версия 1.10. Обновляем прошивку нажатием на кнопку Update Firmware. По завершению прошивки устройство выдает характерный звук.
Теперь о втором способе. Данное устройство также можно прошить с помощью специальной сервисной утилиты. Этот способ более простой, не требующий установку дополнительного софта и изменения настроек системы. К тому же данный способ позволит нам обновится до версии 1.13. Переходим на страницу с прошивкой и скачиваем небольшой архивчик с прошивальщиком для нашего устройства (ссылка чуть ниже), либо скачиваем прямо от сюда, распаковываем и запускаем.
Зажимая кнопку Enter подключаем USB провод к устройству, затем подключаем питание. Теперь можно нажать кнопку Upgrade. Начался процесс прошивки. В принципе можно не водить устройство в специальный загрузочный режим и даже не подключать питание, а просто после подключения к USB сразу приступить к прошивке, но мои тесты показали что в этом случае прошивка устанавливается криво и устройство начинает время от времени само перезагружаться. Поэтому советую все делать четко по этой инструкции.
Если вам что-то не понятно, то советую посмотреть данное видео. В нем все наглядно показано.
AliExpress:Imax B6 Mini
Сайт производителя:http://www.skyrc.com/
NET Framework 4:https://goo.gl/tY7qoi
Страница с пошивкой v1.13:https://goo.gl/BP7wT5
Страница с пошивкой v1.14:https://goo.gl/Jdomp1
1-й способ:
Charger Master 2.02Размер: 1.9 MB • Скачано: 2836 • Дата: 16 Ноя 2015
2-ой способ: (взято из официальных источников)
Прошивка Imax B6 Mini 1.14Размер: 77.5 KB • Скачано: 4158 • Дата: 12 Мар 2017Прошивка Imax B6 Mini 1.13Размер: 77.0 KB • Скачано: 2114 • Дата: 16 Ноя 2015Прошивка Imax B6 Mini 1.12Размер: 77.1 KB • Скачано: 1425 • Дата: 16 Ноя 2015Используемые источники:
- https://habr.com/post/250661/
- http://maksovich.ru/118