Общение с батареями от ноутбука на чипах bq20z

если ты не видишь отличий, программирование не твоё, у тебя фазенда огромная, работы непочатый край, займись благоустройством

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

или ты назаменял

word(0x0001) на (word)(0x0001)
и
byte(0x10) на (byte)(0x10)

и от этого внезапно код стал

у тебя есть прекрасная возможность показать кто здесь дурак, берёшь скетч первого поста и компилируешь для:

 Nologo ESP32C3 Super Mini, ESP32S3, RP2040, ESP8266, STM32F103 (STM Core) - компилируется

ну не будет компилировать)) это ты называешь

только в отличии от твоей порнографии, мастер йода, достаточно в 110 строке указать явный тип

void ReadSMB(uint16_t comm) {

я честно пытался понять, чем же код от ТС отличается, а оно вон как оказывается.

Вот видишь, два часа всего тебе понадобилось, чтобы разобраться, а вот если бы не пнул тебя в строгом соответствии с “Психологическим Айкидо” Михаила Литвака, не надавил на профнепригодность ты бы решение на гора не выдал, осталось только в железе проверить, работает, как задумывалось @Komandir или нет.
Польза сообществу точно есть!

сравниваем, что там компилятор выдал:
твой код:

. Variables and constants in RAM (global, static), used 29140 / 80192 bytes (36%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1504     initialized variables
╠══ RODATA   1444     constants       
╚══ BSS      26192    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 60411 / 65536 bytes (92%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     27643    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 247768 / 1048576 bytes (23%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     247768   code in flash   

мой код:

. Variables and constants in RAM (global, static), used 29140 / 80192 bytes (36%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1504     initialized variables
╠══ RODATA   1444     constants       
╚══ BSS      26192    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 60411 / 65536 bytes (92%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     27643    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 247736 / 1048576 bytes (23%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     247736   code in flash   

у тебя есть рекурсия однако

Приехала Arduino Nano из Китая. Установил Arduino IDE из магазина Microsoft Store, так как к официальному сайту нет доступа. Залил скетч, размещённый Komandir в шапке этой темы, подключил батарею от нетбука Asus X101 с контроллером BQ20z45.

Вот информация из батареи;

Pack Info…

DesignCapacity: 2600 mAh
FullChargeCapacity: 2457 mAh
CycleCount: 129
Date: 2012.6.12
DesignVoltage: 10800 mV
ManufName: AS15CRF3iB
DeviceName: X101-26
SerialNumber: 1C33 Hex
ChargingCurrent: 0 mA
ChargingVoltage: 0 mV
DeviceChemistry: LGI0
Temperature: 23.70 C
Voltage: 12290 mV
Current: 0 mA
RelativeSOC: 100 %
AbsoluteSOC: 95 %
RemainingCapacity: 2454 mAh
VCELL4: 0 mV
VCELL3: 4100 mV
VCELL2: 4097 mV
VCELL1: 4093 mV
SpecificationInfo: 0031 Hex
Battery Status: 48C0 Hex
TCA|TDA|INIT|DSG|
Operation Status: 6443 Hex
FAS|SS|LDMD|DSG|VOK|QEN|
Sealed
Device Type: 0450 Hex
Firmware Version: 0105 Hex
Hardware Version: 00A6 Hex

Тут вроде бы все нормально, кроме двух флагов TCA и TDA. Батарея Sealed. Как сбросить эти флаги? Надо ли получать полный доступ к батарее, подбирая пароль?

Стандартные/дефолтные ключи из скетча не подходят ?

Что бы сработали обходные ключи - надо разряжать …

Стандартные не подходят. Разряжать, чтобы остаточная емкость стала равной нулю?

Должен быть 0

Разрядил, вот отчёт:

Pack Info…
DesignCapacity: 2600 mAh
FullChargeCapacity: 2381 mAh
CycleCount: 130
Date: 2012.6.12
DesignVoltage: 10800 mV
ManufName: AS15CRF3iB
DeviceName: X101-26
SerialNumber: 1C33 Hex
ChargingCurrent: 0 mA
ChargingVoltage: 0 mV
DeviceChemistry: LGI0
Temperature: 24.70 C
Voltage: 9049 mV
Current: 0 mA
RelativeSOC: 0 %
AbsoluteSOC: 0 %
RemainingCapacity: 0 mAh
VCELL4: 0 mV
VCELL3: 3055 mV
VCELL2: 2945 mV
VCELL1: 3050 mV
SpecificationInfo: 0031 Hex
Battery Status: 4AC0 Hex
TCA|TDA|RCA|INIT|DSG|
Operation Status: 6443 Hex
FAS|SS|LDMD|DSG|VOK|QEN|
Sealed
Device Type: 0450 Hex
Firmware Version: 0105 Hex
Hardware Version: 00A6 Hex

Ещё один флаг поднялся, RCA. Ну он, наверное, и должен был подняться. Дальше какие действия?

Вставил ключи в строки 28 и 29 вместо тех, которые там были, скомпилировал, залил. Не подошли. После 3 и 1 батарея Sealed.

Pack Info…
DesignCapacity: 2600 mAh
FullChargeCapacity: 2318 mAh
CycleCount: 131
Date: 2012.6.12
DesignVoltage: 10800 mV
ManufName: AS15CRF3iB
DeviceName: X101-26
SerialNumber: 1C33 Hex
ChargingCurrent: 0 mA
ChargingVoltage: 0 mV
DeviceChemistry: LGI0
Temperature: 23.60 C
Voltage: 9153 mV
Current: 0 mA
RelativeSOC: 0 %
AbsoluteSOC: 0 %
RemainingCapacity: 0 mAh
VCELL4: 0 mV
VCELL3: 3073 mV
VCELL2: 3046 mV
VCELL1: 3034 mV
SpecificationInfo: 0031 Hex
Battery Status: 4AC0 Hex
TCA|TDA|RCA|INIT|DSG|
Operation Status: 6443 Hex
FAS|SS|LDMD|DSG|VOK|QEN|
Sealed
Device Type: 0450 Hex
Firmware Version: 0105 Hex
Hardware Version: 00A6 Hex

Отчёты НЕ СОВПАДАЮТ !!!

Коды генерируются по КОНКРЕТНОЕ состояние батареи. Если Вы ею пользовались, то и коды нужны ДРУГИЕ !