主题中讨论的其他器件:INA219、
您好!
我们目前正在嘈杂环境中使用连接到 INA219传感器 IC 的 CC1312R 控制器。
由于环境噪声、我们看到一些 I2C 操作可能会由于噪声而失败、这对我们来说是可以接受的。
我们遇到的问题是、我们无法从 I2C 错误中恢复。
我们已经尝试了以下操作,但没有成功:
-调用 I2C_CANCEL 以取消所有事务
-调用以下序列:
I2C_CANCEL (i2c0Handle); I2C_Close (i2c0Handle); i2c0Handle = I2C_open (Board_I2C0、&i2cParams);
在下一次 I2C 传输 时、代码在函数 I2CCC26XX_primeTransfer 中的以下行报告 I2C 总线错误(读取或写入传输):
/*检查总线状态,如果忙则返回错误*/
if (I2CMasterBusy(HwAttrs->baseAddr)
{
返回 I2C_STATUS_ERROR;
}
mstat 值报告活动空闲、BUSBSY 和仲裁丢失标志。
我们尝试了 SDK 版本2.30和3.20中的 I2C 驱动程序。
您是否有任何建议可以如何重置/恢复 I2C 总线?
提前感谢您、
Stefan