LV010-AT24C02简介
一、EEPROM简介
EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。
我们这一节的笔记主要是关于AT24C02的使用,它是一个串行电可擦除和可编程只读存储器(EEPROM),总容量是256(2K/8)个字节,通过IIC通信。它是 Atmel 公司的一款芯片,我们使用的战舰V3的开发板上装的是AT24C02BN,我们可以在这里找到它的数据手册:AT24C02B 数据手册 (microchip.com)。
二、AT24C02功能
1. 框图
我们可以看 AT24C02B 数据手册 (microchip.com)

引脚功能描述如下:
| 引脚 | 说明 |
|---|---|
| A0~A2 | Address Input |
| SDA | Serial Data |
| SCL | Serial Clock Input |
| WP | Write Protect |
| VCC | Supply Voltage(VCC = 1.8V to 5.5V) |
| GND | Ground |
2. 设备地址
我们知道I2C总线是通过设备地址来区分不同的设备,我们使用的AT24C02有三根地址线,它的地址是这样的:
A0~A2可以接GND(代表0)也可以接VCC(代表1),这样根据A0~A2的接线的不同,可以有不同的地址,比如我们把A0~A2全接地,那么设备地址就是1010000x。(我们可以看 AT24C02B 数据手册 (microchip.com) 的 6. Device Addressing)
那么当我们要读数据的时候,发送的地址就是10100001 = 0xA1,当我们要写数据的时候发送的地址就是10100000 = 0xA0。
3. 多少页?
我们需要知道的一些信息:
AT24C02 一共是 2Kb = 2048/8B = 256B我们看芯片手册有这么一句: 8-byte Page (2K) Write Modes,也就是说,这个256B按照8字节一页的方式,被分为32页:
AT24C02 一共是 256B/8 = 32 页三、读写数据
作为带字地址的存储器件,AT24C02 在 I2C 基本时序之上定义了 5 种读写时序:字节写(Byte Write)、页写(Page Write)、当前地址读(Current Address Read)、随机读(Random Read)、顺序读(Sequential Read)。
这 5 种时序的时序图与逐步分析整理在通信专题的笔记中,这里不再重复:60-通信专题/01-I2C协议/LV020-AT24C02读写时序分析.md。
这里只需先记住两个结论:
(1)写操作时,设备地址之后发送的第一个字节总是被解释为字地址(内存地址),之后才是数据;页写一次最多写 8 字节,且不能跨页,超页会回卷覆盖本页开头的数据;
(2)读操作可以不带字地址(当前地址读),也可以先用"假写"指定字地址再读(随机读),还能跨页连续读(顺序读),读结束的标志是主机回 NACK。