Part Number:TM4C1294NCPDT
背景:
1、当前的工程,我使用到了I2C的模块,我们同时使用了主机、也使用到了I2C的从机。
2、工程中使用了2个I2C模块(都同时具有主从机功能)
3、为方便测试,两个I2C模块进行对接,一个当主机 一个当从机进行测试
4、正常通信时均无问题,一直拉低CLK 、或一直拉低SDA也无问题。
异常:
1、人为制造异常,使用GND不断碰触SDA,尝试10-30左右就大概率会将I2C从机置为异常,此时SDA一直为低。从机MCS状态一般为0X60
当前处理:1、查看datasheet 说要发送STOP
2、尝试发送RECEIVE STOP, 多次发送 无法接触
3、关闭从机AF GPIO映射(电平变高),尝试发送RECEIVE STOP, 再打开关闭从机AF GPIO映射。多次发送后可以接触恢复正常
2、人为制造异常,使用GND不断碰触SCK,尝试20-50左右就大概率会将I2C从机或主机进入异常,
****从机 MCS状态为0X60(此时SDA一直为低), 按上面处理异常处理,无法消除,只有重启MCU可消除
主机状态为0X60/0x70(此时SDA一直为低), 按上面异常处理,可以消除异常 恢复正常
****主机状态为0X41(此时SDA SCK电平为高 ),数据无法再发送, 按上面处理,无法消除异常,只有重启MCU可消除
针对****问题,我看datasheet当中描述,是说可以复位I2C模块,我直接关I2C外设 再开I2C外设 无作用。重新初始化也无作用。
请帮忙看看是什么问题,要处理处理,还有如何正确复位单个I2C外设
Eirwen:
Hi
感谢您对TI产品的关注!为更加有效地解决您的问题,建议你在美国E2E上发帖 e2e.ti.com/,将由资深的英文论坛工程师为您提供帮助。
,
Ryan:
谢谢,已转