PotatoPie 2.1/3.0 教程(7)——实验6 EF2 FPGA芯片内部FLASH读写-Anlogic-安路社区-FPGA CPLD-ChipDebug

PotatoPie 2.1/3.0 教程(7)——实验6 EF2 FPGA芯片内部FLASH读写

功能概括:

使用 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 的上电配置文件。

20231220223235454-image

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 。

20231220223601691-image

标准单线读时序

标准单线写使能时序如图所示, 写使能命令 write enable command: 06H。

20231220223636452-image

标准单线写使能时序

标准单线写数据时序如图所示, 写数据命令: page program command: 02H。

20231220223653686-image

写数据时序

扇区擦除时序如图所示, 扇区擦除: sector erase command: 20H。

20231220223800693-image

扇区擦除时序

块擦除时序如图所示, 块擦除: block erase (64KB) command: d8H

20231220223833703-image

块擦除时序

芯片擦除时序如图所示, 片擦除: chip erase command: 60H or c7H。

20231220223855797-image

芯片擦除时序

请登录后发表评论

    没有回复内容