在FPGA上面根据IIC接口协议用verilog语言读写AT24C256 EEPROM芯片
目录
前言
一、EEPROM简介
二、管脚信息
三、IIC协议
四、读写模式
五、字节写
六、随机地址读
七、参考资料
总结
前言
EEPROM (E2PROM,Electrically Erasable Progammable Read Only Memory)即电可擦除可编程只读存储器, 是一种常用的非易失性存储器(掉电后,数据不丢失)。本文将在介绍IIC协议和EEPROM有关的基础知识后,说明如何配置AT24C256 EEPROM这块芯片,包含对相关指令的解析和读写操作需要注意的点,当然,仿真图必不可少了,文中也有给出相应的仿真图。
提示:以下是本篇文章正文内容,希望能帮助到各位,转载请附上链接。
一、EEPROM简介
EEPROM(带电可擦可编程只读存储器)是用户可更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不需从计算机中取出即可修改。在一个EEPROM中,当计算机在使用的时候可频繁地反复编程,因此EEPROM的寿命是一个很重要的设计考虑参数。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。
二、管脚信息
芯片架构如下图所示
该芯片一共有8个引脚。其中E0、E1、E2是地址位,GND为地,Vcc为电源,wp为写保护引脚,为低可写,SCL是时钟线,SDA是数据线(双向端口)。
三、IIC协议
IIC (I2C,Inter-Integrated Circuit)即集成电路总线,是一种两线式串行总线。I2C总线由数据线SDA和时钟线SCL构成通信线路,既可用于发送数据,也可接收数据。IIC是半双工通信方式。
1)空闲状态
I2C总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。
2)起始信号与停止信号
起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。
3)数据有效性
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
4)应答信号ACK
发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。 应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。
5)数据的传送
在I2C总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。数据位的传输是边沿触发。
四、读写模式
AT24C256中256表示其容量为256kbit,即32768*8bit,在芯片内部被划分为512页,每页有64个字节。32768对应15bit地址位。
对于写,AT24C256支持字节写和页写。
对于读,AT24C256支持当前地址读,随机地址读和连续读(读到最后一页的最后一个地址时跳转到第一页的第一个地址)。
读写操作通过读写控制位区分。如下图所示。
本文主要介绍字节写和随机地址读。
注意字节写时,要等待当前数据写完再写入下一个数据,有一个延时等待操作,对于AT24C256,需要等待5ms。
五、字节写
写操作的时候,先要确定写的地址和数据,然后依次写器件地址->写地址->写data
其中E2、E1、E0由硬件决定,像如下这张图,地址全被设为0。
下面是往地址1写入数据1的仿真图。
六、随机地址读
读操作的时候,先要确定读的地址,所以:写模式->写读的地址->读模式->读数据
要执行随机读取,设备地址字节和字地址字节将作为虚拟写入序列的一部分传输到 AT24C256C。一旦设备地址字节和字地址字节被 AT24C256C 计时并确认,主机必须生成另一个启动条件。
主机通过再发送一个设备地址字节(读写控制位设置为逻辑 1)来启动当前地址读取。AT24C256C 以 ACK 响应设备地址字节,并串行计时第一个数据字并递增其内部地址计数器。只要主机继续确认每个数据字,设备将继续传输连续的数据字。要结束序列,主机以 NACK 响应,然后是停止条件。
下面是从地址1读出数据1的仿真图。
七、参考资料
https://download.csdn.net/download/m0_66360845/89580067https://download.csdn.net/download/m0_66360845/89580067
总结
以上就是今天要分享的全部内容,本文说明了如何使用AT24C256这块EEPROM芯片,包含对相关操作的解析和读写操作需要注意的点,也给出了仿真图,当然,对于该EEPROM的读写程序在实际中也已经验证通过了。