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