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.

[参考译文] BQ79616:BQ79616 &LAUNCHXL2-TMS57012 C 代码支持

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1312747/bq79616-bq79616-launchxl2-tms57012-c-code-support

器件型号:BQ79616
主题中讨论的其他器件:LAUNCHXL2-TMS57012

您好、TI 社区:

 

我和我的团队正在使用 LAUNCHXL2-TMS57012、BQ79616子板和 BQ79600通信板开发 BMS 系统。

 

我们根据 TMS570的示例代码进行测试、该代码可以与 BQ79600和 BQ79616连接、但在从 BQ79616读取和写入寄存器时会遇到一些问题。



我们注意到、我们可能会误解寄存器映射的工作原理、并希望获得一些帮助来理解示例代码。 读回存储为16位值的电池电压时、示例代码似乎从寄存器映射中注明的位置读回4字节偏移。

 

```

ReadReg (0、VCELL16_HI+(16-ACTIVECHANNELS)*2、Response_FRAME、ACTIVECHANNELS*2、0、 FRMWRT_STK_R);

…  

Uint16 RawData =(RESPONSE _FRAME[boardByteStart+channe+4]<< 8)| RESPONSE FRAME[boardByteStart+channe+5];

```

 

 上述代码片段可以得出正确的信息、但对我们没有意义。 为什么需要从寄存器映射中定义的地址读回电池电压数据4个字节?  

 

通过在0x9处读取和写入 OV_THRESH、我们还发现在尝试环回测试时相同。 当读取先前设置为0x22的 OV_THRESH 时、该命令不会返回相同的数据、并且在响应帧的字节[4]处找到值0x22、而不是0。

 

```  

byte response_frame2[5];

WriteReg (0、OV_THRESH、0x22、1、FRMWRT_STK_W);

ReadReg (0、OV_THRESH、Response_frame2、5、0、 FRMWRT_STK_R);

printf ("OV_THRESH %x\t"、response_frame2[4]);//产生0x22

```



我们在这方面有什么错误或误解吗?  

 

非常感谢您提供任何帮助、

谢谢!

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

    Julius、

    在数据表的第51页、您可以找到我们的交易框架:

    这用于命令和响应。

    您可以看到、数据之前有四个字节(初始化字节、器件地址字节和寄存器地址两个字节)。

    数据表的第9.3.6.1节详细说明了有关我们如何命令器件以及器件如何响应的所有信息。 您可以参考此部分、以了解每个字节中的预期内容及其含义。

    此致、