打印

问一个软件模拟I2C的问题

[复制链接]
1764|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eyuge2|  楼主 | 2008-4-26 12:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用16F73的两个脚模拟I2C总线,读写24LC512。虽然现在已经读写成功,但在编写代码的过程中遇到了一些疑惑,想在这里听听一下大家的看法。
1.在空闲时候,SCL脚的信号应该置成高电平,还是低电平?
我在网上下了几个例子,在停止位发出以后,有的例子中SCL为高电平,有的例子是低电平。
2.有的例子中,在起始位、发送字节、停止位这些操作中,都刻意在操作的结尾部分将SCL置为低电平,有没有这种必要?
3.使用PIC单片机,SDA脚涉及到输入输出方向的切换。切换的时刻是不是有讲究,要在置SCL为低的之后,才能切换方向?

相关帖子

沙发
king6301| | 2008-4-26 15:37 | 只看该作者

I2C

1、空闲时,SCL应置高电平
2、将SCL刻意置成低电平,是防止下降沿的误跳变,减少错误率
3、最好是之前切换SDA方向及电平转换,然后SCL为低

使用特权

评论回复
板凳
wml1982| | 2008-4-26 23:08 | 只看该作者

疑问

king兄回复的2:没看明白,能不能解释一下?
问题3,我倒是认为SCL为低以后切换方向是对的,start和stop之间只有在SCL为低的时候SDA才允许电平变化。

使用特权

评论回复
地板
eyuge2|  楼主 | 2008-4-28 13:04 | 只看该作者

谢谢

谢谢两位的回答,贴子转到PIC论坛上发了,那里可能更合适一点。名称是“I2C总线模拟碰到的问题 ”。
比较认同wml1982对问题3的看法。

使用特权

评论回复
5
ayb_ice| | 2008-4-28 15:31 | 只看该作者

IIC总线空闲时SDA,SCL均为高电平

所以应该置为高平,虽然SCL为低电平也可以。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

1366

帖子

9

粉丝