存档2022年4月22日

QSPI操作flash方法指导

本文主要介绍基于ft2000/4 D2000芯片 操作qspi接口的flash设备,用于指导读写flash,以及完成flash芯片写保护等功能开发。

一、flash寄存器简介

flash的常规操作为 读、写、擦除这三个基本动作,本文以GD25LQ128D型号为例。     首先我们熟悉一下flash芯片手册,flash芯片状态寄存器分为S15-S0 基本的flash操作命令对应的寄存器: 这些命令需要结合cpu软件编程手册,才可以发送出去, 二、CPU qspi寄存器简介 寄存器基址:0x28014000 在芯片端对于读操作,芯片层面做了直接映射,固件层面访问总线的0地址开始即可访问到flash里面的内容。在操作系统做了虚拟地址转换,无法直接访问0地址,需要通过rw或者busybox命令才可访问。

三、读flash   

 mm 0x0 -w 4         //从0x0地址开始读取flash,每次读取4字节数据,按下回车继续读取下四字节。

四、写flash   

结合芯片的软件编程手册,以及flash数据手册,可以执行如下命令
  • mm 28014010 -w 4 0x06400005   //发送写使能命令、数据有延时,使用32分频     mm 2801401c -w 4 0x1          //命令生效,操作该寄存器可以触发发送命令 mm 28014010 -w 4 0x0140200c   //发送flash写命令,发送两字节,有数据传输,0x00fc对应具体flash寄存器 mm 2801401c -w 4 0x00FC     //写入flash的具体数据,配置写保护模式(保护从0地址开始的16M数据) mm 2801401c -w 4 0x1         //命令生效 mm 28014010 -w 4 0x05002007  //读状态寄存器,具体读取(S7-S0) mm 2801401c -w 4 0x1         //命令生效 mm 2801401c -w 4          //读低位数据端口寄存器           0x000000002801401C : 0x000000FC      //读出来的状态寄存器配置 mm 28014010 -w 4 35002007  //读状态寄存器-1具体读取(S15-S8) mm 2801401c -w 4 0       //命令生效 mm 2801401c -w 4        //读低位数据端口寄存器          0x000000002801401C : 0x00000000    //读出来的状态寄存器配置

五、擦除flash   

    mm 28014010 -w 4 0x0240200c   //发送flash擦写命令,发送两字节,有数据传输     mm 2801401c -w 4 0xffff     //擦写具体flash地址段,根据实际情况确定 本章节就介绍到这里,各位还有疑问的话,可以共同探讨一下,主页邮件联系。