基于FPGA读写AT24C256 EEPROM芯片

在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.youkuaiyun.com/download/m0_66360845/89580067icon-default.png?t=O83Ahttps://download.youkuaiyun.com/download/m0_66360845/89580067


总结

         以上就是今天要分享的全部内容,本文说明了如何使用AT24C256这块EEPROM芯片,包含对相关操作的解析和读写操作需要注意的点,也给出了仿真图,当然,对于该EEPROM的读写程序在实际中也已经验证通过了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA与信号处理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值