I2C master如何判断slaver有无响应?

[复制链接]
4805|6
 楼主| mzscg 发表于 2008-12-9 14:34 | 显示全部楼层 |阅读模式
再次提I2C问题.psoc的I2C datasheet看烂还是懂.

我的I2C作为master, 挂接一个slaver,
因为slaver经常忙,所以不会准时响应我的master通信.

所以.我想实现的功能是:

master发出起始条件以及slaver address后,
若slaver忙不响应,则master重发,直到slaver响应.
那么问题就是:
程序里如何判断 slaver是否响应了master?  (datasheet里我找不到答案)

另外如何判断一次I2c通信已完成??

while(!I2CHW_bReadI2CStatus() & I2CHW_WR_COMPLETE);
无法完成这一功能.


rj_tang 发表于 2008-12-16 09:41 | 显示全部楼层

用SW可能更好

如果你的slave反应不快,用I2CSW可能更好。如果还不行,就自己用2个IO编一段代码。我就是这样做的,作为master用肯定能行。
 楼主| mzscg 发表于 2008-12-16 14:54 | 显示全部楼层

楼上的...东西已经快做完了...不想改了...

好多天了,,,psoc的人都没有来答....


我已经试遍了所有寄存器的标志位,依然无解.

下一步决定试一下组合标志位.....

再不行...........俺就.........
 楼主| mzscg 发表于 2008-12-17 16:05 | 显示全部楼层

召唤PSCO-ROCK

快受不了这个东西了....
PSoC_Rock 发表于 2008-12-17 17:12 | 显示全部楼层

可以仿真吗?

I2C mastert通过ACK判断slaver有无响应,如果得到NACK就是没有响应.



 楼主| mzscg 发表于 2008-12-25 10:03 | 显示全部楼层

psoc_rock

我清楚是这个原理.

但我想的是在
高级API上能实现出来...我在低级API上实现了.

请PSOC_ROCK提供一下高级API的实现程序..非常感谢.
huang19850215 发表于 2009-1-1 16:44 | 显示全部楼层

vvvvvvvvvvvvvvv

http://www.sceceu.cn/index.php?40410-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

234

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部