您好!
我的客户正在使用 Tiva 处理器。 该处理器使用 i2c 与外部 IC 通信。
在 EMI 暴露期间、i2c 通信中存在一些单一故障。 这不是一个大问题。
如果在3个连续请求中发生3个故障、则应重置并初始化 i2c。 这在大多数情况下都适用、但有时复位不起作用、在 Tiva 中复位 i2c 控制器的唯一方法是移除电压、这当然不好。
我的客户已经在硬件中进行滤波、但他们仍然需要解决为什么有时复位不起作用(不可能进行系统复位、只能进行 i2c 控制器复位)。 这是复位代码:
//禁用外设
ROM_SysCtlPeripheralDisable (ui32Peripheral);
//复位外设
ROM_SysCtlPeripheralReset (ui32Peripheral);
//启用外设
ROM_SysCtlPeripheralEnable (ui32Peripheral);
//等待它准备就绪
while (!ROM_SysCtlPeripheralReady (ui32Peripheral))
{
}
您认为他们缺少什么吗?
此致、
Jon