Меню

Imax b6ac v2 калибровка напряжения

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

Воистину говорят: лень — двигатель прогресса! Вот и мне, взбудоражила голову мысль, автоматизировать процесс измерения и тренировки кислотных аккумуляторных батарей. Ведь кто, в здравом уме, будет, в наш век умных микросхем, корпеть над аккумулятором с мультиметрами и секундомером? Наверняка, многие знают «народное» зарядное устройство 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-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-канальный).

Прошивка

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

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

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

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

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

Теперь попробуем скомпилировать нашу прошивку (это действие не обязательно, можно взять готовую из папки «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»

  • Загружаем нашу прошивку в eXtreme Burner, после чего, жмякаем Write->Flash. Боже упаси зашить по ошибке «все», например: неправильные фьюзы, которые есть на 3ей вкладке — в этом случае можно потерять доступ для дальнейшей прошивки через ISP, а может, и через другие интерфейсы. Оживить полученный кирпич реально только на высоковольтном параллельном программаторе. На всякий случай, правильные фьюзы: low=3F, high=C5.

  • Калибровка. Для нее понадобится батарея li-ion из, по крайней мере, 2-х элементов. Порядок калибровки можно прочитать в «README.md». Можно, переставляя ее в сторону по балансному разъему, откалибровать все 6 входов, при этом, первые 2 можно откалибровать отдельно (более точно), в меню экспертной калибровки, про нее написано в «calibration_expert.md».
  • Немного про мою доработку охлаждения

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

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

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

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

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

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

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

    Читайте также:  Какое напряжение для лампового усилителя

    Источник

    Imax b6ac v2 калибровка напряжения

    Добавлено (25.11.2015, 17:28)
    ———————————————
    Вот моя тема, на первом фото контроллер- что это за зверь мне так и не удалось узнать

    Добавлено (28.01.2016, 18:03)
    ———————————————
    Запустился, но по напряжениям врет конкретно. Может какой мануал где есть по настройке?

    Тут видео типа, как китайцы настраивают
    https://cloud.mail.ru/public/Ha1e/ZPqUTuxUw
    Вот он во время тестирования кнопку третью нажал и появились показатели, может оно?

    От на просторах интернета Андрей из Бийска написал :

    КАСАЕТСЯ ВСЕХ КИТАЙСКИХ ЗАРЯДОК IMAX B6 НА НЕИЗВЕСТНОМ (У КОТОРОГО ЗАТЕРТО НАЗВАНИЕМ) ПРОЦЕССОРЕ.
    Для тех кто попал в сервис режим и не знает что делать дальше.

    Ну вот и я как и все кто хотел подешевле стал обладателем этого китайского чуда- клона imax b6 на неизвестном процессоре, с неизвестной
    прошивкой да еще и без коммутатора 4051. Лучше или хуже хрен знает , говорят с прогревом данная микросхема дрейфует и измеренное
    напряжение плывет. У меги 32 ножек не хватало или АЦП-шек, а тут неизвестный процессор и вроде все хватает. Пошли китайцы по упрощенному
    пути. Ну и как всегда хотелось улучшить китайское творение. Стандартное сервис меню в этом клоне не доступно. Но поигравшись с кнопками
    и включением и выключением- я , как и все попал в него. И думал что ничего страшного- ничего трогать не буду- просто выйду из него. Но
    выхода из него нет, только выключение. Со всеми сброшенными настройками и константами получили почти кирпич. А нехрен лазить шаловливыми
    ручонками. Но ладно — а что же делать дальше?

    В двух словах- что произошло. При нажатии двух кнопок stop+ enter и подачи питания зарядка пытается откалиброватся от подключенных
    батарей через семи контактный разъем для балансировки на 6 батарей(6S). Это понятно. Далее при включении — она пытается замерить напряжение
    со всех банок под нагрузкой ( около 24,5) вольт, включается разрядка на 10 секунд. Это у всех одинаково. А вот далее у всех по разному
    — я считаю это баг в программе. Она пытается измерить напряжение и поставить на разрядку одну- две — три — четыре- пять — или шесть банок в зависимости от того какое значение стояло в разрядке Lipo(1s)(2s)(3S) и т.д. до момента нажатия кнопок входа в сервис и если условие не соблюдается — виснет на этом, не реагируя на кнопки. Наша задача сделать так- что бы все условия соблюдались — и о чудо — зарядка оживает, выходит из
    меню и реагирует на кнопки, но могут быть сбиты константы и она неправильно все будет измерять.
    Теперь о том что нужно сделать для этого правильно и что бы не пошел дымок из зарядки.
    1. Раздобыть где то 6 литиевых батарей 3.7-4.2 вольта и зарядить их. Идеально до одинакового значения. Я 6 штук соединил параллельно и
    подал на них с блока питания 4.1-4.2 вольта контролируя ток чтоб не превышал. Вообщем не важно как вы их зарядите. желательно одинаково.
    2. Соединить их последовательно и подключить к разъему балансира (6S) плюс питание как обычно вы их заряжаете.
    3. Входим в сервис режим нажатием двух кнопок stop+ enter. На дисплее отобразится вольтаж по банкам что то около 3.2 — 3.5 вольт что
    нормально, несмотря на то что батареи заряжены на 4.2 вольта.
    4. Выключаем зарядку — Теперь ВНИМАНИЕ — если не хотите чтоб пошел дым из нее отключите пока разъем (6S). Неизвестно в каком режиме она
    включится после выключения.
    5. Зарядка включится на разряд всех 6(должна 6, а может и 1 и 2 и т.д.) банок — 10 сек, после этого она захочет замерить напряжение их всех.
    6. Это как раз тот баг который надо обойти.
    Когда она сначала разряжает батарею(или несколько) 10 секунд- она пишет на дисплее сколько батарей- если(6S) — то ничего делать не нужно, а вот если 1S-2S-3S-4S-5S красный, плюсовой крокодил ставим на плюс того аккумулятора который указан и через 10 секунд (как на дисплее высветится) подключаем на последний ( на 22 вольта, на все аккумуляторы). Если все сделано правильно и вы успели- зарядка уйдет в балансировку 6 банок (так задумал производитель при подключенном балансировочном разъеме) или в ошибку. Но ОНА ЗАРАБОТАЕТ. То есть будет реагировать на кнопки входить в меню и т.д. Но может врать напряжение. Если не успели — пробуйте еще раз.

    Читайте также:  Блок питания не работает есть напряжение

    Например – уже были в сервис режиме и измерили напряжение всех аккумуляторов. При следующем включении пишет РАЗРЯДКА и 1S в левом нижнем углу делаем так:
    Балансировочный разъем пока не подключаем. Красный и черный крокодил на первом аккумуляторе, Включаем зарядка включается на разряд 10 сек -держим 10 секунд, на разрядке 4 вольта, а когда разряд кончится и начнется измерение всех банок – (на дисплее меняется надпись) есть 1 секунда красный переносим на все аккумуляторы -то есть подаем 22 вольта на нее. Она выполнит тест и выйдет из режима в балансировку или ошибку.
    И заработает.

    Далее надо калибровать. Для тех кто не совсем понял:

    Как задумал калибровку производитель — это мои домыслы. Выставляем в меню LiPo везде (6S). Подключаем 6 заряженных и сбалансированных (
    эталонных) аккумуляторов на заряд + балансир. Нажимаем 2 кнопки в меню. Смотрим надписи по банкам. Выключаем. Ничего не отсоединяя
    включаем. Она все делает сама и если видит в конце разбалансировку аккумуляторов встает в режим балансировки, из которого выходим кнопкой
    стоп. Все.

    Теперь когда мы знаем как калибровать. Выставляем в LIPO везде 6S. Калибруем.
    Как я калибровал. Да все просто — после того как оживил зарядку — даже если она врет напряжение то все равно ею можно разрядить или
    зарядить все 6 аккумуляторов, контролируя по эталонному вольтметру. Изменяя общее напряжение на всех аккумуляторах от 24,2 до 25,2 зарядив или разрядив их входим в сервис. Вкл. Выкл. Вкл. ожидаем конца — смотрим напряжение на дисплее если оно отличается от вольтметра и показывает больше чем на вольтметре, разряжаем аккумуляторы на 0,2-0,4 вольта и производим повторную калибровку. Я зарядил их до 25.2 вольта и потихоньку калибровал разряжая. У меня получилось около 24.8 вольт на аккумуляторах по эталонному вольтметру, на дисплее 24,9- 25,2. Что считаю достаточным. Небольшой запас в минус 0,2-0,4 вольта на погрешности. Я калибровал по 1 литиевому аккумулятору , добившись на аккумуляторе 4,17 по эталонному вольтметру и на дисплее зарядки 4,16.

    Из за чего может пойти дым.

    1. Из за переполюсовки сразу- со всеми резисторами. В сервис режиме нет проверки на переполюсовки. А калибровка происходит под нагрузкой через 20 омные резисторы и 0.5 тоже да еще 25вольт от лития. Пшик — и нет зарядки. шина 120 ом горит сразу причем вместе с дорожками.
    2.Не отключенный разъем балансировки при выходе из 1(первого) сервиса ( черт его знает что она делает при первом включении и какие
    параметры у вас ранее стояли, вы ведь случайно как и я в сервис режим попали =)) )
    3. Когда я долго разряжал все 6 банок с 25.2 до 24 вольт на не откалиброванной зарядке — сгорел (почему-то z44 и был тут же заменен на
    IRFz3205 (по параметрам в 2 раза лучше), полевик заряда(вот тут я вообще не понял почему) пару мелких транзисторов ну и конечно 0,5
    резистор. (похоже был плохой контакт в балансировочном разъеме).
    4. Перепутаете что нибудь в балансировочном разъеме, отвалится контакт одной из батарей или силовой +или – отвалится- может пойти дымок.

    И еще самое главное — В РАЗЪЕМЕ (6S) должен быть хороший контакт. При плохом контакте зарядку невозможно откалибровать, она меряет напряжение под нагрузкой!
    Ну вот как-то так.
    ЭТО НЕ МОЁ ОДИН ПАСАН В ЭТОМ ФОРУМЕ ПОДСКАЗАЛ

    Добавлено (29.01.2016, 17:03)
    ———————————————
    И наверное при калибровке надо давать строго такое напряжение, как указывается на дисплее. Типа 3,7*6=22,2В. А то я подал полностью заряженные батареи, и тогда он мне еще дальше ушел в напряжениях. Теперь когда цепляю батарею аккумуляторов, говорит — маловато будет. Весто 25вольт показывает 15.

    Добавлено (01.02.2016, 00:01)
    ———————————————
    Вроде бы разобрался. По видео посмотрел настройку. Как раз батареи с ноута попали, разброс счас около десятой доли. Хотя вопрос, как точно китайский тестер показывает.
    Пробовал АКБ свинцовый от упса — точно почти тоже.
    Раньше пробовал балансир от БП делать. Резисторами по 160Ом делал делитель. Нельзя так делать. При юстировке напряжение падало на балансире до 1,5 вольта на элемент. Значит или батарею элементов, или БП и на нем делитель из резисторов Ом по 5 где то, чтоб не было большой просадки.

    Добавлено (12.02.2016, 23:23)
    ———————————————
    Он что емкость меряет не в милиамперчасах? А в милиамперстоминутах? Во всяком случае так прикидываю получается.

    Источник

    Adblock
    detector