V3学院带你学习EEPROM读写实验

一、实验背景
在消费者电子电讯和工业电子中看上去不相关的设计里经常有很多相似的地方例如几乎每个系统都包括一些智能控制通常是一个单片的微控制器,通用电路例如LCD驱动器远程I/O,RAM,EEPROM或数据转换器,面向应用的电路譬如收音机和视频系统的数字调谐和信号处理电路或者是音频拨号电话的DTM发生器,为了使这些相似之处对系统设计者和器件厂商都得益而且使硬件效益最大电路最简单Philips开发了一个简单的双向两线总线实现有效的IC之间控制这个总线就称为Inter IC或I2C总线现在Philips包括超过150种CMOS和双极性兼容I2C总线的IC可以执行前面提到的三种类型的功能所有符合I2C总线的器件组合了一个片上接口使器件之间直接通过I2C总线通讯这个设计概念解决了很多在设计数字控制电路时遇到的接口问题
二、实验目的
实现EEPROM 24LC64的随机读写和页面读写两种模式,掌握I2C时序驱动方式
三、实验原理图

四、IIC总线特征
学习I2C,首先我们要知道I2C是一种串行接口,I2C通信是一种串行通信。在实际的数字系统中,我们的数据经常是以并行的方式产生及存储的。而将数据通过进行传输时,通常会是串行地发送和接收的。比如我们常见的SPI,UART,I2C,USB,SATA等接口,均是串行接口。因此,在数字系统中我们经常会遇到需要将串行数据接收下来转为并行数据存储,或者是将并行数据转换成串行数据发送出去的情况。说白了,就是发送端要将数据排个队,一个一个地往外蹦,接收端接收到了这些数据又要将它们像串糖葫芦一个一个串起来,成为并行的数据。
五、IIC总线读写时序
图1随机写

图2页面写

图3随机读

图4页面读

六、实验原理
实验1:写控制按键按下的时候,FPGA在EEPROM中某一个固定的地址写入一个固定的数据,然后当读请求按键按下的时候,FPGA从该固定地址读出这一个字节的数据并发送到数码管显示。
实验2:写控制按键按下的时候,FPGA在EEPROM中某一个固定的地址开始连续写入两个固定的数据,然后当读请求按键按下的时候,FPGA从该固定地址开始连续读出这两个字节的数据同时将这两个数的和值计算出来并发送到数码管显示。
七、实验分析
a)建立相应模块

b)随机读写实验仿真写时序

c)随机读写实验仿真读时序

八、实验结果
1:随机读写
初始状态,Led点亮说明写入完成读出数据,
2:页面读写
读出两个数的和值
九、仿真注意事项
由于我们的仿真测试代码中没有提供ACK的逻辑,所以仿真的时候,在控制器代码中涉及到检测ACK的部分必须跳过去,状态直接向下跳转才可以运行,而且我们时钟分频计数到250,这对仿真来说时间太长了,也需要改短。

百度贴吧视频分享链接:http://tieba.baidu.com/p/5016391594?ie=utf-8


v3学院作为国内最专业的FPGA培训机构,秉承授业解惑,打造匠人精神的宗旨为全国的fpga爱好者提供短期技能指导、长期职前培训!

时间: 2024-08-07 17:01:23

V3学院带你学习EEPROM读写实验的相关文章

v3学院带你学习《驱动蜂鸣器演奏歌曲》

