通过FPGA axi_quad_spi IP核操作flash的顺序

initialize

40:0000_000A 复位

1C:8000_0000 使能全局中断

28:0000_0004 打开发送寄存器(SPI DTR)空中断

Write Enable Command Sequence

step1:

60:000001E6 	主机传输禁止  复位RX、TX FIFO  相位CPHA=0 极性CPOL=0  配置主机模式  使能SPI system

60:00000186 	取消复位RX、TX FIFO

step2:

68:{24'h000000,cmd} 		数据发送寄存器填充命令 0x06:写使能命令

68:{24'h000000,add0}		

68:{24'h000000,add1}		

68:{24'h000000,add2}		填充地址

68:{24'h000000,DUMMY_DATA} 

68:{24'h000000,DUMMY_DATA} 	填充结束

step3:

70:00000000 	选通从机		ps:只需传输第一组数据时操作

step4:

60:00000086 	主机传输允许

等待传输完成......

20:00000004 	清零发送寄存器(SPI  DTR)空标志位

step5:

70:000000001	断开从机 	ps:只需传输最后一组数据时操作

step6:

60:00000186 	主机传输禁止
  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
下面是一个简单的Verilog代码示例,用于配置AXI Quad SPI IP核进入四线配置模式: ```verilog module axi_quad_spi_config ( input wire clk, input wire resetn, output reg [3:0] sclk, output reg [3:0] ss, output reg [3:0] mosi, input wire [3:0] miso ); parameter SCLK_DIV = 2; reg [7:0] count = 8'h00; reg [7:0] config_data = 8'h00; always @(posedge clk, negedge resetn) begin if (~resetn) begin sclk <= 4'b0000; ss <= 4'b1111; mosi <= 4'b0000; count <= 8'h00; config_data <= 8'h00; end else begin if (count == 8'h00) begin sclk <= 4'b0001; ss <= 4'b1110; mosi <= config_data[7]; end else if (count == 8'h01) begin sclk <= 4'b0010; mosi <= config_data[6]; end else if (count == 8'h02) begin sclk <= 4'b0100; mosi <= config_data[5]; end else if (count == 8'h03) begin sclk <= 4'b1000; mosi <= config_data[4]; end else if (count == 8'h04) begin sclk <= 4'b0001; mosi <= config_data[3]; end else if (count == 8'h05) begin sclk <= 4'b0010; mosi <= config_data[2]; end else if (count == 8'h06) begin sclk <= 4'b0100; mosi <= config_data[1]; end else begin sclk <= 4'b1000; mosi <= config_data[0]; config_data <= config_data >> 1; end if (count == 8'h07) begin ss <= 4'b1111; count <= 8'h00; config_data <= 8'h00; end else begin count <= count + 1; end end end endmodule ``` 在该模块中,我们使用了AXI Quad SPI IP核的四线模式接口,并实现了一个简单的状态机来向SPI设备发送配置命令。具体来说,我们将四根信号分别连接到SPI设备的SCLK、SS、MOSI和MISO引脚上,并使用一个计数器和一个寄存器来控制发送的数据。在状态机中,我们先将SS信号拉低,然后依次将8位配置数据从高位到低位发送到MOSI信号上,同时在每个位上拉高SCLK信号。当所有数据发送完毕后,我们将SS信号拉高,等待下一次配置。 需要注意的是,该代码只是一个简单的示例,实际的AXI Quad SPI IP核配置程序需要根据具体的SPI设备和配置要求进行设计和实现。同时,我们还需要根据SPI设备的时序要求生成SPI时钟和数据信号,以确保数据传输的正确性。因此,如果您需要实现一个完整的AXI Quad SPI IP核配置程序,建议参考SPI协议规范并进行详细的设计和实现。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值