主题中讨论的其他器件: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 仍然处于低电平的屏幕截图
