牛卧堂MCU技术交流

标题: 請教I2C reset [打印本页]

作者: Andes    时间: 2015-10-12 15:04
标题: 請教I2C reset
使用NUC123當I2C slave。
在某些形況下,master發生錯誤後,產生一個不正常的波形,最後,再製造一個stop波形。
上述的形況,導致NUC123得到一個status code 0x00,之後,在也不ack設定的address了。
將I2C reset,重新config後,可正常work。但是累積3次後,reset就沒有用了。

請問除了chip reset之類的,還有別的方式可以讓I2C回復正常嗎?
作者: CHLIN55    时间: 2015-10-13 14:04
技術手冊上有提到status 0x00的時候如何排除:
To recover I2C from bus error, STO should be set and SI should be clear to enter not addressed Slave mode. Then STO is cleared to release bus and to wait new communication. I2C bus cannot recognize stop condition during this action when bus error occurs.
作者: Andes    时间: 2015-10-13 17:17
問題解決, 感謝!
看datasheet,以為只有當master時,設定STO才有用。
作者: gorock0717    时间: 2015-10-13 17:53
我也有遇到相同的问题,
不过我是NUC123当I2C master使用。
但我有尝试使用STO却无确实回复正常?使否有解?
作者: CHLIN55    时间: 2015-10-14 09:22
試試看下面步驟:
1. 先下STOP (STA,STO,SI,AA)=(0,1,1,x)
2. 然後release bus (STA,STO,SI,AA)=(0,0,1,X)
3. 再重新下START(STA,STO,SI,AA)=(1,0,1,X)




欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2