目录
一、初识AT24C02
1. 介绍
2. 引脚功能
补:
二、AT24C02组成
1. 存储结构
2. AT24C02通讯地址
3. AT24C02寻址方式
(1)芯片寻址
(2)片内子地址寻址
三、AT24C02读写时序
1. 写操作
(1)字节写入方式
流程:
(2)页写入方式
2. 读操作
(1)立即读方式
流程:
(2)指定地址读方式
流程:
(3)连续读方式
补充:
一、初识AT24C02
1. 介绍
AT24C02是 低工作电压的 2Kb 串行电可擦除 只读存储器,可存储 256个字节 数据,内部有一个 16字节页写缓冲器。AT24C02工作电压 1.8~5.5V,采用二线制 IIC数据传输协议,支持硬件写保护,能擦写 100万次,数据可保存 100年。
通过器件地址输入端 A0、A1和 A2可以实现将 最多 8个 AT24C02器件 连接到 IIC总线上。
补:EEPROM 是一种 掉电后数据不丢失的储存器,常用来存储一些配置信息,在系统重新上电时就可以加载。
详细描述可以参考:
常用存储器http://t.csdnimg.cn/TyKsuhttp://t.csdnimg.cn/TyKsu
2. 引脚功能
补:
① A2、A1、A0:器件地址输入引脚。AT24C02 在一个总线上最多可寻址 8个器件,A2、A1 和 A0 必须连接。
② SDA:可实现 双向串行数据传输。该引脚为 开漏输出,可与其他 多个开漏输出器件 或开集电极器件线 或连接。
③ SCL:在 SCL输入时钟信号的 上升沿将数据送入 EEPROM器件,并在时钟的 下降沿将数据读出。
④ VCC、GND:2~6V 电源输入。
二、AT24C02组成
1. 存储结构
AT24C02的存储容量为 256 Byte,由 32页 组成且每页8 Byte。
2. AT24C02通讯地址
主器件通过 发送一个 起始信号 启动发送过程,然后 发送它所要 寻址的 从器件的地址。高 4位 固定为 1010,接下来的 3位 A2、A1、A0为器件 的地址位(由器件 1~3引脚外接电平决定),用来 寻址哪个器件 被主器件访问,8位 地址的 最低位作为读写控制位( 1表示对 从器件进行读操作,0 表示对从器件 进行写操作 )。
在主器件 发送起始信号 和从器件地址字节后,AT24C02监视 总线并当 其地址与发送的从地址相符时 响应一个 应答信号(通过SDA线),再根据 读写控制位 R / W 的状态进行 读或写操作。
(1)不可编程部分:1010。
(2)可编程部分:由硬件管脚 A0 / 1 / 2决定。
(3)数据传输方向:读数据‘1’还是写数据‘0’。(写操作地址:0xA0 读操作地址:0xA1)
3. AT24C02寻址方式
AT24C02有两种寻址方式:芯片寻址、片内子地址寻址。
(1)芯片寻址
AT24C02芯片地址固定为1010,它是 IIC总线器件的 特征编码,其地址控制字的格式为 1010 A2 A1 A0 R/W。A2 A1 A0 引脚接高、低电平后得到 确定的 3位编码,与1010 形成的 7位编码,即为 该器件的地址码。由于 A2 A1 A0共有 8种组合,故系统最多可外接 8片 AT24C02,R / W是 对芯片的 读 / 写控制位。
(2)片内子地址寻址
确定AT24C02芯片的 7位地址码 后,片内的存储空间 可用 1字节的 地址码寻址,寻址范围为00H~FFH,可对片内的 256个单元进行 读 / 写操作。
三、AT24C02读写时序
1. 写操作
AT24C02有两种写入方式:字节写入方式 和 页写入方式。字节写模式 就是一个地址一个数据进行写入。页写模式 就是连续写入数据。
只需要写一个地址,连续写入数据时 地址会自增,但存在 页的限制,超出一页时,超出数据覆盖原 先写入的数据。但 读会自动翻页。
(1)字节写入方式
单片机(主器件)先发送启动信号和 1 字节的控制字,从器件 发出应答信号后,单片机再发送 1 字节 的存储单元子地址(AT24C02芯片内部 单元的地址码),单片机收到 AT24C02应答后,再发送 8位数据 和 1 位终止信号。
流程:
① 主器件 发送起始命令 和 从器件地址信息(R / W 位置0),等待 从器件应答。
② 主器件 发送 一个地址字节( 数据要写入的 AT24C02 地址单元 ),等待 从器件应答。
③ 主器件 发送待 写数据字节,等待 从器件应答。
④ 主器件 发送停止信号后,AT24C02 开始 内部数据的 擦写,在内部擦写过程中,AT24C02 不再应答 主器件的 任何请求。
(2)页写入方式
单片机先发送启动信号和 1 字节 的控制字,再发送1字节的 存储器起始单元地址,上述几字节都得到 AT24C02的 应答后,就可以发送最多 1页的数据,即一次写入最多 16个字节的数据至 AT24C02。
数据页写操作的 启动和字节 写一样,不同在于 传送了1 字节数据 后并不产生 停止信号。主器件可以发送 15个额外的字节,每发送一个字节数据后,AT24C02 产生一个 应答位并将字节 地址低 4 位 加 1( 1111 加 1 变成 0000),高 4 位 保持不变。同时数据 顺序存放在由 已指定的起始地址开始的 相继单元中。
如果在 发送停止信号 之前 主器件 发送超过 16个 字节数据,先前 写入的 数据将被 顺序覆盖,AT24C02 只保留 最后传输的 16个字节 数据。
主器件发送停止信号后,AT24C02 启动内部写周期,将数据写到数据区。所有接收的数据在一个写周期内 写入,写一个字节与同时写 16个 字节的 时间相同,整个写周期大约需要 10ms。
2. 读操作
AT24C02的读操作也有三种方式:立即读方式、指定地址读方式和指定地址连续读方式。
(1)立即读方式
AT24C02的 地址计数器内容为 最后操作字节 的地址加 1。也就是说,如果上次 读 / 写 的操作地址为 N,则立 即读的地址 从地址 N+1 开始。如果 N=255,则地址计数器 将翻转到 0 且继续输出数据。
流程:
① 主器件 发送起始命令 和 从器件地址信息( R / W 位置 1 )。
② AT24C02 发送 应答信号,应答 后发送一个 8位 字节数据。
③ 主器件 发送 停止信号,结束 读操作。
(2)指定地址读方式
单片机 发送启动信号后,先 发送含有芯片 地址的 写操作控制字,AT24C02 应答后,单片机再发送 1 字节 的指定单元 的地址,AT24C02 应答后再发送 1个 含有芯片 地址的 读操作 控制字,此时如果 AT24C02 做出应答,被访问 单元的数据就 会按 SCL信号同步 出现在SDA线上,供单片机 读取。
流程:
① 主器件 发送起始命令 和 从器件地址信息( R / W 位置 0 ),等待 从器件应答。
② 主器件 发送一个 地址字节( 要读的数据 地址单元 ),等待 从器件应答。
③主器件 重发起始 信号,执行一次 立即 地址读操作。
(3)连续读方式
连续读操作可通过 立即读 或 指定地址读操作启动,在 AT24C02 发送完一个 8 位 字节数据后,主器件 产生一个 应答信号来 响应,告知 AT24C02 主器件要求 更多的数据,只有 AT24C02检测到应答信号后,其 内部的 地址寄存器 就自动加 1 指向 下一个单元,并顺序 将指向 单元的数据送到 SDA 线上。对应 每个主机产生的 应答信号,AT24C02 将发送 一个数据字节,当 主器件不发送应答信号而 发送停止位 时结束此操作。
从 AT24C02 输出的数据按顺序由 N 到 N+1 输出。读操作时,地址计数器在 AT24C02 整个地址内 增加,这样 整个寄存器区域 可在一个读操作内全部读出。当前读取的 字节地址为255时,地址计数器 将翻转到 0 并继续 输出 数据字节。
补充:
在 IIC总线 上每次传送的 数据字节数不限,但 每一个字节必须为 8 位,而且 每个传送的字节 后面必须 跟一个 应答信号。每次 都是先传 最高位,通常 从器件在 接收到 每个字节后都会 做出响应,即释放 SCL线 返回高电平,准备 接收下一个 数据字节,主器件 可继续 传送。
如果 从器件 正在处理一个 实时事件而 不能接收数据 时,可以 使时钟线 SCL 保持 低电平,从器件 必须使 SDA 保持高电平,此时 主器件产生 1 个 结束信号,使传 送异常结束,迫使主器件 处于 等待状态。当 从器件处理 完毕时将 释放 SCL 线,主器件 继续 完成传送。
相关代码近期补充。
可参考这篇文章:
嵌入式—— IIC
http://t.csdnimg.cn/npQnHhttp://t.csdnimg.cn/npQnH