主题中讨论的其他器件: BQ27426
大家好、
我的客户使用 BQ27426EVM-738并遇到问题。
它们无法进入器件配置模式。 CONTRAL_STATUS (0x00)寄存器中的位 FLAG_CFGUPMODE (1<<4)未置位。
它们执行以下操作:
- 检查 CONTRAL_STATUS (0x00)寄存器中的阻塞状态 STATUS_SS (1<<13)。
- 位被置位→通过写入 unseal 密钥(0x8000)来移除位。
- 再次检查 STATUS_SS→它被删除、然后器件被解锁。
- 执行命令以进入配置模式 CONTINL_SET_CFGUPDATE (0x0013)。
- 在 CONTRAL_STATUS (0x00)寄存器中等待 FLAG_CFGUPMODE (1<<4) 2-5秒钟。 该位未设置!
- 无论如何、器件配置会继续-器件容量已设置。
- 然后读取设备容量-返回错误的值。 我们可以假设错误是由于第5页中的问题而发生的
客户使用库:
- https://github.com/deondavis/lib-BQ27421/blob/master/bq27421.c
- https://github.com/sparkfun/SparkFun_BQ27441_Arduino_Library
- https://github.com/torvalds/linux/blob/master/drivers/power/supply/bq27xxx_battery.c
器件配置函数库中的入口点:
第185行- bq27421_i2c_control_write (BQ27421_CONTRAL_SET_CFGUPDATE);
2.第330行- boolBQ27441::enterConfig (bool UserControl)
从寄存器的角度来看、BQ274xx 器件看起来类似、因为以下定义:
#define bq27411_regs bq27421_regs
#define bq27425_regs bq27421_regs
#define bq27426_regs bq27421_regs
#define bq27441_regs bq27421_regs
#define bq27621_regs bq27421_regs