此文章为原创出自 V3学院 www.v3edu.org,FPGA培训专家 一.实验背景(一)蜂鸣器的介绍1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机.打印机.复印机.报警器.电子玩具.汽车电子设备.电话机.定时器等电子产品中作发声器件.2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型.3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母"H"或"HA"(旧标准用"FM"."LB"

v3学院带你学习-时序逻辑中时钟上升沿对齐数据变化时的处理技巧的FPGA实现

此文章为原创出自 V3学院 www.v3edu.org 时序逻辑中,数据都是在时钟的上升沿或者下降沿时刻进行采样的,以上升沿为例,时钟采数据时应该采的是时钟上升沿左边变量的值,运算的结果体现在时钟上升沿的右边,但是,在用modelsim等一些仿真工具进行仿真的时候,如果时钟上升沿刚好和数据变化对齐,就会出现与上述理论不一致的原因,如下仿真波形图: 上图中的例子是用时钟上升沿控制变量a和b按位或运算并且把结果赋值给c的小实验,根据前面说的理论,黄线位置处,时钟上升沿采的变量a和b的值都为0,进行或

V3学院带你学习-如何让chipscope里面的信号不被优化掉

此文章为原创出自 V3学院 www.v3edu.org,FPGA培训专家 在用ise对FPGA开发的时候,从仿真工具仿真的结果来看,功能都是能实现的,但是实际下载之后却不能实现具体的功能.这时我们一般会用ise自带的chipscope即在线逻辑分析仪对信号进行采样,查看硬件中具体的状态.但是很多时候,这个软件也有令我们失望的时候,因为ise里面的综合器的功能比较强大,把工程里面的一些信号给优化掉了,chipscope里面踩不到这些信号,而我们恰好是需要查看这些信号的.这时就可以用下面调取ip核的

v3学院带你学习数码管

在很多初级开发板上面,数码管属于标配的外设,其基本的单元是发光二极管,一般是由八个发光二极管组成"8"字形的结构,如图1所示. 图1 数码管二极管结构 八个发光二极管中的一端会连接一起,若是阳极(正极)连到一起称为数码管共阳极,阴极(负极)连到一起称为共阴极,没有连接到一起的一端分别连接到FPGA芯片的八个引脚上.当我们想在数码管上显示所需的数字时,只需要导通对应的发光二极管即可. 一般来说在一个开发板上面可能会有多个数码管,每一个数码管需要占用FPGA芯片的八个引脚,如此FPGA芯片

V3学院带你学习-缩短汉明码Hamming(12,8)的FPGA实现

此文章为原创出自 V3学院 www.v3edu.org,FPGA培训专家汉明码是一种实现简单并且可以检测和纠正错误的编码, 汉明码是在原编码的基础上附加一部分数据比特,使其满足纠错码的条件.它属于线性分组码,由于线性码的编码和译码容易实现,至今仍是应用最广泛的一类码.V3学院FPGA Verilog 汉明码实现,Hamming(12,8)表示数据位长K=8,编码后码字长N=12,校验位长R=12-8=4,最小汉明距离是H=3(观察其生成矩阵,不同行向量间最少不同比特的数量),纠错能力为(H-1)

FPGA培训专家 V3学院带你学习 按键消抖 和 边缘检测

FPGA培训专家 V3学院 一般情况下,我们从按下按键到松开基本需要大于几十毫秒的时间,系统时钟的周期处于纳秒级,因此我们按下一次按键会被大于十万个时钟的上升沿采集到,然而我们希望的是按下一次按键只被一次上升沿采集到,不然会被认为按了多次按键,所以我们需要对我们的按键进行处理.假设按键在没被按下时为高电平,被按下时处于低电平,如图1所示的波形图. 图1 按键波形图 由图1 分析可知在key被按下时有且仅有一个key的上升沿和一个key的下降沿,我们可以通过检测key的上升沿或者下降沿来确定按键被

V3学院带你学习-缩短汉明码Hamming(12,8)的FPGA实现-第二部分

此文章为原创出自 V3学院 www.v3edu.org,FPGA培训专家 测试激励模块 tb_hamming_12_8.V //功能描述:给被测模块提供时钟激励,并统计解码后数据的正确性 `timescale 1ns/1ns module tb_hamming_12_8; reg sclk; wire [11:0] ham_o; wire ham_ov; wire [11:0] deham_o; wire deham_ov; reg [31:0] err_cnt; reg [23:0] buff

FPGA培训专家 V3学院带你学习 使用modesim仿真工具

首先我们建立LED灯的功能模块和  LED灯仿真模块: 打开modesim,新建工程, 选择工程保存路径, 添加需要仿真的功能文件和仿真文件 进行编译,检查错误 没有错误,添加仿真波形 进行仿真

v3学院带你学习——Verilog基本语法精讲

? ? ? ? ? ? ? ? ? ? ? ?