深入剖析RX64M/RX71M Group Flash Memory:硬件接口與應用指南
在電子工程領域,微控制器(MCU)的閃存(Flash Memory)是至關重要的組成部分,它不僅存儲著程序代碼,還能保存關鍵數據。今天,我們將深入探討Renesas的RX64M Group和RX71M Group閃存的硬件接口,為電子工程師們提供全面的技術指導。
文件下載:R5F571MGCDLK#20.pdf
一、閃存特性與模塊配置
1.1 閃存特性
RX64M和RX71M Group的閃存具有多種特性,包括編程/擦除功能、安全功能、保護功能以及中斷支持。其專用的閃存序列器(Flash Sequencer)通過內部外設總線6執行編程和擦除操作,還支持編程或擦除的暫停、恢復以及后臺操作(BGO)。同時,閃存具備硬件安全功能,可防止數據被非法篡改或讀取,以及硬件保護功能,避免錯誤編程。此外,它還支持序列器處理完成中斷和錯誤中斷。
1.2 模塊配置
閃存相關模塊主要由閃存序列器構成,該序列器由閃存控制單元(FCU)和閃存應用命令接口(FACI)組成。FCU負責閃存的基本控制,FCURAM用于存儲控制FCU執行的固件,FACI通過內部外設總線6接收FACI命令并相應地控制FCU操作。在復位時,FACI會將數據從閃存傳輸到選項設置內存。
二、地址空間與寄存器
2.1 地址空間
| 使用閃存硬件接口需要訪問多個區域,包括硬件寄存器區域、FACI命令發布區域、FCU固件存儲區域和FCURAM區域。具體地址和容量信息如下表所示: | 區域 | 地址 | 容量 |
|---|---|---|---|
| 硬件寄存器區域 | 見第4節寄存器部分 | 見第4節寄存器部分 | |
| FACI命令發布區域 | 007E 0000h | 4字節 | |
| FCU固件存儲區域 | FEFF F000h - FEFF FFFFh | 4 K字節 | |
| FCURAM區域 | 007F 8000h - 007F 8FFFh | 4 K字節 | |
| 配置設置區域 | 0012 0040h - 0012 007Fh | 64字節 |
2.2 寄存器
文檔中詳細介紹了多個寄存器,這些寄存器在使用閃存硬件接口時起著關鍵作用。以下是部分重要寄存器的介紹:
- Flash P/E Protect Register (FWEPROR):用于控制代碼閃存、數據閃存或選項設置內存的編程和擦除,以及鎖定位的編程和擦除,還有空白檢查。通過設置FLWE[1:0]位來實現相應的禁止或允許操作。
- Flash Access Status Register (FASTAT):指示代碼閃存或數據閃存訪問是否違規,以及閃存序列器是否處于命令鎖定狀態。包含ECRCT、DFAE、CMDLK和CFAE等標志位。
- Flash Access Error Interrupt Enable Register (FAEINT):用于啟用或禁用閃存訪問錯誤(FIFERR)中斷請求,可分別針對不同的錯誤標志進行設置。
- Flash Ready Interrupt Enable Register (FRDYIE):啟用或禁用閃存準備好(FRDY)中斷請求,當閃存序列器完成編程、擦除或空白檢查命令處理時,FASTAT.FRDY標志從0變為1,可觸發中斷。
三、閃存序列器操作模式
閃存序列器有三種操作模式,通過改變FENTRYR寄存器的值來實現模式轉換:
- 讀取模式(Read Mode):當FENTRYR寄存器值為0000h時,閃存序列器處于讀取模式,此時不接收FACI命令,代碼閃存和數據閃存均可讀取。
- 代碼閃存編程/擦除模式(Code Flash Memory P/E Mode):當FENTRYR寄存器值為0001h時,閃存序列器進入代碼閃存編程/擦除模式,可通過FACI命令對代碼閃存進行編程或擦除。在該模式下,若禁用后臺操作(BGO),代碼閃存不可讀取;若啟用BGO,代碼閃存可讀。
- 數據閃存編程/擦除模式(Data Flash Memory P/E Mode):當FENTRYR寄存器值為0080h時,閃存序列器進入數據閃存編程/擦除模式,可通過FACI命令對數據閃存進行編程或擦除。在該模式下,數據閃存不可讀取,但代碼閃存可讀。
四、FACI命令
4.1 FACI命令列表
| FACI命令用于控制閃存的各種操作,包括編程、塊擦除、暫停/恢復編程或擦除、清除狀態、強制停止、空白檢查、配置設置、鎖定位讀取等。具體命令及其描述如下表所示: | FACI命令 | 描述 |
|---|---|---|
| 編程(Programming) | 用于對用戶區域和數據區域進行編程,用戶區域編程單位為256字節,數據區域編程單位為4字節。 | |
| 塊擦除(Block erase) | 用于擦除用戶區域、鎖定位或數據區域,擦除單位為一個塊。 | |
| 編程/擦除暫停(P/E suspend) | 暫停編程或擦除處理。 | |
| 編程/擦除恢復(P/E resume) | 恢復暫停的編程或擦除處理。 | |
| 狀態清除(Status clear) | 初始化FSTATR寄存器中的ILGLERR、ERSERR和PRGERR標志,并將閃存序列器從命令鎖定狀態釋放。 | |
| 強制停止(Forced stop) | 強制停止FACI命令處理,并初始化FSTATR寄存器。 | |
| 空白檢查(Blank check) | 用于檢查數據區域是否為空,空白檢查單位為4字節至64 K字節(以4字節為單位指定)。 | |
| 配置設置(Configuration setting) | 用于設置ID、安全功能、選項設置內存和可信內存(TM)功能,設置單位為16字節。 | |
| 鎖定位讀取(Lock-bit read) | 讀取用戶區域的鎖定位,并將結果存儲在FLKSTAT寄存器中,編程單位為1位(一個塊的鎖定位)。 |
4.2 FACI命令使用
不同模式下可使用的FACI命令不同,使用前需檢查閃存序列器的狀態。在代碼閃存編程/擦除模式和數據閃存編程/擦除模式下,可使用的命令有所差異。例如,在代碼閃存編程/擦除模式下,可使用編程、塊擦除、鎖定位編程和讀取等命令;在數據閃存編程/擦除模式下,可使用編程、塊擦除、空白檢查和配置設置等命令。
五、安全功能
5.1 軟件保護
軟件保護通過控制寄存器和鎖定位設置來禁用代碼閃存的編程和擦除。具體包括:
- FWEPROR保護:除非FWEPROR.FLWE[1:0]位設置為01b,否則任何模式下都無法進行編程。
- FENTRYR保護:當FENTRYR寄存器設置為0000h時,閃存序列器進入讀取模式,此時不能接受FACI命令,若嘗試在讀取模式下發出FACI命令,閃存序列器將進入命令鎖定狀態。
- 鎖定位保護:用戶區域的每個塊都包含一個鎖定位,當FPROTR.FPROTCN位為0時,鎖定位設置為0的塊禁止編程/擦除;若要對這些塊進行編程或擦除,需將FPROTR.FPROTCN位設置為1。
5.2 錯誤保護
錯誤保護用于檢測非法FACI命令、非法訪問和閃存序列器故障。一旦檢測到這些錯誤,閃存序列器將進入命令鎖定狀態,禁止接受FACI命令。要從命令鎖定狀態釋放,需在FASTAT寄存器中的CFAE和DFAE標志為0時發出狀態清除或強制停止命令。
5.3 引導程序保護
用戶引導區域通常在正常操作模式和用戶引導模式下受到寫保護,只有在編程模式(引導模式,適用于SCI或USB接口)下才能被覆蓋,可用于安全存儲引導程序等程序。
六、使用注意事項
在使用RX64M和RX71M Group閃存時,需要注意以下幾點:
- 避免讀取中斷區域:編程或擦除中斷區域的數據是未定義的,應避免從中獲取指令或讀取數據,以免導致錯誤操作。
- 禁止重復寫入:閃存區域不能進行二次寫入,若要覆蓋已寫入的數據,需先擦除該區域。
- 編程和擦除期間的復位:在編程和擦除期間,若因RES#引腳信號導致復位,需在復位信號斷言后,等待至少tRESWF(具體時間見硬件手冊),確保工作電壓在電氣特性規定范圍內后,再釋放設備的復位狀態。
- 中斷和異常向量分配:編程或擦除期間產生的中斷或其他異常可能導致從代碼閃存中獲取向量。若不滿足使用后臺操作的條件,需將向量獲取地址設置為非代碼閃存地址。
- 異常終止處理:若編程/擦除因RES#引腳產生的復位而異常終止,閃存的編程/擦除狀態無法驗證或檢查。對于異常終止的區域,需再次擦除以確保其完全擦除后再使用。
- 編程和擦除期間的禁止操作:編程和擦除期間,禁止將電源的工作電壓超出允許范圍,以及改變PCLK/FCLK的頻率。
七、電氣特性
文檔還提供了閃存的電氣特性,包括FCURAM數據傳輸時間、FACI命令設置時間、FACI命令處理時間和強制停止命令時間等。這些特性在特定的電壓和時鐘頻率條件下給出,為工程師在設計電路時提供了重要參考。
總之,Renesas的RX64M和RX71M Group閃存具有豐富的功能和特性,但在使用過程中需要嚴格遵循相關的操作規范和注意事項。希望本文能為電子工程師們在使用該閃存時提供有益的幫助。你在實際應用中是否遇到過相關問題呢?歡迎在評論區分享你的經驗和見解。
-
硬件接口
+關注
關注
0文章
50瀏覽量
11253
發布評論請先 登錄
Renesas Flash Programmer V2.05 Flash memory programming software 用戶手冊: RX100, RX200, RX600(Except RX64M)
[CubeSuite+] Renesas Starter Kit+ for RX64M 快速入門指南
[CS+] Renesas Starter Kit+ for RX71M 快速入門指南
[e2studio]Renesas Starter Kit+ for RX71M 快速入門指南
Renesas Flash Programmer V2.05 Flash memory programming software 用戶手冊: RX100, RX200, RX600(Except RX64M)
[CS+] Renesas Starter Kit+ for RX71M 快速入門指南
[e2studio]Renesas Starter Kit+ for RX71M 快速入門指南
[CubeSuite+] Renesas Starter Kit+ for RX64M 快速入門指南
深入剖析RX64M/RX71M Group Flash Memory:硬件接口與應用指南
評論