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.

[参考译文] BQ76930:BQ76930寄存器运行异常

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/616000/bq76930-bq76930-register-operation-is-abnormal

器件型号:BQ76930

当芯片遇到一些问题时、我处理的是 BQ76930

当写入标志寄存器以控制某些标志时、

从0的现象中、将有一个标志不能被设定为1标志

写入已尝试的位1或0、无法更改标志

例如 SYS_STAT 保护引导标志、CC_EN 电流读取启动标志、CELLBALx 电池平衡标志

只要没有人设置为1、设置为0、就不知道原因

但 ADC_EN、TEMP_SEL、SHOP_A、SHOP_B 这些标志可以设置

这可能是什么原因导致的、如何解决?

 

在问题的部分、我无法修改临时寄存器:

CELLBALx 电池平衡该项目正常、另两个正常或异常、

例如 SYS_STAT 保护启动标志、CC_EN 电流读取启动标志、

并发现另一个问题

当写入暂存区的数据为0x00时、CRC 代码将被错误写入。

但写入其他信息不会有问题、CRC 使用 TI 的计算方法如下

https://e2e.ti.com/support/power_management/battery_management/f/1002/t/513651

 

unsigned char CRC8 (unsigned char * ptr、unsigned char len、unsigned char key)

unsigned char i;

unsigned char crc=0;

while (len--!=0)

 对于(i=0x80;i!=0;i/=2)

 {

  if ((CRC & 0x80)!= 0)

  {

   CRC *= 2;

   CRC ^= KEY;

  }

  其他

   CRC *= 2;

  如果(*ptr & I)!=0 )

   CRC ^= KEY;

 }

 PTR++;

return (CRC);

使用0x107、0x07、0x7上的密钥是否会产生0x00错误。

这一部分是如何解决的、谢谢

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

    我的建议是(1)读取状态寄存器 SYS_STAT (2)检查是否存在报告的任何故障(3)通过将1切换至相应的寄存器来清除故障。

    这将提供有效性、器件可访问并对写入函数做出响应。

    谢谢

    Vish