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:通信问题。 CAN#39;t 写入寄存器。

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/638791/bq76930-problem-with-communication-can-t-write-in-registers

器件型号:BQ76930

您好!  

我正在为  BMS 项目使用 bq76930 AFE、与它通信时遇到问题。

我遵循了上述 AFE 的数据表中给出的典型应用、 并使用 Arduino Mega2560 在 I2C 上与其通信。  

BMS 中的引脚接收正确的电压、我只能读取 寄存器中正确的电池电压、电池组电压和温度、但我不能写入 SYS_STAT、SYS_CRTL1和2以及 PROTECT1、2和3等寄存器。 此时、我无法使用 BMS 对电池放电、因为 DSG_ON 位在0中、LOAD_ISTIST 也在0中。  

 我是否有任何特殊条件能够写入寄存器?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Thayna、
    我怀疑您使用的是 bq76930的 CRC 版本、例如 bq7693003。 使用 CRC 版本时、读取的每个字节将与 CRC 值散布、请参阅数据表中的第7.3.1.4节。 当将寄存器读作单字节时、该值将正确、MCU 可以忽略 CRC 字节。 当读取电压寄存器时、第二个字节是错误的值(CRC 字节)可能并不明显。 当尝试写入器件时、如果 CRC 未发送或不正确、它将拒绝写入。
    如果您的 MCU 正在发送 CRC、bq76930一定不能接受该值。 检查 MCU 的 CRC 计算。
    如果您的器件不是 CRC 版本、请检查 I2C 信令、并确保总线上的命令设置了 WRITE 位、并且 bq76930会将数据字节传输到并发出 ACK。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答。
    我使用了 CRC 版本(确切地说是 bq7693003)。 现在我要发送 CRC 字节、但仍然无法写入寄存器。 我正在 Arduino 中使用库到 CRC 并检查计算。 这是我第一次使用 CRC 测试....

    再次感谢!