一、EEPROM简介(24LC04B)
1.时钟频率 :100KHZ,400KHZ
2.存储结构:24LC04B是一个由两块256x8位内存(memory)组成的4kbit存储容量的ROM。
3.关键时间参数:高低电平最低保持时间
二、EEPROM数据传输时序
1.EEPROM数据传输
1)SCL高电平时,SDA拉低,启动数据传输;启动状态必须在所有命令之前。
2)检测到有效地址(7bit器件地址 + 1bit读写控制位);读写控制:READ-1,WRITE-0
3)传输改变数据;用先入先出的FIFO实现数据传输
4)应答,当SDA高电平期间检测到SDA为低电平,为有效应答
5) SCL高电平时,SDA拉高,关闭数据传输;所有操作必须以停止条件结束
2.EEPROM数据写时隙
2.1 单字节写
START + 写控制字节+ ACK + 字节地址 + DATA + STOP
2.2 页写
注:页写一次最多能传输16字节数据(buffer只能存储16byte);如果超过16字节,则之前的数据会被覆盖
3.EEPROM数据读时隙
3.1 当前地址读取
从上一个指令停止的地址,向后加1,执行读操作,读1字节。
3.2 随机地址读取
STRAT + 写控制字节(虚写)+ ACK + 字节地址 + ACK + START + 读控制字节 + ACK + DATA +NACK + STOP
注意: 为什么要发送虚写命令?
这是因为我们需要使从机内的存储单元地址指针指向我们想要读取的存储单元地址处,所以首先发送了一次Dummy Write也就是虚写操作,只所以称为虚写,是因为我们并不是真的要写数据,而是通过这种虚写操作使地址指针指向虚写操作中字地址的位置,等从机应答后,就可以按当前地址读的方式读数据了 。
3.3 顺序读取
EEPROM存在一内部地址指针,每完成一次读操作,下一次读地址+1;顺序读取发生在随机读取之后。