2020-11-04

秦韵FPGA 转载或原创(八)

基于高云fpga ------ GW2A18

1.spi接口的flash操作

2.flash 的控制逻辑介绍

3.flash 控制器的端口介绍

4.控制ip简介

(一)flash命令介绍

spi接口在之前的博客中有介绍,flash的控制就是4线的spi接口,然后通过寄存器的地址实现。在这里简单的放一下W25Q64器件及其引脚:
在这里插入图片描述在这里插入图片描述芯片的端口见手册,简单的贴一下w25Q64的寄存器表,如果要实现读写,可以通过控制flash Ctrl ip 模块实现,后面介绍模块功能,及其port定义。

(二)控制器ip介绍
flash的控制ip模拟了高云的ip风格,主要是通过操作命令和地址来实现flash的读写。

在这里插入图片描述##### (三)端口介绍

dirtbitsignaldirection
inputclk主时钟
inputrst_n复位,低电平有效
outputflash_sclkflash 时钟
outputflash_ncsflash cs
outputflash_sdoflash 数据输出
inputflash_sdiflash 数据输入
inputctrl_cmd_ready写命令有效信号
input[2:0]ctrl_cmd写命令
inputctrl_wr_enable写使能
input[7:0]ctrl_wr_din写数据
input[23:0]ctrl_wr_addr写地址
inputctrl_rd_enable读使能
output[7:0]ctrl_rd_dout读数据输出
outputctrl_rd_ready读数据有效
input[23:0]ctrl_rd_addr读地址
inputctrl_era_enable擦除使能
input[23:0]ctrl_era_addr擦除地址
inputctrl_wf_enable查询是否空闲使能
outputctrl_wf_free是否空闲标志
inputctrl_id_enable读id使能
output[15:0]ctrl_id_doutflash id
outputctrl_init_done初始化完成
(四)操作简介
4.1 初始化
等待ctrl_init_done 拉高,可以操作flash控制器。
4.2 读数据
首先写cmd寄存器,将ctrl_cmd_ready信号拉高,将cyrl_cmd写入,然后使能读控制信号,即ctrl_rd_enable,ctrl_rd_addr,等待ctrl_rd_ready 信号拉高,
可以进行接收数据。
4.3 写数据
首先写cmd寄存器,将ctrl_cmd_ready信号拉高,将cyrl_cmd写入,然后使能读控制信号,即ctrl_wr_enable,ctrl_wr_addr,ctrl_wr_din,然后可进行连续写数据
操作,该ip暂不支持突发写操作,也可进行其他操作。
4.4 读id
首先写cmd寄存器,将ctrl_cmd_ready信号拉高,将cyrl_cmd写入,然后使能读id信号,即ctrl_id_enable,等待ctrl_wf_free为高,可查看ctrl_id_dout寄存器,
得到flash id号,然后可以做其他操作。
4.5 读空闲
首先写cmd寄存器,将ctrl_cmd_ready信号拉高,将cyrl_cmd写入,然后使能读空闲控制信号,即ctrl_wf_enable,等待ctrl_wf_free为高,然后可以做其他操作。
4.6 擦除扇区
首先写cmd寄存器,将ctrl_cmd_ready信号拉高,将cyrl_cmd写入,然后使能擦除扇区控制信号,即ctrl_era_enable,ctrl_era_addr,等待擦除完成,通过查询空闲寄存器
来获得是否擦除完成。
(五)ip手册(暂定第一版)

不能传文件,暂时介绍这么多吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值