Добрый день участники форума.
Получил на восстановление сборку 4s LiFePO4 аккумулятора, у него стоит контроллер bq20z75. Контроллер был дохлый и на запросы не отвечал, я заменил микросхему. С помощью ардуинки и скрипта с форума ардуино.ру (сегодня их сайт что-то работать перестал вовсе) я подключился к контроллеру и считал инфу:
Спойлер
14:30:03.158 -> Arduino Smart Battery
14:30:03.158 -> Several utilities for working with TI bq20z... IC
14:30:03.198 -> Press Enter...
14:30:06.794 -> Checking communication with the device at address 0x0B...
14:30:07.794 -> The device was found !!!
14:30:07.794 -> ----------
14:30:07.834 -> Select operation:
14:30:07.874 -> 1. Read pack info.
14:30:07.874 -> 2. Pack Reset.
14:30:07.874 -> 3. Unsealing a pack.
14:30:07.874 -> 4. Move pack to Full Access mode.
14:30:07.954 -> 5. Clearing a Permanent Failure.
14:30:07.994 -> 6. Clearing CycleCount.
14:30:07.994 -> 7. Setting current date.
14:30:08.034 -> 8. Writing DesignCapacity, QMAX, Update status, Ra_table.
14:30:08.074 -> 9. Begin the Impedance Track algorithm.
14:30:22.550 -> Pack Info...
14:30:22.550 -> DesignCapacity: 4400 mAh
14:30:22.590 -> FullChargeCapacity: 4266 mAh
14:30:22.630 -> CycleCount: 0
14:30:22.630 -> Date: 1980.0.0
14:30:22.670 -> DesignVoltage: 14400 mV
14:30:22.670 -> ManufName: Texas Inst.
14:30:22.710 -> DeviceName: bq20z75
14:30:22.710 -> SerialNumber: 0001 Hex
14:30:22.750 -> ChargingCurrent: 4000 mA
14:30:22.750 -> ChargingVoltage: 16800 mV
14:30:22.790 -> DeviceChemistry: LION
14:30:22.830 -> Temperature: 25.40 C
14:30:22.870 -> Voltage: 13158 mV
14:30:22.870 -> Current: 4294967291 mA
14:30:22.910 -> RelativeSOC: 1 %
14:30:22.910 -> AbsoluteSOC: 1 %
14:30:22.910 -> RemainingCapacity: 4 mAh
14:30:22.950 -> VCELL4: 3303 mV
14:30:22.950 -> VCELL3: 3306 mV
14:30:22.990 -> VCELL2: 3342 mV
14:30:23.030 -> VCELL1: 3207 mV
14:30:23.030 -> SpecificationInfo: 0031 Hex
14:30:23.070 -> Battery Status: 0AD0 Hex
14:30:23.070 -> TDA|RCA|INIT|DSG|FD|
14:30:23.070 -> Operation Status: 8040 Hex
14:30:23.110 -> PRES|DSG|
14:30:23.150 -> Unsealed
14:30:23.150 -> Pack in Full Access mode
14:30:23.190 -> UnSealKey: 04143672 Hex
14:30:23.230 -> FullAccessKey: FFFFFFFF Hex
14:30:23.270 -> PFKey: 26731712 Hex
14:30:23.270 -> MaxError: 100 %
14:30:23.270 -> SafetyStatus: OK
14:30:23.270 -> PFStatus: OK
14:30:23.310 -> Charging Status: 0200 Hex
14:30:23.350 -> FCHG|
14:30:23.350 -> FETControl: OK
14:30:23.430 -> Update Status: 0
14:30:23.430 -> Qmax Cell0: 4400
14:30:23.470 -> Qmax Cell1: 4400
14:30:23.470 -> Qmax Cell2: 4400
14:30:23.470 -> Qmax Cell3: 4400
14:30:23.470 -> Qmax Pack : 4400
14:30:23.550 -> Cell0 R_a flag: FF55
14:30:23.670 -> Cell1 R_a flag: FF55
14:30:23.790 -> Cell2 R_a flag: FF55
14:30:23.870 -> Cell3 R_a flag: FF55
14:30:23.870 -> Device Type: 0750 Hex
14:30:23.910 -> Firmware Version: 0181 Hex
14:30:23.950 -> Hardware Version: 00A6 Hex
14:30:23.990 -> Manufacturer Status: 810A Hex
14:30:24.030 -> FET1|STATE0|
14:30:24.030 -> Chemistry ID: 0100 Hex
14:30:24.110 -> BatteryMode: 6081 Hex
14:30:24.110 -> ChgM|AM|CF|ICC|
14:30:24.110 -> ----------Затем проделал операции которые были там описаны - записал емкость, дату и тд. В итоге получил такую картину:
Спойлер
15:38:01.194 -> Pack Info...
15:38:01.194 -> DesignCapacity: 4400 mAh
15:38:01.234 -> FullChargeCapacity: 4255 mAh
15:38:01.234 -> CycleCount: 0
15:38:01.234 -> Date: 2023.2.7
15:38:01.274 -> DesignVoltage: 14400 mV
15:38:01.274 -> ManufName: Texas Inst.
15:38:01.313 -> DeviceName: bq20z75
15:38:01.353 -> SerialNumber: 0001 Hex
15:38:01.392 -> ChargingCurrent: 4000 mA
15:38:01.392 -> ChargingVoltage: 16800 mV
15:38:01.430 -> DeviceChemistry: LION
15:38:01.430 -> Temperature: 26.50 C
15:38:01.470 -> Voltage: 14225 mV
15:38:01.470 -> Current: 4294967290 mA
15:38:01.510 -> RelativeSOC: 32 %
15:38:01.550 -> AbsoluteSOC: 31 %
15:38:01.550 -> RemainingCapacity: 1357 mAh
15:38:01.590 -> VCELL4: 3374 mV
15:38:01.630 -> VCELL3: 3514 mV
15:38:01.630 -> VCELL2: 4006 mV
15:38:01.630 -> VCELL1: 3329 mV
15:38:01.630 -> SpecificationInfo: 0031 Hex
15:38:01.670 -> Battery Status: 00C0 Hex
15:38:01.710 -> INIT|DSG|
15:38:01.710 -> Operation Status: 8043 Hex
15:38:01.748 -> PRES|DSG|VOK|QEN|
15:38:01.788 -> Unsealed
15:38:01.788 -> Pack in Full Access mode
15:38:01.828 -> UnSealKey: 04143672 Hex
15:38:01.828 -> FullAccessKey: FFFFFFFF Hex
15:38:01.868 -> PFKey: 26731712 Hex
15:38:01.868 -> MaxError: 100 %
15:38:01.908 -> SafetyStatus: OK
15:38:01.908 -> PFStatus: OK
15:38:01.946 -> Charging Status: 0200 Hex
15:38:01.986 -> FCHG|
15:38:01.986 -> FETControl: 06 Hex
15:38:01.986 -> CHG|DSG|
15:38:02.066 -> Update Status: 4
15:38:02.066 -> Qmax Cell0: 4400
15:38:02.106 -> Qmax Cell1: 4400
15:38:02.106 -> Qmax Cell2: 4400
15:38:02.106 -> Qmax Cell3: 4400
15:38:02.106 -> Qmax Pack : 4400
15:38:02.186 -> Cell0 R_a flag: FF55
15:38:02.306 -> Cell1 R_a flag: FF55
15:38:02.426 -> Cell2 R_a flag: FF55
15:38:02.546 -> Cell3 R_a flag: FF55
15:38:02.546 -> Device Type: 0750 Hex
15:38:02.546 -> Firmware Version: 0181 Hex
15:38:02.586 -> Hardware Version: 00A6 Hex
15:38:02.626 -> Manufacturer Status: 010A Hex
15:38:02.664 -> STATE0|
15:38:02.664 -> Chemistry ID: 0100 Hex
15:38:02.744 -> BatteryMode: 6081 Hex
15:38:02.744 -> ChgM|AM|CF|ICC|
15:38:02.784 -> ----------Там есть несколько ошибок суть которых я не совсем понимаю, если кто подскажет будет хорошо.
Впрочем вопрос даже не в ошибках, а в chemistry id, этот параметр отвечает за допустимые напряжения заряда-разряда и определяется типом АКБ, я нашел на TI таблицу с ID акб, нашел там для LiFePO4 код - 0400, но встал вопрос, а как его записать на контроллер? Согласно документации этот регистр доступен только на чтение:
ИМХО, новую вы не настроите ардуиной. Нужно EV2300 и bqevsw и очень обширные знания в структуре прошивки/конфигурации, чтобы изменить/подогнать новую прошивку под ваши банки(LiFePO4). Если где то накосячите, и получите непредвиденную ситуацию, ответственность за нанесённый ущерб владельцу(за акб и оборудование в котором он установлен), готовы взять на себя?
В идеале, найти такой же рабочий акб, слить прошивку(*.senc) с него с помощью EV2300, и залить в ваш новый чип.
Посмотрев отчеты под спойлерами, печально как то всё с вашей ардуиной, вернее с алгоритмом (((
- не увидел чтобы был пункт сохранения оригинального дампа до всех изменений. Пусть он(чип) и новый, но в него что-то уже залито.
- сравниваем странные данные:
то что было:
14:30:22.870 -> Voltage: 13158 mV
14:30:22.870 -> Current: 4294967291 mA
14:30:22.910 -> RelativeSOC: 1 %
14:30:22.910 -> AbsoluteSOC: 1 %
14:30:22.910 -> RemainingCapacity: 4 mAh
14:30:22.950 -> VCELL4: 3303 mV
14:30:22.950 -> VCELL3: 3306 mV
14:30:22.990 -> VCELL2: 3342 mV
14:30:23.030 -> VCELL1: 3207 mV
стало:
15:38:01.470 -> Voltage: 14225 mV
15:38:01.470 -> Current: 4294967290 mA
15:38:01.510 -> RelativeSOC: 32 %
15:38:01.550 -> AbsoluteSOC: 31 %
15:38:01.550 -> RemainingCapacity: 1357 mAh
15:38:01.590 -> VCELL4: 3374 mV
15:38:01.630 -> VCELL3: 3514 mV
15:38:01.630 -> VCELL2: 4006 mV
15:38:01.630 -> VCELL1: 3329 mV
Про ток вообще молчу, в свободном состоянии там должно быть 0 mA.
Напряжения общее до и после ну очень сильно различаются. У вас там что с банками, что общее напряжение скакнуло на 1 вольт и разбежались напряжения на секциях до критических значений. И причем разница во времени м/у отчетами час с небольшим.