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

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



Точность


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

Внутри оно щедро нашпиговано множеством дифференциальных усилителей, мультиплексором, 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, а верх шунта напрямую к "+" входу ОУ.



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

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

В результате я получил: R50 – шунт 5,7 мОм, R8 и R14 — 430 Ом и 22 кОм соответственно, что дает требуемые 1,5 вольт на выходе при токе через шунт 5 А. Впрочем, я экспериментировал и с большим током — максимум вышло 5,555 А, так что зашил в прошивку ограничение до 5,5 А (в файле «cheali-charger\src\hardware\atmega32\targets\imaxB6-original\HardwareConfig.h»).

По ходу вылезла проблема — зарядник отказался признавать, что он откалиброван (i discharge). Связано это с тем, что для проверки используется не макроопределение MAX_DISCHARGE_I в файле «HardwareConfig.h», а вторая точка калибровки для проверки первой (точки описаны в файле «GlobalConfig.h»). Я не стал вникать в эти тонкости хитросплетения кода и просто вырезал эту проверку в функции checkAll() в файле «Calibrate.cpp».

В результате переделок, получился прибор, который обеспечил приемлемую линейность измерений в диапазоне от 100mA до 5А и который можно было бы назвать измерительным, если бы не одно но: так как я оставил мощный разрядный полевик внутри корпуса (несмотря на улучшенное охлаждение), нагрев платы от него все равно вносит искажение в результат измерения, и измерения немного «плывут» в сторону занижения… Не уверен, кто именно виноват в этом: усилитель ошибки или АЦП микроконтроллера. В любом случае, ИМХО, стоит вынести этот полевик за пределы корпуса и обеспечить там ему достаточное охлаждение (до 94Вт или заменить его на другой подходящий N-канальный).

