Прокачиваем умную зарядку Imax B6

в 8:35, , рубрики: diy или сделай сам, imax, skyrc, аккумуляторы, Зарядка, зарядное устройство, Электроника для начинающих, метки: ,

Воистину говорят: лень — двигатель прогресса! Вот и мне, взбудоражила голову мысль, автоматизировать процесс измерения и тренировки кислотных аккумуляторных батарей. Ведь кто, в здравом уме, будет, в наш век умных микросхем, корпеть над аккумулятором с мультиметрами и секундомером? Наверняка, многие знают «народное» зарядное устройство Imax B6. На хабре есть статья про него (и даже не одна). Ниже я напишу, что я с ней сделал и зачем.

Прокачиваем умную зарядку Imax B6 - 1

Точность

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

Внутри оно щедро нашпиговано множеством дифференциальных усилителей, мультиплексором, buck-boost регулятором с высоким КПД, имеет хороший корпус, а в сети можно найти открытый исходный код очень неплохой прошивки. При токе зарядки до 5 ампер, им можно заряжать даже автомобильные аккумуляторы на 50А/ч (ток 0.1C). При всем, при этом этом, богатстве, в качестве датчиков тока, здесь используются обычные 1 Вт резисторы, которые, ко всему прочему, работают на пределе своей мощности, а значит, их сопротивление значительно уплывает под нагрузкой. Можно ли доверять такому измерительному прибору? Подув и потрогав руками эти «датчики» сомнения ушли — хочу переделать на шунты из манганина!

Манганин (есть еще константан) — специальный сплав для шунтов, который практически не изменяют своего сопротивления от нагрева. Но его сопротивление на порядок меньше заменяемых резисторов. Так же, в схеме прибора используются операционные усилители для усиления напряжения с датчика до читабельных микроконтроллером значений (я полагаю, верхняя граница оцифровки — опорное напряжение с TL431, около 2,495 вольт).

Моя доработка заключается в том, чтобы впаять шунты вместо резисторов, а разницу в уровнях компенсировать, изменив коэффициент усиления операционных усилителей на LM2904: DA2:1 и DA1:1 (см. схему).

Схема

image

Для переделки нам понадобятся: само устройство оригинал (я описываю переделку оригинала), манганиновые шунты (я взял от китайских мультиметров), ISP программатор, прошивка cheali-charger (для возможности калибровки), Atmel Studio для ее сборки (не обязательно), eXtreme Burner AVR для ее прошивки и опыт по созданию кирпичей успешной прошивке атмеги (Все ссылки есть в конце статьи).
А так же: умение паять SMD и непреодолимое желание восстановить справедливость.

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

image

Резистор R77 создает отрицательную обратную связь. Вместе с R70 они образуют делитель, который задает коэффициент усиления, который можно посчитать примерно так (R77+R70)/R70 = коэффициент усиления. У меня шунт получился около 6,5 мОм, что при токе 5 А составит падение напряжения нем 32,5 мВ, а нам нужно получить 1,96 В, чтобы соответствовать логике работы схемы и ожиданиям её разработчика. Я взял резисторы 1 кОм и 57 кОм в качестве R70 и R77 соответственно. По симулятору получилось 1,88 вольт на выходе, что вполне приемлемо. Так же я выкинул резисторы R55 и R7, как снижающие линейность, на фото они не используются (возможно, это ошибка), а сам шунт подключил выделенными проводами к низу R70, C18, а верх шунта напрямую к "+" входу ОУ.

Прокачиваем умную зарядку Imax B6 - 4

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

Схема для режима разрядки принципиально не отличается, но, так как я сажаю полевик 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-канальный).

Прошивка

