功能概括:
使用 SPI 模块对 Flash 进行读写。
功能说明:
设计 SPI 模块对PotatoPie 板中EF2芯片内置的 Flash 存储资源进行读写,并设计读写验证模块
验证 flash 读写的数据是否正确。
PotatoPie 板FPGA内置容量为 4Mb 的 Flash, 本例程主要使用 TD 软件中的 SPI IP 接口将 bin 文件写入
到 PotatoPie 板的 Flash 中,同时利用 SPI IP 接口读出 Flash 中的 bin 文件内容,该例程包含读写验
证模块,用以测试读写是否正确, 此 Flash 用户也可对其操作。
本例程使用 25MHz 的系统时钟,利用 PLL IP 进行倍频处理,输出 12.5MHz 的时钟作为 SPI Flash
控制模块的输入时钟。其中 FPGA 内置 Flash 引脚接口如下图所示。
安路 ELF2 FPGA 器件中包含 1 个内置的 SPI FLASH, 型号为 GD25Q40BSIG。 该 FLASH 容量为 4Mbit, 支持标准 SPI 单线读写模式, 及 2 线、 4 线读模式。 该 FLASH 已连接到 ELF2 的配置接口, 可以
存储 ELF2 的上电配置文件。
FPGA 内置 Flash 引脚图
从上图可以看出 Flash 有六个引脚,对于 Flash 这六个引脚的具体功能描述如下表所示。
管脚名称 | I/O | 描述 | 是否接到 FPGA 外部端口 |
CS_N | I | FLASH 片选信号 | 是 |
MISO_IO1 | O | FLASH 数据 output | 是 |
WP_N_IO2 | I/O | 写保护 input, 单线模式置 1 | 否 |
MOSI_IO0 | I | FPGA 数据 input | 是 |
CCLK | I | 串行时钟 input | 是 |
HOLD_N_IO3 | I/O | 保持信号 input, 单线模式置 1 | 否 |
功能描述
本 Flash 控制器可以支持读写 16Mb 以下的存储空间读写。硬件上电后,开始进行标准单线写使能
操作, 写 0x00~0xFF 的递增内容, 当对此时地址全部写完后便进行读操作,由于例程添加了读写验证
模块,当读取到的数据与 SPI 写入到 Flash 的数据相同时,读写验证模块中将拉高通过信号表示 SPIFlash 例程读写运行正确;当通过信号始终不拉高,则表示 SPI-Flash 读写不正确,将通过信号连接输
出管脚在保证例程准确运行的同时简化管脚分配。当全部操作进行完成后将把输出的结束信号拉高,
LED1 指示灯点亮。
演示方法
编译下载 FPGA 的位流文件,通过选取 ChipWatcher 窗口进行内置 Flash 写入读出数据验证信号的
抓取,实现内置 Flash 的写入与读出与判断例程进行写入和读出数据是否相等的功能。
内部FLASH读写时序
标准单线模式
端口: SCLK、 CS#、 SI、 SO、 WP#、 HOLD#。 可读写 flash 数据, 擦除, 读写寄存器。
标准单线读时序如图 所示, 读命令 fast read command: 0BH 。
标准单线读时序
标准单线写使能时序如图所示, 写使能命令 write enable command: 06H。
标准单线写使能时序
标准单线写数据时序如图所示, 写数据命令: page program command: 02H。
写数据时序
扇区擦除时序如图所示, 扇区擦除: sector erase command: 20H。
扇区擦除时序
块擦除时序如图所示, 块擦除: block erase (64KB) command: d8H
块擦除时序
芯片擦除时序如图所示, 片擦除: chip erase command: 60H or c7H。
芯片擦除时序
没有回复内容