eeprom--24LC64

eeprom在平常中用得还是挺多的,对于存储系统的少量参数,且速度要求也不是很高的,还是很实用的。eeprom我在老早之前就用过了,最近在整理笔记,正好可以再熟悉一下。

链接:https://pan.baidu.com/s/1JvuCN7iKI4Bq9E0tkQE_KA    提取码:vq5h 

先肯定是得看看芯片的手册,上面有百度网盘的下载链接地址。

接下来讲讲芯片功能:

1. 芯片容量为64k,256页,8192个地址,65536bit;
2. 2线串行接口总线,兼容I2C;
3. 兼容100kHz和400kHz两种传输速率;
4. 3个地址管脚,最多支持8个器件连接到同一条总线上;
5. 擦写次数可达1,000,000次;
6. 自定时擦写周期;
7. 最大5ms的页写时间;
8. 32字节页写缓存;
9. 支持硬件写保护

字节写操作

字节写操作从主器件的起始位开始, 4 位控制码紧随其后。接下来的 3 位是存储块寻址位。然后主发送器将 R/W 位(该位为逻辑低电平)发送到总线。从器件在第九个时钟周期产生一个确认位。主器件发送的第二个字节是高位地址字节,在高位地址字节之后传送的是低位地址字节。24LC64 器件会对每一个地址字节作出确认,并把地址位锁存进器件内部的地址计数器。
送出地址字节后, 24LC64器件发出确认信号 ACK。主器件在接收到该确认信号后即发送数据字,该数据字将被写入已寻址的存储器位置。 24LC64器件再次发出确认信号,之后主器件产生停止条件,启动内部写周期。如果在 WP 引脚保持高电平时进行存储器写操作,器件会确认命令,但不会启动写周期,也不会写入数据,而会立即接受新的命令。单字节写时,在发送写命令后,内部地址计数器增加,指向下一个要寻址的位置。写周期期间,24LC64不会对命令进行确认。

页写操作

页写操作的控制字节、地址字节和首个数据字节与单字节写操作是相同的发送方式,不同的是主器件连续发送数据字节能达到一整页(32字节),这些数据字节临时存储在片内页缓冲器中。在主器件发送停止条件之后,这些数据将被写入存储器。每接收一个字,内部地址计数器加一。如果在停止条件产生前,主器件有超出一页的数据要发送,地址计数器将会翻转,先前写入的数据将被覆盖。对于字节写操作,一旦接收到停止条件,内部写周期开始。在写周期期间, 24LC64 器件不会对命令作出确认。页写入操作在一页内可以写入任意个数据( 最多为一页),并且可以在此页中的任意地址开始写入。被寻址的数据只能在该页内变动。如果在 WP 引脚保持高电平时进行存储器写操作,器件会确认命令,但不会启动写周期,也不会写入数据,而是立即接受新的命令

随机读操作

随机读操作允许主器件以随机方式访问任意存储器。执行该指令前必须先设置地址字节。作为写操作的一部分,通过发送字节地址给 24LC64 来完成地址字节的设置(R/W 设置为 0)。字节地址发送完后,主器件接收到确认信号即产生起始条件。内部地址计数器设置完之后写操作即被终止。主器件再次发送控制字节,此次该字节中 R/W 位设置为1。之后24LC64 会发出确认信号, 并发送 8 位数据字节。主器件不会对数据传输作出确认,但会产生停止条件,24LC64 即停止数据发送。在随机读取命令之后,内部地址计数器加1指向下一条地址。

 连续读操作

连续读操作的起始过程和随机读操作相同,只是在芯片发送完第一个数据字节后,主器件发出确认信号,而在随机读操作中发送的是停止条件。确认信号指示24LC64 器件发送下一个连续地址的数据字节。在24LC64器件向主器件发送完后最后一个字节后,主器件不会产生确认信号,而是产生停止条件。为了可以进行连续读操作,24LC64器件内置了一个地址指针,在每次操作完成后该指针加1。地址指针允许一次操作连续读取整个存储器的内容。在达到最后一个地址字节后,地址指针将翻转到地址 0x00

对于EEPROM的驱动,我建议是采用页写操作,这样可以节省不少的时间,读可以采用连续读。每个公司都有自己的存储类驱动的封装接口,一般来说驱动的读操作和写操作都得加入fifo对数据做缓存,我自己写了一个24lc64的仿真slave模型文件,可以放在你们自己写得代码里面去仿真做参考。

对于EEPROM来说只要会写I2C时序,应该都不难,I2C总线地址长度和数据长度在不同的情况下都不是一样的,有8、16、24宽度等等,有很多的新片的配置也都是I2C来进行的配置,我们不可能每写一个驱动就写一个新的I2C驱动,这样费时费力,所有我的建议是将I2C写成一个CBB,适用与各种情况,地址和数据不管是8、16、24还是多少(8的倍数),直接通过参数配置就可以实现I2C协议数据的读写。

猜你喜欢

转载自blog.csdn.net/Real003/article/details/88920736