我正在使用 BQ27220、并从2016年4月起尝试遵循 SLUUBD4.pdf 中提到的示例。 但是、由于设计容量保持在出厂默认值3000mAh、因此器件似乎没有按照假设的那样做出反应。 以下是数据方案:
时间[s]、数据包 ID、地址、数据、读取/写入、ACK/NAK
0.000057800000000、0、0xAA、0x00、写入、ACK
0.000189000000、0、0xAA、0x14、写入、ACK
0.00036690000.0、0xAA、0x04、写入、ACK
0.0056482000000001、0xAA、0x00、写入、ACK
0.0057794000000001、0xAA、0x72、写入、ACK
0.005956400000000、1、0xAA、0x36、写入、ACK
0.020046800000000、2、0xAA、0x00、写入、ACK
0.0201784000000002、0xAA、0xFF、写入、ACK
0.020356400000000、2、0xAA、0xFF、写入、ACK
0.0256432000000003、0xAA、0x00、写入、ACK
0.0257742000000003、0xAA、0xFF、写入、ACK
0.0259512000000003、0xAA、0xFF、写入、ACK
0.0400704000000004、0xAA、0x00、写入、ACK
0.0402014000000004、0xAA、0x90、写入、ACK
0.0403784000000004、0xAA、0x00、写入、ACK
0.140030800000000、5、0xAA、0x3B、写入、ACK
0.1406142000000006、0xAB、0x04、读取、NAK
0.1500292000000007、0xAA、0x3E、写入、ACK
0.1501602000000007、0xAA、0x9F、写入、ACK
0.160053800000000、8、0xAA、0x3F、写入、ACK
0.160184800000000、8、0xAA、0x92、写入、ACK
0.1700274000000009、0xAA、0x60、写入、ACK
0.17081940000000010、0xAB、0xA1、读取、NAK
0.180028000000000、11、0xAA、0x61、写入、ACK
0.18065520000000012、0xAB、0x24、读取、NAK
0.19004540000000013、0xAA、0x40、写入、ACK
0.19093540000000014、0xAB、0x0F、读取、NAK <-设计电容 MSB
0.19099790000.15、0xAA、0x41、写入、ACK
0.19178720000000016、0xAB、0xCB、读取、NAK <-设计电容 LSB
0.200025600000000、17、0xAA、0x40、写入、ACK
0.200156600000000、17、0xAA、0x04、写入、ACK
0.20036940000000018、0xAA、0x41、写入、ACK
0.200555400000000、18、0xAA、0xB0、写入、ACK
0.220095000000.19、0xAA、0x60、写入、ACK
0.220226000000000、19、0xAA、0xC7、写入、ACK <-校验和新
0.23007840000000020、0xAA、0x61、写入、ACK
0.230209600000000、20、0xAA、0x24、写入、ACK <-保持长度
0.24004540000000021、0xAA、0x00、写入、ACK
0.240176600000000、21、0xAA、0x91、写入、ACK
0.240353600000000、21、0xAA、0x00、写入、ACK
0.340043400000000、22、0xAA、0x3B、写入、ACK
0.34062680000000000、23、0xAB、0x00、读取、NAK
0.35002020000000024、0xAA、0x00、写入、ACK
0.350151600000000、24、0xAA、0x30、写入、ACK
0.350329600000000、24、0xAA、0x00、写入、ACK
校验和计算公式为:
温度=(0xFF - Old_Chksum - Old_DC_MSB - OW_DC_LSB)& 0xFF;=(0xFF - 0xA1 - 0x0F - 0xCB)& 0xFF = 0x84
new_ChkSum = 0xFF -(Temp + 0x04 + 0xB0)& 0xFF);= 0xFF - 0x38 = 0xC7
尽管读取了0x0FCB (4043)、寄存器(0x3C 和0x3D)中的值仍然是0x0BB8?
关于如何更改代码以便更改设计容量的任何想法?