Прокачуємо розумну зарядку Imax B6

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



Точність
На початку, моєю метою було збільшення розрядної потужності, щоб виміряти свої батареї для безперебійники і, в перспективі, тренувати їх, не піддаючись ризику передчасної старості (мене, а не акумуляторів). Поганяв пристрій у розібраному вигляді.

Всередині воно щедро нашпиговане безліччю диференціальних підсилювачів, мультиплексором, buck-boost регулятором з високим ККД, має хороший корпус, а в мережі можна знайти відкритий вихідний код дуже непоганий прошивки. При струмі зарядки до 5 ампер, їм можна заряджати навіть автомобільні акумулятори на 50А/год (струм 0.1 C). При всьому, при цьому це, багатстві, в якості датчиків струму, тут використовуються звичайні 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
Для компіляції прошивки: Atmel Studio і CMake
Програма-прошивальщик: eXtreme Burner AVR
ISP програматор: USBASP Programmer for ATMEL

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.