问一个软件模拟I2C的问题

[复制链接]
2562|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的看法。
ayb_ice 发表于 2008-4-28 15:31 | 显示全部楼层

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

所以应该置为高平,虽然SCL为低电平也可以。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

1369

帖子

9

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