正点原子IIC例程延时2us疑问

2019-08-11 18:32发布

微信图片_20171022150221.png 微信图片_20171022150232.png 一,不应该大于4us吗?是我搞错什么了吗?



捕获.PNG 二,不是很理解最后那里延时10ms的作用
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
DreamWaterPro
1楼-- · 2019-08-11 20:18
Q1:不应该大于4us吗?是我搞错什么了吗?
A1:emmm。。。这个应该得看目标器件的数据手册。
在AR24C02数据手册的第7页,图2:

AT24C02 IIC 时序

AT24C02 IIC 时序


可以看到标记的SDA有效位的保持时间为tHIGH。而在数据手册的第5页,表五中第三行:

时间参数

时间参数


可以看到SDA有效位保持时间的取值范围是0.6us~4.0us。因此来讲正点原子例程给了2us的延时,对于AT24C02来讲是正确的.

应当说明,我个人在调试IIC总线的时候曾经使tHIGH长达数秒,但是依旧能够完成通信;但是如果太短,会造成通信失败。宁长不要短吧。


Q2:不是很理解最后那里延时10ms的作用
A2:这个主要是对AT24C02加的,由于AT24C02接收到写入指令之后,真正将数据写入到EEPROM存储体中需要花费一定的时间,故留出10ms的延时。
这里有个同样的问题,可以参考:
http://www.openedv.com/forum.php?mod=viewthread&tid=231333

另附上AT24C02的数据手册以供参考。

AT24C02 datasheet.pdf (444.98 KB, 下载次数: 157) 2017-10-26 00:11 上传 点击文件名下载附件
AT24C02数据手册


以上。
l91077
2楼-- · 2019-08-11 22:50
1、模拟IIC时序要以被操作对象的数据手册里时序图为准
15767909146
3楼-- · 2019-08-11 23:24
 精彩回答 2  元偷偷看……
l91077
4楼-- · 2019-08-12 03:20
15767909146 发表于 2017-10-22 15:59
你好  可是正点的例程运行起来也没错呢

你看时序图的时间,它是有范围的,但不一定准确
网络孤客
5楼-- · 2019-08-12 03:57
15767909146 发表于 2017-10-22 15:59
你好  可是正点的例程运行起来也没错呢

有没有试过不延时或延时少了有什么后果?
我觉得应该是保证EEPROM足够时间写入。
15767909146
6楼-- · 2019-08-12 06:55
DreamWaterPro 发表于 2017-10-26 00:21
A1:emmm。。。这个应该得看目标器件的数据手册。
在AR24C02数据手册的第7页,图2:

原来如此

一周热门 更多>