我们有 一个通过 I2C 总线连接到主机微控制器(在定制 PCB 上)的 BQ27Z561电量监测计。 当系统首次启动时、我将启用芯片置为有效、等待几秒钟以使器件稳定、然后开始向 BQ27Z561发送命令。 该程序的伪代码如下所示。
void FuelGaugeSetup(void)
{
FuelGaugeEnable(); // asserts chip select
FuelGaugeUnseal(); // unseals fuel gauge
FuelGaugeDisableImpedanceTracking(); // disabled IT
ConfigureFuelGauge(); // writes to data flash
FuelGaugeEnableImpedanceTracking(); // enables IT
}
这适用于大多数硬件、但我看到在某些电路板上 、BQ27Z561不响应命令。 例如、有时当我读取安全密钥以解锁器件时、我不会得到有效的响应。 具体而言、当使用逻辑分析仪检查 I2C 信号时、当电量监测计的地址被放置在 I2C 总线上时、我看不到它发出的 ACK。 我还看到 IT enable 命令未应用、无法写入数据闪存。 就好像器件完全锁定且无响应。 发生这种情况时、我们无法使 BQ27Z561恢复。 正如我说过的、某些电路板上的一切都正常、但在其他电路板上、电量监测计会锁定。 是否有任何关于可能发生的情况的想法?