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.

[参考译文] BQ76907:在读取累积电荷时、I2C 操作卡滞。

Guru**** 2399835 points
Other Parts Discussed in Thread: MSPM0G1107, BQ76907

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1503864/bq76907-i2c-operation-got-stuck-when-accumulated-charge-is-read

器件型号:BQ76907
主题中讨论的其他器件:MSPM0G1107

工具/软件:

您好:

我目前正在从事一个工程、该工程涉及 MSPM0G1107微控制器和 BQ76907模拟前端(AFE)。 在尝试从 BQ76907读取累积电荷时、我遇到了问题。 此操作涉及12字节的 I2C 读取。

成功读取10个字节后会发生问题、此时 BQ76907将 SDA 线拉至低电平并保持该问题。 结果、发生超时、并重新初始化 I2C 外设。 不过、BUSBUSY 位保持置位状态、导致代码在启动条件检查功能中挂起。

我尝试通过 I2C_CONFIG 寄存器(设置为0x8402)启用 BQ76907的 I2C 复位功能来解决该问题。 此权变措施确实可以避免该问题、但对于我们的应用而言、它不是可行的长期解决方案。

对于上下文、使用 I2C 中断来处理数据传输。 此外、我将在后台使用中断运行 USART 通信、在9600波特(最多100字节)下每1秒进行一次数据传输和接收。

值得注意的是、此问题只会间歇性发生、因此很难始终如一地重现。

有人能帮助我了解 BQ76907在该读取操作期间将 SDA 线保持为低电平的原因吗? 我附上了一个屏幕截图、说明该行为以供参考。

提前感谢您的支持。

扩展屏幕截图:

显示 UC 超时和重启、SDA 仍然处于低电平的屏幕截图

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

    你好、Vishnudas、

    器件是在正常模式还是其他模式下发生这种情况?

    此致、
    Alexis

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

    尊敬的 Alexis:

    此问题显示在正常工作模式下。

    此问题是否在从正常模式转换到睡眠模式期间发生?

    我并不是有意发出睡眠命令、但我怀疑、由于电流过低、有可能会进入睡眠 模式。 (我没有检查)。

    非常感谢。

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

    你好、Vishnudas、

    累积充电和时间积分在 SLEEP、DEEPSLEEP 或 SHUTDOWN 模式下运行。 如果器件转换到 SLEEP 模式、则累积的电荷和时间积分可能无法更新。 可以通过发送0x0005 RESET_PASSQ ()子命令或在进入 CONFIG_UPDATE 模式时重置积分器和计时器。 更多有关这方面的信息、请参阅  电荷积分  一些文档。

    您是否考虑检查是否可能发生这种情况、并使用该子命令查看这是否有帮助?

    此致、
    Alexis

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

    尊敬的 Alexis:

    passq 命令工作正常。

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

    你好、Vishnudas、

    您的器件是否支持时钟延展?

    此致、

    Luis Hernandez Salomon