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.

[参考译文] BQ76940:确保从 BQ79640 (AFE)读取原始数据块是原子的

Guru**** 2551110 points
Other Parts Discussed in Thread: BQ76940, BQ78350-R1, BQ78350

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/972772/bq76940-ensure-read-of-raw-data-block-from-bq79640-afe-is-atomic

器件型号:BQ76940
主题中讨论的其他器件: BQ78350-R1BQ78350

您好!

我一直在调查我当前正在处理的应用程序中出现的问题。  

该应用包含一个 BQ76940、BQ78350-R1和一个独立的微处理器。

当发生错误且微处理器在充电门和放电门打开时从 AFE (BQ76940)读取原始数据块时、就会发生此问题。  

受影响的特定寄存器是列计数器(CC)。 发生此问题时、Columb 计数器(CC)的值为0x00FF、其应为0x0000。

同样值得一提的是、问题并不总是出现。 但经常会(4次中约1次)。

考虑到具体情况、如何确保从 AFE 读取数据块是原子的?

此致、

Michael。

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

    您好、Michael、

    可以通过从第一个寄存器读取两个字节(而不是在单独的事务中读取两个寄存器)来自动读取两字节测量值。  

    例如、要读取 CC 电流、从0x32读取两个字节(从不发送地址0x33)。

    微处理器是否直接连接到 BQ76940的 I2C? 这似乎会导致与 BQ78350-R1的总线争用。 或者您是否正在使用 BQ78350-R1的 AFEData 命令(0x005B)?

    此致、

    Matt

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

    您好、Matt、

    一种简化方法是将微控制器连接到 BQ78350-R1、而不是直接连接到 BQ79640。

    此外、微控制器正在使用 AFEData 命令(0x005B)在一次读取中读取整个 AFEData 块、而不是在单个事务中读取。

    如何确保从 AFEData 命令读取的数据是原子数据?

     

    此致、

    Michael。

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

    您好、Michael、

    我希望 AFEData 命令0x005B 执行原子读取、但如果不监控 BQ78350和 BQ76940之间的 I2C 总线流量、我无法确定。 此命令是 BQ78350固件的一部分、因此无法更新其工作方式。

    但是、CURRENT()命令0x0A 返回 CC 读数。 是否有需要使用 AFERead 命令读取电流的原因?  

    此致、

    Matt