Прошивка


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

  1. Скачиваем и устанавливаем необходимые материалы (ссылки в конце статьи).

  2. На программаторе распаиваем и ставим перемычку JP3 — это переключит интерфейс в медленный режим. Пока я не поставил перемычку — у меня были проблемы с прошивкой.

  3. Подключаем программатор к устройству, а программатор в комп (картинка ниже — для оригинала устройства! клон подключается иначе):



  4. В программе eXtreme Burner, выбираем наш чип (меню Чип->ATmega32), после чего пробуем прочитать все (Read All). Если все получилось, оригинальную прошивку и EEPROM можно сохранить где-нибуть, на всякий случай.

  5. Теперь попробуем скомпилировать нашу прошивку (это действие не обязательно, можно взять готовую из папки «cheali-charger\hex\cheali-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-charger\src\hardware\atmega32\targets\imaxB6-original\cheali-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, на новом месте, приклеен на термоклей, а его теплоотвод — припаян к медной пластинке:



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



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



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



Я испытал эту переделку в пассивном режиме охлаждения: разряд 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
Share post

Similar posts

Comments 38

    0
    Тоже с недоверием смотрел на эти сопротивления, но пока менять не собрался.
    Прошил cheali-charger для наблюдения за внутренним сопротивлением батареи.
    И к вам вопрос: как калибровали вольтаж? У вас есть мультиметр с 3 знаками после точки при 3+ вольт? Просто я свой откалибровал по двум знакам, и теперь сомниваюсь, не перезаряжаются ли мои lipo (из-за отсутствия третьего знака заряд может быть больше на 0.01, да плюс ошибка, тогда и +0.02. А 4.22 — вроде уже очень плохо для lipo)
      0
      У меня оказался точный резистор на 10 МОм, соединив последовательно с мультиметром (тоже 10 МОм), я получил делитель в 2 раза (и смог мерять до 4 вольт, умножая результат на 2). Так же, желательно, использовать поверенный мультиметр.
        0
        Повезло, что есть именно точный.
        Я пробовал использовать 10МОм делители для осциллографа… Но там точность совсем никуда. Можно не только с третьим знаком ошибиться, но и с первым. Видимо проблема в том что они старше меня и работали на заводе.
          0
          Ну… можно заморочиться и делитель из резисторов поменьше сделать, например, 10 кОм и 11кОм, мультиметр (10 МОм) подключить параллельно нижнему (10 кОм), тогда при 4.2 вольтах на элементе, мультиметр должен показать 1,999 В :)
          Реальное сопротивление резисторов, для расчетов, измеряется омметром на одном диапазоне, тогда точность омметра не должна играть роли, так как пропорции сохранятся.
          Напоминаю формулу для параллельных резисторов 1/(1/A+1/B) = итоговое сопротивление (мультиметр, и паралельный ему резистор 10 кОм).
          Если что, то не понятно, спрашивайте.
            0
            Да, я об этом тоже думал… Но боюсь, что это не добавит реальной точности измерений. Я добьюсь, чтобы мультиметр показал третью цифру, но ей верить особо нельзя будет…
            Впрочем вечером проведу эксперимент с делителем. Может всё не так плохо.

            Прочитал ваш коментарий ниже — и осенило! Я же могу взять 10МОм резистор из второго мультиметра!
              0
              Там нет такого резистора, весь входной делитель в мультиметре — 10 МОм (1 МОм у цешек), можно попробовать соединить 2 одинаковых вольтметра последовательно :)
                0
                Да… Что-то я сглупил.
                С двумя мультиметрами тоже попробую :)
          +2
          Не нравится мне такой вариант: входное сопротивление мультиметра вполне может оказаться не точно 10МОм, а около того. Лучше уж найти два резистора меньшего номинала (если они не окажут влияния на цепь, например, при измерении на выходе ОУ), и построить делитель. А ещу лучше — потратиться на точный мультиметр, если задача не разовая, и предполагаются другие эксперименты с электроникой.
            0
            У мультиметра делитель строится из прецизионных резисторов, иначе нормальной точности не добиться, поэтому, можно считать, что там 10 МОм (или 1 МОм у цешек). Кроме того, я же проверил, как это работает — ровно в 2 раза понижает :)
              0
              Впрочем, ваше замечание тоже верно: сейчас померил входное сопротивление двух цешек прибором «Акип GDM-354A», у первой цешки ровно 1000 кОм, у второй 1997. Это сопротивление не меняется от смены диапазона измерений напряжения на цешке.

              P.S. Так же сопротивление зависит от температуры, дополнительный резистор должен иметь одинаковую температуру с измерительным прибором, чтобы коэффициент деления не менялся.
                0
                По поводу более точного мультиметра: у меня нет уверенности, что внутрь туда китайцы положили еще более точные резисторы делителя.
                А видеть 5 значные цифры, которые мало сходятся с действительностью… это не всем может понравиться :)
                  0
                  Как правило все китайские приборы соответствуют заявленным характеристикам, при чём независимо от цены. Даже какой-нибудь DT-xx за 150 рублей. Правда там они и заявлены не очень…

                  Ну а проверенные, типа UNI-T, VICTOR и т.д. тем более.
                  У меня UT71C, давал знакомому проверить на поверенном оборудовании — говорит в всё «в тютельку» (хотя как он поверял не видел, но, думаю, не обманул)
                  0
                  Нужно оба мультиметра включить. Сначала параллельно на батарейку, чтобы убедиться в одинаковости масштабного коэффициента, затем последовательно. Показания просуммировать. Если будут неодинаковыми — сопротивления разные, но в сумме дадут правильное значение(~ по определению).

                  Чтобы добраться до 4.3 вольт (при Rвну=10М, например), нужно последовательно подключть 1.5М(допустим, допуск 5%) и сумму показаний умножать на 1,075.
                  5% на добавочном внесет примерно 5*(1,5/20)=0.4% неопределенности, так что совсем точный резистор не нужен.
                    0
                    я еще вот о чем подумал — можно взять 2 подсевшие пальчиковые батарейки, суммарным напряжением 2,3 В, и соединить последовательно с мультиметром так, чтобы эти 2,3 вычитались из измеряемого напряжения, вольтметр покажет разницу.
                      0
                      или взять 3 по 1,4 вольта, тогда измерения можно будет провести на пределе 200 мВ — главное не перепутать, складывать или вычитать измеренное :D
                        +1
                        Нет, лучше калибратор с 6-ю знаками после запятой, выставить на нём нужное и вычесть…
                        Да купите уже мультиметр! :)
              0
              А такой апдейт для китайской копии проканает?
                0
                Схема, скорее всего, отличается, так же программатор по другому подключается, но в принципе, можно.
                Для начала нужно попробовать прошить альтернативную прошивку, вот подключение клона:
                  +1
                  Как ни странно но у моей копии аймакса земля у меня было вот так:

                  image

                  И мега была 32L.

                  ЗЫ Надпись на плате V1.3(под кнопками).
                0
                Может быть кто-то подскажет. У меня китайская копия, и после очередной зарядки перестала нормально работать, после выключения на экране заполняются квадратики (картинка стырена с интернетов): www.upload.ee/image/3002181/P1030248.JPG
                Есть еще шансы её заставить работать или выкидываем и покупаем оригинал — самое правильное решение?
                  0
                  Если есть ISP программатор, можно попробовать перепрошить и/или сбросить фьюзы (low=3F, high=C5), еще можно проверить питание контроллера (с интегрального стабилизатора). Проблема может оказаться в том, что там какой-то нестандартный контроллер может быть применен.
                    0
                    По-моему стоит обычная мега8
                    ISP есть, попробую сегодня-завтра. Спасибо!
                    Питание на выходе 7805 нормальное, на входе так же проверю сегодня.
                      0
                      В оригинале стоит atmega32a (я ее один раз уже укокошил при прошивке). Когда менял — плата от фена почернела… поэтому фоток платы с обратной стороны нету :D
                        0
                        Проверю. Помню что мега, а циферку не помню
                    0
                    А дефект постоянный, или появляется иногда?
                    Если иногда — может конденсаторы высохли…
                      0
                      Постоянный… Кондеры проверил, но никаких механических повреждений не заметно.
                    +1
                    А поднять допустимое напряжение питания реально? Мой аналог требует строго до 18В. Ноутбучный БП дает 18.5 и зарядка вопит и не работает.
                      0
                      Проще опустить напряжение БП, правда его придётся вскрыть.
                        +1
                        Присоединяюсь. Надо будет посмотреть как cheali-charger отнесётся к такому. У меня зарядка чуть больше выдаёт — 21В.
                          0
                          Нормально относится, но стрёмновато как-то…
                          +1
                          Если всего на пол вольта понизить — может через диод включить? А диод можно шунтировать кнопкой, чтобы когда пойдет основной заряд, мощность на диоде не терять.
                          Изменять допустимое напряжение в прошивке не рекомендую, так как, похоже, там и так все на пределе работает…
                            0
                            так как, похоже, там и так все на пределе работает…

                            Именно. Я потому и говорю — снизить напряжение на БП вольт до 15ти можно заменой обычного резистора в цепи ОС. Если, конечно, БП не используется с другими устройствами.
                          +1
                            0
                            Спасибо автору за то что добавил ссылки на мой обзор.
                              +1
                              Сделал небольшое дополнение:



                              Запускается и работает от 20 В зарядки от ноутбука, что не может не радовать.
                              +1
                              Нашел обзор уменьшенного и улучшенного аналога: mysku.ru/blog/aliexpress/32004.html
                                0
                                Хороший обзор, побольше бы таких.
                                0
                                Спасибо, ваш обзор сподви обновить прошивку. Правда первичный «сподвиг» был из-за 9 вольтового низкого предела разряда PB аккумулятора. И додумались же… Обновлял через Mini Pro TL866A, правда прошивку вычитать не удалось, устройство 13 года августа месяца.

                                Only users with full accounts can post comments. Log in, please.