主题中讨论的其他器件:BQ27Z561、 BQSTUDIO
工具/软件:
您好、
我们的产品使用 BQ27z561 作为电量监测计、电量监测计通过 I2C 连接到 CPU、并且我们的操作系统为 Linux(内核 5.15)。
在测试期间、我们使用 I2C 驱动程序(请参阅下面的行)获取寄存器 BatteryStatus () 中的数据。 大多数情况下、该值 是 正确的、例如 0xC0、但有时、我们得到的数据不正确、例如 0xFFFF。
Jerry Lv
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.
工具/软件:
您好、
我们的产品使用 BQ27z561 作为电量监测计、电量监测计通过 I2C 连接到 CPU、并且我们的操作系统为 Linux(内核 5.15)。
在测试期间、我们使用 I2C 驱动程序(请参阅下面的行)获取寄存器 BatteryStatus () 中的数据。 大多数情况下、该值 是 正确的、例如 0xC0、但有时、我们得到的数据不正确、例如 0xFFFF。
尊敬的 Jonny:
感谢您的反馈。
我正在进行应力测试。 我在内核中修改了一些代码、当应用空间尝试获取任何电量计属性时、它将首先读取状态寄存器。
同时、我将 BQstudio 连接到我们器件中的测量仪表 I2C 接口。
然后内核中的一些调试信息如下所示(注意红线):
| Aug 08 10:02:42 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:02:42 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:02:44 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:02:45 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… 08 年 8 月 10:03:08 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:===bq27xxx_battery_update reg status=65535 (0xFFFF)、capacity=7995 Aug 08 10:03:08 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:03:08 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… 08 年 8 月 10:03:28 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:===bq27xxx_battery_update reg status=65535 (0xFFFF)、capacity=59 Aug 08 10:03:38 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… 08 年 8 月 10:03:38 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:===bq27xxx_battery_update reg status=65535 (0xFFFF)、capacity=187 Aug 08 10:04:08 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:04:08 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:04:08 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:04:09 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… 08 年 8 月 10:04:09 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:===bq27xxx_battery_update reg status=65535 (0xFFFF)、capacity=53243 08 年 8 月 10:04:09 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:===bq27xxx_battery_update reg status=65535 (0xFFFF)、capacity=59 Aug 08 10:04:28 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:04:28 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:04:28 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… Aug 08 10:04:28 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:++bq27xxx_battery_i2c_read err、EBUSY、retry…… 08 年 8 月 10:04:29 Axis-b8a44f22e42d 内核:bq27xxx-battery 0-0055:===bq27xxx_battery_update reg status=65535 (0xFFFF)、capacity=59 |
我们有时可以看到状态寄存器显示 0xFFFF、容量实际值为 59%、但有时报告的容量远大于 100%。
我认为寄存器仅 以 1Hz 的频率更新是可以的。 但是、即使我们以高得多的频率读取寄存器、I2C 也应报告未更改的值、或在发生一些冲突时报告 EBUSY、但不应报告无效值 0xFFFF。
此致、
Jerry Lv