Прошивка клону IMAX B6 (ATmega32A) на cheali-charger через USBASP
Китайський клон зарядки IMAX B6 на мікроконтролері ATmega32A можна перепрошити відкритою прошивкою cheali-charger. Потрібен лише програматор USBASP за долар. Як ми це зробили: драйвер, підключення, резервна копія заводської прошивки, запис нової і як повернути все назад.
Що в нас було
- Клон зарядки IMAX B6 «Lipro Balance Charger». У 2017 році він коштував близько 15 $.
- Програматор USBASP з AliExpress за 1,2 $.
- Компʼютер з Windows 8.1 (64 біти). Під Linux драйвер для USBASP не потрібен, решта кроків та сама.
Перевірте, на чому зібрано плату. На нашій стоїть ATmega32A у корпусі TQFP-44 і кварц на 16 МГц. Саме під таку плату й зроблено cheali-charger. Якщо у вас інший мікроконтролер, ця інструкція вам не підходить.
Програматор і драйвер
USBASP — найдешевший програматор для AVR. Під Windows йому потрібен драйвер. Ставили його програмою Zadig (zadig.akeo.ie): у списку пристроїв вибрати «USBasp» (USB ID 16C0:05DC), драйвер — libusb-win32, кнопка встановлення.
Після цього жовтий знак оклику в диспетчері пристроїв зникає.
⚠ Перемичку живлення на USBASP поставте на 5 В. ATmega32A на цій платі працює від 5 В.
Підключення до плати
Біля мікроконтролера на платі є ряд контактів для програмування (ISP). З'єднуємо їх із роз'ємом USBASP «один до одного», нічого не перехрещуючи:
| Сигнал | Роз'єм USBASP (10 контактів) | Вивід ATmega32A (TQFP-44) |
|---|---|---|
| MOSI | 1 | 1 |
| MISO | 9 | 2 |
| SCK | 7 | 3 |
| RESET | 5 | 4 |
| VCC (5 В) | 2 | 5 |
| GND | 4, 6, 8, 10 | 6 |
Підписи на гребінці плати бувають різні, тож продзвоніть мультиметром кожен контакт до виводу мікроконтролера з таблиці. Хвилина роботи, а помилку відразу видно.
Крок 1. Зберегти заводську прошивку
Без цієї копії повернутись на заводську прошивку буде неможливо. Програма — avrdude (ми брали версію 6.3; вона входить до складу Arduino IDE або є на сторінці проєкту). Одна команда читає все: flash, EEPROM і обидва байти фьюзів:
avrdude -p atmega32 -c usbasp -U flash:r:flash.hex:i -U eeprom:r:eeprom.hex:i -U lfuse:r:lfuse.hex:h -U hfuse:r:hfuse.hex:h
Що має бути у виводі:
Device signature = 0x1e9502 (probably m32). Це ATmega32 або ATmega32A: у них однаковий підпис. Якщо підпис інший або нулі, перевірте дроти й живлення.- Наприкінці —
Fuses OK (E:FF, H:C9, L:3F). Фьюзи ми не змінювали і вам не радимо: прошивка cheali-charger працює з тими, що є.
Збережіть усі чотири файли. EEPROM теж важливий: у ньому калібрування саме вашої зарядки.
Крок 2. Записати cheali-charger
Прошивку беремо з репозиторію проєкту: github.com/stawel/cheali-charger. Інструкція з прошивання — у docs/flashing.md. У 2017 році ми брали файл із теки hex/unstable. Там лежать окремі файли під різні варіанти плати, тож беріть файл саме під свою.
avrdude -p atmega32 -c usbasp -U flash:w:cheali-charger.hex:a
avrdude сам стирає мікросхему, записує й звіряє. У нас записалось 30 810 байтів: запис тривав близько 16 секунд, звірка — 9. Наприкінці — 30810 bytes of flash verified.
Після перезапуску зарядка показала нове меню cheali-charger.
Крок 3. Калібрування — обов'язково
⚠ Після нової прошивки зарядку треба відкалібрувати. Без калібрування напругу на банках вона міряє неточно, а для літієвих акумуляторів похибка навіть у кілька десятків мілівольт означає перезаряд. Порядок — у посібнику cheali-charger (у репозиторії проєкту). Знадобиться мультиметр, якому ви довіряєте.
Поки зарядка розібрана, заодно перевірте термопасту між силовими транзисторами і термопрокладкою. На клонах її часто немає зовсім.
Як повернути заводську прошивку
Ті самі файли з кроку 1, у зворотному напрямку:
avrdude -p atmega32 -c usbasp -U flash:w:flash.hex:i -U eeprom:w:eeprom.hex:i
Що далі
Ми плануємо власну прошивку для цієї зарядки, з тим, чого нам бракує в наявних. Це буде окрема стаття.
Журнал змін статті
| Дата | Що змінилось |
|---|---|
| 07.11.2026 | Статтю переписано: таблиця підключення ISP, команди avrdude, калібрування, повернення заводської прошивки; фото з архіву 2017 року. |
| 14.04.2017 | Перша версія на старому сайті. |