Не хотел я писать про это, но меня заставили.

  1. Скачиваем и устанавливаем необходимые материалы (ссылки в конце статьи).
  2. На программаторе распаиваем и ставим перемычку JP3 — это переключит интерфейс в медленный режим. Пока я не поставил перемычку — у меня были проблемы с прошивкой.
  3. Подключаем программатор к устройству, а программатор в комп (картинка ниже — для оригинала устройства! клон подключается иначе):

    Прокачиваем умную зарядку Imax B6 - 5

  4. В программе eXtreme Burner, выбираем наш чип (меню Чип->ATmega32), после чего пробуем прочитать все (Read All). Если все получилось, оригинальную прошивку и EEPROM можно сохранить где-нибуть, на всякий случай.
  5. Теперь попробуем скомпилировать нашу прошивку (это действие не обязательно, можно взять готовую из папки «cheali-chargerhexcheali-charger-imaxB6-original-0.33.hex», в таком случае, переходите к пункту 6).
    Вообще, как и что можно делать, часто пишут в сопроводительной документации, например, про сборку — в файле «building.md».

    В данном случае, порядок такой:

    • установить Atmel Studio и cmake
    • запустить «Atmel Studio Command Prompt» и перейти в папку с
      cheali-charger.
      То есть, к примеру: cd s:cheali-charger
    • выполнить: s:cheali-charger> cmake. -G «Unix
      Makefiles»
    • выполнить: s:cheali-charger> make
    • Файл прошивки должен создастся здесь:
      «s:cheali-chargersrchardwareatmega32targetsimaxB6-originalcheali-charger*.hex»

  6. Загружаем нашу прошивку в eXtreme Burner, после чего, жмякаем Write->Flash. Боже упаси зашить по ошибке «все», например: неправильные фьюзы, которые есть на 3ей вкладке — в этом случае можно потерять доступ для дальнейшей прошивки через ISP, а может, и через другие интерфейсы. Оживить полученный кирпич реально только на высоковольтном параллельном программаторе. На всякий случай, правильные фьюзы: low=3F, high=C5.
  7. Калибровка. Для нее понадобится батарея li-ion из, по крайней мере, 2-х элементов. Порядок калибровки можно прочитать в «README.md». Можно, переставляя ее в сторону по балансному разъему, откалибровать все 6 входов, при этом, первые 2 можно откалибровать отдельно (более точно), в меню экспертной калибровки, про нее написано в «calibration_expert.md».

Немного про мою доработку охлаждения

Полевик VT7, на новом месте, приклеен на термоклей, а его теплоотвод — припаян к медной пластинке:

Прокачиваем умную зарядку Imax B6 - 6

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

Прокачиваем умную зарядку Imax B6 - 7 Прокачиваем умную зарядку Imax B6 - 8 Прокачиваем умную зарядку Imax B6 - 9

Собранная конструкция не помешает стоять прибору на ножках:

Прокачиваем умную зарядку Imax B6 - 10 Прокачиваем умную зарядку Imax B6 - 11

Готовы к прошивке:

Прокачиваем умную зарядку Imax B6 - 12

Я испытал эту переделку в пассивном режиме охлаждения: разряд 20 минут 6-вольтовой Pb-батареи максимальным током 5,5А. Мощность высветилась 30...31Вт. Температура на тепловой трубке, по термопаре, дошла до 91°C, корпус тоже раскалился и, в какой-то момент, экран начал становиться фиолетовым. Я, конечно, сразу прервал испытание. Экран долго не мог прийти в норму, но потом его отпустило.

Теперь уже очевидно, что выносной блок нагрузки, с разъемным соединением, был бы наилучшим решением: в нем нет ограничений на размер радиатора и вентилятора, а сама зарядка получилась бы более компактной и легкой (в поле разряд не нужен).

Надеюсь, что эта статья поможет новичкам быть смелее в экспериментах над беспомощными железяками.
Замечания и дополнения приветствуются.

Предупреждение: описанные модификации, при неумелом применении, могут повредить компоненты зарядки, превратить ее в необратимый «кирпич», а так же привести к снижению надежности устройства и создать риск пожара. Автор снимает с себя ответственность за возможный ущерб, в том числе за зря потраченное время.

Ссылки

Альтернативная прошивка cheali-charger: https://github.com/stawel/cheali-charger
Для компиляции прошивки: Atmel Studio и CMake
Программа-прошивальщик: eXtreme Burner AVR
ISP программатор: USBASP Programmer for ATMEL

Автор: D39

Источник

Поделиться

* - обязательные к заполнению поля