zoukankan      html  css  js  c++  java
  • STM32之GD25Q256应用笔记

    前言

    • 使用标准SPI指令格式;
    • 3字节地址模式或4字节地址模式;
    • 支持SPI 总线 模式0 和 模式3
    • 存储容量32MB
    • 时钟频率范围:80Mhz – 104Mhz
    • 主机:STM32F103ZET6;主机的SPI总线模式应该与从机的SPI总线模式保持一致;

         

    • 电路原理

         

    • 内存组织

         

         

    • 状态寄存器和扩展地址寄存器

         

         

         

      备注:外部扩展寄存器仅用于3字节地址模式,用来设置更高的地址;

         

      部分位说明:

      WIP位:只读;可以根据这个位判断Flash的工作状态;WIP = 1Flash正在执行写(数据或状态寄存器)操作或擦除操作;WIP = 0:无执行写(数据或状态寄存器)操作或擦除操作;

      WEL位:可读写;WEL = 1:使能写(数据或状态寄存器)操作或擦除操作;WEL = 0:失能写(数据或状态寄存器)操作或擦除操作;

      TB位、BP3BP2BP1BP0位、SRP1SRP0位:可读写;保持0,不使用数据保护模式;

      LB3LB2LB1位:OTP,一次性可编程;一旦这三个位都被置1,安全寄存器将永久性变为只读;(GD25Q256提供可被编程和擦除的具有2048字节的安全寄存器)

      DRV1DRV0位:可读写;可编程读操作速度,默认值为0175%;可配置为00100% 来增加读取速度;

      PE位:只读;编程出错标志;

      EE位:只读;擦除出错标志;

      ADS位:只读;指示当前Flash的地址模式;ADS = 03字节地址模式;ADS = 14字节地址模式;

      ADP位:可读写;决定上电或复位后的Flash的地址模式;ADP = 03字节地址模式;ADP = 14字节地址模式;

      A24位:可读写;A24 = 1:选择高128Mb01000000h – 01FFFFFF)内存空间;A24 = 0:选择低128Mb00000000h – 00FFFFFFh)内存空间;

    • 一些命令使用的注意事项
    • 在传输完一帧数据的最后一个位必须取消片选(把片选线拉高);
    • 对于以下命令:页编程、扇区擦除、块擦除、整片擦除、写状态寄存器、写使能/失能、深度休眠指令,必须在传输完一帧数据的最后一个位的字节边界(准确的8的倍数个CLK脉冲后),取消片选,否则命令不会被执行。
    • 对于页编程指令,如果写入不足一个字节,那么写使能WEL不会被取消。

         

    • 命令列表

         

         

         

      备注:

      Table of ID Definitions:

         

      Security Registers Address

      Security Register1: A23-A16=00H, A15-A12=1H, A11=0b, A10-A0=Byte Address;

      Security Register2: A23-A16=00H, A15-A12=2H, A11=0b, A10-A0=Byte Address;

      Security Register3: A23-A16=00H, A15-A12=3H, A11=0b, A10-A0=Byte Address.

         

    • 命令解析
    • Write Enable (WREN) (06H)

      在页编程、擦除、写状态寄存器之前,必须先进行写使能。

         

    • Write Disable (WRDI) (04H)

      以下操作将会使写使能位失效:上电、页编程、擦除、写状态寄存器、写失能指令;

      写失能后,不能进行页编程、擦除以及写状态寄存器;注意:不能在执行页编程、擦除、写状态寄存器期间,进行写失能操作,否则命令不会生效;

         

    • Read Status Register (RDSR) (05H or 35H or 15H)

      可以在任何时候读取状态寄存器;注意:当WIP被置0时,读取到的值为准!

         

    • Write Status Register (WRSR) (01H or 31H or 11H)

      I 写状态寄存器之前,必须先写使能;

      ii、 写操作对S0S1S8S10S15S18S19无影响;

      iii、必须在传输完最后一位的时候,把片选取消,否则写状态寄存器将会失败;

      iv、写状态寄存器期间,WIP位置1,当写操作完成,WIP0,并且写使能失效(WEL:1 -> WEL:0);

         

    • Read Extended Register (C8H)

         

    • Write Extended Register (C5H)

      写操作之前,不需要执行写使能操作;掉电或复位,该寄存器的值将会清除;

         

    • Read Data Bytes (READ 03H or 4READ 13H)

      i 可以读取任意地址;

      ii、 字节地址自加;

      iii、当WIP = 1,不能进行读取操作;

         

         

         

    • Read Data Bytes at Higher Speed (Fast Read 0BH or 4Fast Read 0CH)

      i、 空闲时钟数量可编程(决定Dummy byte的数量);

      ii、字节地址自加;

         

         

         

    • Page Program (PP 02H or 4PP 12H)

      i 页编程前,必须先进行写使能操作;

      ii、 写操作必须以页首地址作为起始地址;

      iii、写入前先擦出;(按照Datasheet的说法,应该是写入前不需要先擦除的,但是,如果不先擦除,写入再读出的数据是错乱的)

      iv、一次写入的大小不应超过最大页大小;

         

         

         

    • Sector Erase (SE 20H or 4SE 21H) Page Program (PP 02H or 4PP 12H)

      i 擦除之前必须先执行写使能操作;

      ii、 擦除期间,WIP1;擦除完成,WIP0;注意:WIP是在片选取消后被置位的;

      iii、地址可以是待擦除扇区内的任意地址;

         

         

         

    • 32KB Block Erase (BE32 52H or 4BE32 5CH)

      i 擦除之前必须先执行写使能操作;

      ii、 擦除期间,WIP1;擦除完成,WIP0;注意:WIP是在片选取消后被置位的;

      iii、地址可以是待擦除块区内的任意地址;

         

         

         

    • 64KB Block Erase (BE64 D8H or 4BE64 DCH)

      i 擦除之前必须先执行写使能操作;

      ii、 擦除期间,WIP1;擦除完成,WIP0;注意:WIP是在片选取消后被置位的;

      iii、地址可以是待擦除块区内的任意地址;

         

         

         

    • Chip Erase (CE) (60/C7H)

      i 擦除之前必须先执行写使能操作;

      ii、 擦除期间,WIP1;擦除完成,WIP0;注意:WIP是在片选取消后被置位的;

         

    • Deep Power-Down (DP) (B9H)

      i 这个模式仅仅只能通过except the Release from Deep Power-Down and Read Device ID (RDI) 命令或者复位来退出;

         

    • Enter 4-Byte Address Mode (B7H)

      i 状态寄存器ADS位自动置1,表示已进入4字节地址模式;

         

    • Exit 4-Byte Address Mode (E9H)

      i 状态寄存器ADS位自动置0,表示已退出4字节地址模式;

         

    • Clear SR Flags (30H)

         

    • Release from Deep Power-Down and Read Device ID (RDI) (ABH)

         

         

    • Read Manufacture ID/ Device ID (REMS) (90H)

         

    • Read Identification (RDID) (9FH)

         

    • Erase Security Registers (44H)

      i Flash32048个字节的安全寄存器;

      ii、擦除之前必须先执行写使能操作;;

      iii、擦除期间,WIP1;擦除完成,WIP0;注意:WIP是在片选取消后被置位的;

         

         

         

    • Program Security Registers (42H)

      i、 写入操作至少写入一个字节;

      ii、编程之前必须先执行写使能操作;;

      iii、写入期间,WIP1;擦除完成,WIP0;注意:WIP是在片选取消后被置位的;

         

         

         

    • Read Security Registers (48H)

      i、 可以读取范围内任意地址,并且地址自增;

      ii、如果A0 – A10范围超过7FFFH,会自动复位为0000H

         

         

        

  • 相关阅读:
    在线微博数据可视化
    SAP系统和微信集成的系列教程之六:如何通过OAuth2获取微信用户信息并显示在SAP UI5应用中
    SAP系统和微信集成的系列教程之五:如何将SAP UI5应用嵌入到微信公众号菜单中
    Jerry在2020 SAP全球技术大会的分享:SAP Spartacus技术介绍的文字版
    索引的正确“打开姿势”
    15个问题告诉你如何使用Java泛型
    华为云FusionInsight MRS:千余节点滚动升级业务无中断
    你的开发好帮手:下一代云原生开发工具技术
    云图说|读请求太多怎么办?一键读写分离来帮忙
    FusionInsight MRS:你的大数据“管家”
  • 原文地址:https://www.cnblogs.com/lilto/p/11877355.html
Copyright © 2011-2022 走看看