找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[NUC] 請教I2C reset

[复制链接]
跳转到指定楼层
楼主
Andes 发表于 2015-10-12 15:04:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用NUC123當I2C slave。
在某些形況下,master發生錯誤後,產生一個不正常的波形,最後,再製造一個stop波形。
上述的形況,導致NUC123得到一個status code 0x00,之後,在也不ack設定的address了。
將I2C reset,重新config後,可正常work。但是累積3次後,reset就沒有用了。

請問除了chip reset之類的,還有別的方式可以讓I2C回復正常嗎?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
CHLIN55 发表于 2015-10-13 14:04:52 | 只看该作者
技術手冊上有提到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:35 | 只看该作者
問題解決, 感謝!
看datasheet,以為只有當master時,設定STO才有用。
回复 支持 反对

使用道具 举报

地板
gorock0717 发表于 2015-10-13 17:53:44 | 只看该作者
我也有遇到相同的问题,
不过我是NUC123当I2C master使用。
但我有尝试使用STO却无确实回复正常?使否有解?
回复 支持 反对

使用道具 举报

5#
CHLIN55 发表于 2015-10-14 09:22:34 | 只看该作者
試試看下面步驟:
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)
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU