This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BQ27220:器件中的配置未更改

Guru**** 2343770 points
Other Parts Discussed in Thread: BQ27220
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/630032/bq27220-configuration-not-changed-in-device

器件型号:BQ27220

SLUUBD4.pdf 中第65页的示例自2016年4月起一直被遵循、但是、由于设计容量保持在出厂默认值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 (3000)?

有关如何更改设计容量的任何帮助?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ole、
    请参阅下面的应用手册以了解详情。
    www.ti.com/.../slua801
    谢谢
    Onyx
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试按照 slua801中第5页描述的示例进行操作、但设计容量保持不变。
    应该提到的是、系统没有运行 Linux、因此代码并不完全可比、尽管 I2C 线路上的信号是... 尽管我不确定校验和是否与数据相关-是否有方法通过状态寄存器检查校验和是否正确?
    或者、我们是否同意 BQ27220的值为(相对于 SLUA801中的第5页):"DC_Station"= 0x3E (BQ27421中为0x52)、DC_State_length 保持在64字节(BQ27220中为38字节长=> 64)。 由于长度为64字节、寄存器0x61 (MACDataLen)不应用于任何计算和校验和。 寻址字节顺序为 MSB、LSB 或? -地址0x929F 作为(在 SLUUDB4的第65页中)地址提供:0x3E = 0x9F (LSB)、 地址:0x3F = 0x92 (MSB)、但是同一张表中的设计容量为:地址:0x40 = 0x04 (MSB)、地址:0x41 = 0xB0 (LSB)。 最后、对于此回复、是否有办法查看 OTP (0x40E7-0x411F)是否已锁定、从而无法再写入?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对于 bq27220与 slua801、它有一些不同。 请参阅 e2e.ti.com/.../615263。

    如果要将设计容量设置为4043mAh (=0x0FCB)、则必须执行以下序列:

    1.进入 CFG_UPDATE 模式
    2.将地址和参数数据写入0x3E+(自动递增)
    3、计算校验和:0xFF -(地址和数据之和)或0xFF
    4、将校验和写入0x60、将总长度(地址+参数数据+校验和+长度)写入0x61
    5.退出 CFG_UPDATE 模式

    W aa 00 90 00 #CFG_UPDATE
    W aa 3e 9f 92 0f CB #设计容量= 0x0FCB
    W aa 60 F4 06 # 0x9F + 0x92 + 0x0F + 0xCB = 0x020B。 0x020B 或0xFF = 0x0B。 CS = 0xFF - 0x0B = 0xF4;2字节地址、2字节数据、1字节校验和、1字节长度= 6
    w aa 00 92 00 #EXIT_CFG_UPDATE

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    建议的解决方案工作-谢谢!!!

    只是一个建议 -更新 bq27220的数据表;-)过程比文档中描述的更简单,步骤更少,方法更直观。

    此致