打印
[牛人杂谈]

IIC时序详解

[复制链接]
751|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heisexingqisi|  楼主 | 2016-4-15 08:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

AT24C02是由ATMEL公司提供的,IIC总线串行EEPROM(electronic eraser programmer read only memory),其容量为2kbit(256B),工作电压在2.7v"5.5v之间,生产工艺是CMOS。

一般数字芯片都在左下角和右上角为GND,VCC。容量的计算方法:AT24Cxx :01"1024

容量 = xx * 1kbit。

写入过程:

AT24C系列EEPROM芯片的固定部分为1010,A2,A1,A0引脚接高低电平后得到确定的3位编码,形成7位编码即为该器件的地址码。

单片机进行写操作时,首先发送该器件的7位地址码和写方向位”0”(共8位,即一个字节),发送完后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为响应,单片机收到应答后就可以传送数据了。传送数据时,单片机首先发送一个字节的被写入存储器的首地址,收到存储器器件的应答后,单片机就逐个发送数据字节,但每发送一个字节后都要等待应答。AT24C系列片内地址在接收到每一个数据字节地址后自动加1,在芯片的“一次装载字节数”限度内,只需输入首地址。装载字节数超过芯片的“一次装载字节数”时,数据地址将“上卷”,前面的数据将被覆盖。

字节写:

页写:

读入过程:

单片机先发送该器件的7位地址码和写方向位“0”(“伪写”),发送完后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为回应。

然后,再发一个字节的要读出器件的存储区的首地址,收到应答后,单片机要重复一次起始信号并发出器件地址和读方向位(“1”),收到器件应答后就可以读出数据字节,每读出一个字节,单片机都要回复应答信号。当最后一个字节数据读完后,单片机应返回以“非应答”(高电平),并发出终止信号以结束读出操作。

当前地址读:

随机读:

有序读:

IIC总线模拟时序图:



IIC总线应答时序图:


设备地址:

写周期:

两次写之间要有一个10ms的twR间隔


沙发
598330983| | 2016-4-15 10:50 | 只看该作者
先搞定那个时间函数,然后再写,要不时序不满足时间间隙的要求。

使用特权

评论回复
板凳
天灵灵地灵灵| | 2016-4-26 22:43 | 只看该作者
在操作这些外设的时候,可以体现出很好的C语言基本功

使用特权

评论回复
地板
heisexingqisi|  楼主 | 2016-4-27 09:55 | 只看该作者
一般好多人在模拟IIC的时候都感觉吃力,没有SPI的好用,主要是他的差分特性。

使用特权

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

本版积分规则

131

主题

2594

帖子

2

粉丝