EEPROM读写测试实验

EEPROM是一种用于计算机系统的非易失性存储器,也常在嵌入式领域中作为数据的存储设备,在物联网及可穿戴设备等需要存储少量数据的场景中也有广泛应用。

实验任务
本节的实验任务是先向EEPROM(AT24C64)的存储器地址0至255分别写入数据0~255;写完之后再读取存储器地址0~ 255中的数据,若读取的值全部正确则LED灯常亮,否则LED灯闪烁。

系统框图:

由系统总体框图可知,FPGA部分包括四个模块,顶层模块(e2prom_top)、读写模块(e2prom_rw)、I2C驱动模块(i2c_dri)和LED灯显示模块(led_alarm)。其中在顶层模块中完成对其余模块的例化。

各模块端口及信号连接如下图所示:

 

顶层模块代码实现:

module e2prom_top(
        input        sys_clk,//系统时钟
        input        sys_rst_n,//系统复位
//eeprom interface
        output        iic_scl,//eeprom的时钟线scl
        inout          iic_sda,//eeprom的数据线sda
//user interface
        output        led//led显示
);
//parameter define
parameter        SLAVE_ADDR=7'b1010000;//器件地址(SLAVE_ADDR)
parameter        BIT_CTRL=1'b1;//字地址位控制参数(16b/8b)
parameter        CLK_FREQ=26'd50_000_000;//i2c_dri模块的驱动时钟频率(CLK_FREQ)
parameter        I2C_FREQ=18'd250_000;//I2C的SCL时钟频率
parameter        L_TIME=17'd125_000;//led闪烁时间参数17
//wire define
wire        dri_clk;//I2C操作时钟

wire        i2c_exec;//I2C触发控制
wire [15:0] i2c_addr;//I2C操作地址
wire [7:0]   i2c_data_w;//I2C写入的数据
wire        i2c_done;//I2C操作结束标志
wire        i2c_ack;//I2C应答标志
wire        i2c_rh_wl;//I2C读写控制
wire        [7:0]        i2c_data_r;//I2C读出的数据
wire        rw_done;//E2PROM读写测试完成
wire        rw_result;//E2PROM读写测试结果0:失败1:成功
//*****************************************************
//**main code
//*****************************************************
//e2prom读写测试模块
e2prom_rw u_e2prom_rw(
        .clk(dri_clk),//时钟信号
        .rst_n(sys_rst_n),//复位信号
//i2c interface
        .i2c_exec(i2c_exec),//I2C触发执行信号
        .i2c_rh_wl(i2c_rh_wl),//I2C读写控制信号

         .i2c_addr(i2c_addr),//I2C器件内地址
        .i2c_data_w(i2c_data_w),//I2C要写的数据
        .i2c_data_r(i2c_data_r),//I2C读出的数据
        .i2c_done(i2c_done),//I2C一次操作完成
        .i2c_ack(i2c_ack),//I2C应答标志0:应答1:未应

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cyclone10 FPGAeeprom(24lc04)实验Verilog源码Quartus17.1工程文件+文档资料, FPGA为CYCLONE10LP系列中的10CL025YU256C8. 完整的Quartus工程文件,可以做为你的学习设计参考。 module i2c_master_top ( input rst, input clk, input[15:0] clk_div_cnt, // I2C signals // i2c clock line input scl_pad_i, // SCL-line input output scl_pad_o, // SCL-line output(always 1'b0) output scl_padoen_o, // SCL-line output enable(active low) // i2c data line input sda_pad_i, // SDA-line input output sda_pad_o, // SDA-line output (always 1'b0) output sda_padoen_o, // SDA-line output enable (active low) input i2c_addr_2byte, input i2c_read_req, output i2c_read_req_ack, input i2c_write_req, output i2c_write_req_ack, input[7:0] i2c_slave_dev_addr, //device address input[15:0]i2c_slave_reg_addr, //word address input[7:0] i2c_write_data, output reg[7:0]i2c_read_data, output reg error ); localparam S_IDLE = 0; localparam S_WR_DEV_ADDR = 1; localparam S_WR_REG_ADDR = 2; localparam S_WR_DATA = 3; localparam S_WR_ACK = 4; localparam S_WR_ERR_NACK = 5; localparam S_RD_DEV_ADDR0 = 6; localparam S_RD_REG_ADDR = 7; localparam S_RD_DEV_ADDR1 = 8; localparam S_RD_DATA = 9; localparam S_RD_STOP = 10; localparam S_WR_STOP = 11; localparam S_WAIT = 12; localparam S_WR_REG_ADDR1 = 13; localparam S_RD_REG_ADDR1 = 14; localparam S_RD_ACK = 15; reg start; reg stop; reg read; reg write; reg ack_in; reg[7:0] txr; wire[7:0] rxr; wire i2c_busy; //It was high level after start signal and low level after stop signal wire i2c_al; //arbitrament lose(The stop signal is detected but no signal is requested.The host setting SDA is high,Actual SDA is low) wire done; wire irxack; //slave receive the respond,0 (receive),1(refuse) reg[3:0] state,next_state; assign i2c_read
EEPROM软件是一种用于取和EEPROM芯片数据的软件工具。EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种可擦可编程的只存储器,它可以通过电信号进行擦除和编程操作。 EEPROM软件通常具有以下功能: 1. 取数据:软件可以从EEPROM芯片中取数据,并将其显示在用户界面上。用户可以选择取特定地址范围的数据,或者将整个EEPROM芯片的数据取到计算机。 2. 入数据:软件允许用户将数据EEPROM芯片的特定地址。用户可以在界面上输入数据,并选择要入的地址。软件将通过与EEPROM芯片通信,将数据入指定的地址。 3. 编辑数据:软件还可以允许用户编辑EEPROM芯片中已存在的数据。用户可以选择要编辑的地址,并在界面上输入新的数据值。 4. 擦除数据:有时候需要将EEPROM芯片中的某些数据擦除。软件可以允许用户选择要擦除的地址范围,并将这些地址上的数据擦除为初始状态。 5. 校验数据:软件可以提供校验功能,用于验证EEPROM芯片中的数据是否正确。用户可以选择要校验的地址范围,并与期望值进行比较,以判断数据是否匹配。 EEPROM软件通常需要与专门的硬件设备配合使用,例如EEPROM编程器或器。软件通过与硬件设备进行通信,来实现对EEPROM芯片的操作。该软件能够提高EEPROM芯片数据的取和入的效率和准确性,使得相关工作更加便捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值