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

       

       

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM