0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

華大電子MCU CIU32L061x8存儲(chǔ)器(Flash)一

沈陽(yáng)芯碩科技 ? 來源:jetson024 ? 作者:jetson024 ? 2023-02-13 09:23 ? 次閱讀

5、Flash存儲(chǔ)器(Flash)

5.1簡(jiǎn)介

Flash存儲(chǔ)器連接在AHB總線上,由Flash控制器統(tǒng)一管理,可對(duì)存儲(chǔ)器執(zhí)行取指、讀取、編程和擦除操作,并具有安全訪問機(jī)制和讀寫保護(hù)等功能。

沈陽(yáng)芯碩科技有限公司是華大電子代理商,有技術(shù)問題可咨詢我們。

5.2Flash主要特性

l高達(dá)128 KB的用戶存儲(chǔ)空間

-塊大?。?6 KB

-頁(yè)大小:512字節(jié)

l32-bits位寬讀取/寫入

l支持頁(yè)擦除、塊擦除、批量擦除

l可配置3種讀出保護(hù)等級(jí)(RDP)

l2塊可配置的代碼讀出保護(hù)區(qū)域(PCROP)

l2塊可配置的寫入保護(hù)區(qū)域(WRP)

l可配置大小的用戶安全存儲(chǔ)區(qū)域

5.3Flash功能描述

5.3.1Flash存儲(chǔ)器組成

Flash存儲(chǔ)器按32-bits位寬執(zhí)行讀寫訪問,可存儲(chǔ)指令和數(shù)據(jù)。

Flash存儲(chǔ)器的組成如下:

lUser flash區(qū):用于存儲(chǔ)用戶程序和數(shù)據(jù),存儲(chǔ)空間為 128KB,分成8個(gè)

塊(Block),每個(gè)塊包含32個(gè)頁(yè)(Page),每頁(yè)512字節(jié);

lSystem memory區(qū):用于存儲(chǔ) Bootloader和算法API,存儲(chǔ)空間為14KB;

lOption bytes區(qū):用于存儲(chǔ)外設(shè)和存儲(chǔ)器保護(hù)配置的選項(xiàng)字節(jié);

lEngineer區(qū):用于存儲(chǔ)UID、TS/BGR校準(zhǔn)值;

lOTP區(qū):一次性可編程區(qū)域,共512字節(jié)。

poYBAGPpjvaAGcXoAAEPdk1vxdQ542.png

5.3.2Flash讀取訪問等待周期

Flash存儲(chǔ)器連接在AHB總線上,讀取Flash時(shí)使用HCLK時(shí)鐘。當(dāng)HCLK的 時(shí)鐘頻率超出Flash存儲(chǔ)器的工作頻率時(shí),就會(huì)造成數(shù)據(jù)讀取錯(cuò)誤,此時(shí)需要插入等待周期。 Flash訪問控制寄存器(FLASH_ACR)中的LATENCY[1:0]位域,用于配置Flash讀取訪問的等待周期,HCLK時(shí)鐘頻率與Flash讀取訪問等待周期的對(duì)應(yīng)關(guān)系見 下表。

pYYBAGPpjvaAfbE-AABPtPXX6Mw653.png

為保證Flash讀取訪問不出現(xiàn)異常或錯(cuò)誤,當(dāng)要改變HCLK的時(shí)鐘頻率時(shí),必須按照特定步驟進(jìn)行配置。

l提高HCLK頻率的配置步驟:

1) 通過配置FLASH_ACR寄存器中的LATENCY[1:0]位域,增大Flash

讀取訪問的等待周期;

2) 讀取LATENCY[1:0]位域,檢查等待周期已配置成功;

3) 提高HCLK頻率,可通過配置RCC時(shí)鐘配置寄存器(RCC_CFG)

中的SYSW[2:0]位域,切換更高頻率的時(shí)鐘源,或通過配置HPRE[2:0]

位域,減小系統(tǒng)時(shí)鐘的分頻值;

4) 配置SYSW[2:0]位域后,必須對(duì)RCC_CFG寄存器中的SYSWS[2:0]

位域進(jìn)行檢查,確認(rèn)系統(tǒng)時(shí)鐘已切換完成。

l降低HCLK頻率的配置步驟:

1) 降低HCLK頻率,可通過配置RCC時(shí)鐘配置寄存器(RCC_CFG)

中的SYSW[2:0]位域,切換更低頻率的時(shí)鐘源,或通過配置HPRE[2:0]

位域,增大系統(tǒng)時(shí)鐘的分頻值;

2) 配置SYSW[2:0]位域后,必須對(duì)RCC_CFG寄存器中的SYSWS[2:0]

位域進(jìn)行檢查,確認(rèn)系統(tǒng)時(shí)鐘已切換完成;

3) 通過FLASH_ACR寄存器中的LATENCY[1:0]位域,減小Flash讀取

訪問的等待周期;

4) 讀取LATENCY[1:0]位域,檢查等待周期已配置成功。

5.3.3Flash解鎖

為防止Flash被意外修改,增加了保護(hù)措施,必須向特定寄存器寫入密鑰,才能解鎖相關(guān)功能的配置權(quán)限。

5.3.3.1Flash控制寄存器解鎖

復(fù)位后,F(xiàn)lash控制寄存器(FLASH_CR)將處于寫保護(hù)鎖定狀態(tài)。要配置

FLASH_CR寄存器,需首先進(jìn)行解鎖操作。

FLASH_CR寄存器的解鎖操作,必須嚴(yán)格按照以下步驟順序執(zhí)行:

1) 向FLASH_CRKEY寄存器寫入密鑰 1:0xE57A 1A85;

2) 向FLASH_CRKEY寄存器寫入密鑰 2:0x7C6E 8391;

3) 檢查FLASH_CR寄存器中的LOCK位,當(dāng)該位清0時(shí),表明FLASH_CR寄存器已解鎖。解鎖完成后,才能對(duì)FLASH_CR寄存器進(jìn)行配置。

注意:FLASH_CR寄存器中與選項(xiàng)字節(jié)相關(guān)的控制位(OBL_LAUNCH和OPTSTRT), 必須在 Flash選項(xiàng)字節(jié)解鎖后才能進(jìn)行配置。密鑰必須嚴(yán)格按照順序?qū)懭耄绻霈F(xiàn)以下情況,將產(chǎn)生總線錯(cuò)誤同時(shí)觸發(fā) HardFault中斷,直到再次復(fù)位后,才能重新對(duì)FLASH_CR寄存器進(jìn)行解鎖:

l向FLASH_CRKEY寄存器寫入錯(cuò)誤的密鑰值;

l解鎖順序錯(cuò)誤,先向FLASH_CRKEY寄存器寫入密鑰2:0x7C6E 8391;

l解鎖后繼續(xù)向FLASH_CRKEY寄存器寫入任意值(包括密鑰)。

將FLASH_CR寄存器中的LOCK位重新置1,能恢復(fù)FLASH_CR寄存器的寫 保護(hù)鎖定狀態(tài)。通過復(fù)位,也能使FLASH_CR寄存器恢復(fù)成寫保護(hù)鎖定狀態(tài)。

注意:當(dāng)FLASH_SR寄存器中的BSY位為1時(shí),對(duì)FLASH_CR寄存器的寫入將無(wú)效,F(xiàn)LASH_SR寄存器中的PESERR標(biāo)志將置1,F(xiàn)lash當(dāng)前操作將繼續(xù)正常執(zhí)行。

5.3.3.2Flash選項(xiàng)字節(jié)解鎖

復(fù)位后,F(xiàn)lash選項(xiàng)字節(jié)處于寫保護(hù)鎖定狀態(tài),所有的選項(xiàng)字節(jié)加載寄存器、

FLASH_CR寄存器中的OBL_LAUNCH位和OPTSTRT位,都會(huì)被寫保護(hù)。要對(duì)選項(xiàng)字節(jié)進(jìn)行更新,就先要進(jìn)行解鎖操作。

Flash選項(xiàng)字節(jié)的解鎖操作,必須嚴(yán)格按照以下步驟順序執(zhí)行:

1) 先解鎖Flash控制寄存器FLASH_CR(詳見:Flash控制寄存器解鎖);

2) 向FLASH_OPTKEY寄存器寫入密鑰 1:0x6A89 4D7B;

3) 向FLASH_OPTKEY寄存器寫入密鑰 2:0x7C31 1F5A;

4) 檢查FLASH_CR寄存器中的OPTLOCK位,當(dāng)該位清0時(shí),表明Flash選項(xiàng)字節(jié)已解鎖。解鎖完成后,才能對(duì)選項(xiàng)字節(jié)加載寄存器及其控制位(OBL_LAUNCH和OPTSTRT)進(jìn)行配置。

密鑰必須嚴(yán)格按照順序?qū)懭耄绻霈F(xiàn)以下情況,將產(chǎn)生總線錯(cuò)誤同時(shí)觸發(fā)

HardFault中斷,直到再次復(fù)位后,才能重新對(duì)Flash選項(xiàng)字節(jié)進(jìn)行解鎖:

l向FLASH_OPTKEY寄存器寫入錯(cuò)誤的密鑰值;

l解鎖順序錯(cuò)誤,先向FLASH_OPTKEY寄存器寫入密鑰2:0x7C31 1F5A;

l解鎖后繼續(xù)向FLASH_OPTKEY寄存器寫入任意值(包括密鑰);

l在對(duì)FLASH_CR寄存器解鎖前,向FLASH_OPTKEY寄存器寫入任意值

(包括密鑰)。 將FLASH_CR寄存器中的OPTLOCK位重新置1,能恢復(fù)Flash選項(xiàng)字節(jié)的寫保護(hù)鎖定狀態(tài)。通過復(fù)位,也能使Flash選項(xiàng)字節(jié)恢復(fù)成寫保護(hù)鎖定狀態(tài)。當(dāng) FLASH_CR寄存器恢復(fù)成寫保護(hù)鎖定狀態(tài)時(shí)(LOCK位置1),F(xiàn)lash選項(xiàng)字節(jié)也會(huì)被恢復(fù)成寫保護(hù)鎖定狀態(tài),OPTLOCK位將自動(dòng)置1。

5.3.3.3Flash掉電控制位解鎖

復(fù)位后,F(xiàn)lash訪問控制寄存器(FLASH_ACR)中的PDEN位將處于寫保護(hù)鎖定狀態(tài),該位用于控制Flash的掉電。要配置 PDEN位,就要先進(jìn)行解鎖操作。PDEN位的解鎖操作,必須嚴(yán)格按照以下步驟順序執(zhí)行:

1) 先解鎖FLASH控制寄存器FLASH_CR(詳見:Flash控制寄存器解鎖);

2) 向FLASH_PDKEY寄存器寫入密鑰 1:0x57D9 3AB6;

3) 向FLASH_PDKEY寄存器寫入密鑰 2:0x9A2D 827C;

4) 檢查FLASH_CR寄存器中的PDLOCK位,當(dāng)該位清0時(shí),表明PDEN位已解鎖。解鎖完成后,可對(duì)PDEN位進(jìn)行配置。密鑰必須嚴(yán)格按照順序?qū)懭?,如果出現(xiàn)以下情況,將產(chǎn)生總線錯(cuò)誤同時(shí)觸發(fā) HardFault中斷,直到再次復(fù)位后,才能重新對(duì)PDEN位進(jìn)行解鎖操作:

l向FLASH_PDKEY寄存器寫入錯(cuò)誤的密鑰值;

l解鎖順序錯(cuò)誤,先向FLASH_PDKEY寄存器寫入密鑰2:0x9A2D 827C;

l解鎖后繼續(xù)向FLASH_PDKEY寄存器寫入任意值(包括密鑰);

l在對(duì)FLASH_CR寄存器解鎖前,向FLASH_PDKEY寄存器寫入任意值(包括密鑰)。 將FLASH_CR寄存器中的PDLOCK位重新置1,能恢復(fù)PDEN位的寫保護(hù)鎖定狀態(tài)。另外通過復(fù)位,也能使 PDEN位恢復(fù)成寫保護(hù)鎖定狀態(tài)。當(dāng)FLASH_CR寄存器恢復(fù)成寫保護(hù)鎖定狀態(tài)時(shí)(LOCK位置1),PDEN位也會(huì)被恢復(fù)成寫保護(hù)鎖定狀態(tài),PDLOCK位將自動(dòng)置1。

5.3.4Flash功耗管理

為進(jìn)一步降低系統(tǒng)功耗,當(dāng)程序僅在SRAM中運(yùn)行時(shí),通過將 Flash訪問控制 寄存器(FLASH_ACR)中的PDEN位置1,能使Flash進(jìn)入Power Down狀態(tài)。在配置PDEN位前,要先進(jìn)行解鎖操作,解鎖步驟詳見:Flash掉電控制位解鎖。Flash處于Power Down狀態(tài)時(shí),可通過配置PDEN位清0,使Flash從Power Down狀態(tài)恢復(fù)成上電狀態(tài)。

注意: Flash恢復(fù)成上電狀態(tài)后,需等待 10μs才允許對(duì)Flash進(jìn)行操作。

當(dāng)進(jìn)入Stop或Standby模式時(shí),F(xiàn)lash將自動(dòng)進(jìn)入Power Down狀態(tài)。如果在進(jìn)入低功耗模式前,F(xiàn)lash處于上電狀態(tài),則在喚醒后 Flash將自動(dòng)上電。

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17148

    瀏覽量

    351212
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120373
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1635

    瀏覽量

    148031
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7492

    瀏覽量

    163842
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【半導(dǎo)體存儲(chǔ)】關(guān)于NAND Flash些小知識(shí)

      前言   作為電子專業(yè)的學(xué)生,半導(dǎo)體存儲(chǔ)顯然是繞不過去的個(gè)坎,今天聊聊關(guān)于Nand Flas
    發(fā)表于 12-17 17:34

    文看懂NAND、DDR、LPDDR、eMMC幾種存儲(chǔ)器的區(qū)別

    存儲(chǔ)領(lǐng)域發(fā)展至今,已有很多不同種類的存儲(chǔ)器產(chǎn)品。下面給大家介紹幾款常見的存儲(chǔ)器及其應(yīng)用: 1 NANDNAND Flash存儲(chǔ)器
    的頭像 發(fā)表于 11-11 11:26 ?2692次閱讀
    <b class='flag-5'>一</b>文看懂NAND、DDR、LPDDR、eMMC幾種<b class='flag-5'>存儲(chǔ)器</b>的區(qū)別

    使用SD Flash為TMS320C28x器件編程外部非易失性存儲(chǔ)器

    電子發(fā)燒友網(wǎng)站提供《使用SD Flash為TMS320C28x器件編程外部非易失性存儲(chǔ)器.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 11:48 ?0次下載
    使用SD <b class='flag-5'>Flash</b>為TMS320C28<b class='flag-5'>x</b>器件編程外部非易失性<b class='flag-5'>存儲(chǔ)器</b>

    使用低內(nèi)存MSP430? MCU的帶備份存儲(chǔ)器的外部RTC

    電子發(fā)燒友網(wǎng)站提供《使用低內(nèi)存MSP430? MCU的帶備份存儲(chǔ)器的外部RTC.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 11:43 ?0次下載
    使用低內(nèi)存MSP430? <b class='flag-5'>MCU</b>的帶備份<b class='flag-5'>存儲(chǔ)器</b>的外部RTC

    鐵電存儲(chǔ)器Flash的區(qū)別

    鐵電存儲(chǔ)器(Ferroelectric RAM, FRAM)與閃存(Flash)是兩種不同類型的非易失性存儲(chǔ)器,它們?cè)诠ぷ髟?、性能特點(diǎn)、應(yīng)用場(chǎng)景等方面存在顯著的差異。
    的頭像 發(fā)表于 09-29 15:25 ?1123次閱讀

    帶備份存儲(chǔ)器的獨(dú)立RTC,帶低成本MSP430 MCU應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《帶備份存儲(chǔ)器的獨(dú)立RTC,帶低成本MSP430 MCU應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 09:49 ?0次下載
    帶備份<b class='flag-5'>存儲(chǔ)器</b>的獨(dú)立RTC,帶低成本MSP430 <b class='flag-5'>MCU</b>應(yīng)用說明

    NAND Flash與其他類型存儲(chǔ)器的區(qū)別

    NAND Flash作為種基于NAND技術(shù)的非易失性存儲(chǔ)器,具有多個(gè)顯著優(yōu)點(diǎn),這些優(yōu)點(diǎn)使其在數(shù)據(jù)存儲(chǔ)領(lǐng)域得到了廣泛應(yīng)用。以下是對(duì)NAND Flas
    的頭像 發(fā)表于 08-20 10:24 ?741次閱讀

    ram存儲(chǔ)器和rom存儲(chǔ)器的區(qū)別是什么

    定義: RAM(Random Access Memory):隨機(jī)存取存儲(chǔ)器,是種易失性存儲(chǔ)器,主要用于計(jì)算機(jī)和其他設(shè)備的臨時(shí)存儲(chǔ)。 ROM(Read-Only Memory):只讀
    的頭像 發(fā)表于 08-06 09:17 ?691次閱讀

    飛凌嵌入式-ELFBOARD 硬件分享之-存儲(chǔ)器及其分類

    只讀存儲(chǔ)器?——這些存儲(chǔ)器都是在ROM的基礎(chǔ)上發(fā)展而來的,名稱屬于歷史遺留問題。 1980年,Flash Memory被發(fā)明出來,也就是我們說的閃存,1980年又個(gè)日本科學(xué)家發(fā)明了N
    發(fā)表于 07-30 10:06

    EEPROM與Flash存儲(chǔ)器的區(qū)別

    電子技術(shù)和計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)器是不可或缺的組成部分,其類型和功能繁多。EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦除
    的頭像 發(fā)表于 05-23 16:35 ?6050次閱讀

    STM32L053如何在FLASH程序存儲(chǔ)器模式下將程序燒錄成功?

    用的是STM32L053芯片,自舉模式為FLASH程序存儲(chǔ)器模式,此時(shí)如何燒錄程序?
    發(fā)表于 03-25 06:09

    CW32L052 FLASH存儲(chǔ)器

    CW32L052內(nèi)部集成了64KB嵌入式FLASH供用戶使用,可用來存儲(chǔ)應(yīng)用程序和用戶數(shù)據(jù)。芯片支持對(duì) FLASH 存儲(chǔ)器的讀、擦除和寫操作
    的頭像 發(fā)表于 02-28 17:43 ?736次閱讀
    CW32<b class='flag-5'>L</b>052 <b class='flag-5'>FLASH</b><b class='flag-5'>存儲(chǔ)器</b>

    淺談flash存儲(chǔ)器的特點(diǎn)和優(yōu)缺點(diǎn)

    Flash存儲(chǔ)器的寫操作具有特殊性,它只能將數(shù)據(jù)位從1寫成0,而不能從0寫成1。因此,在對(duì)存儲(chǔ)器進(jìn)行寫入操作之前,必須先執(zhí)行擦除操作,將預(yù)寫入的數(shù)據(jù)位初始化為1。
    的頭像 發(fā)表于 02-19 11:37 ?3563次閱讀
    淺談<b class='flag-5'>flash</b><b class='flag-5'>存儲(chǔ)器</b>的特點(diǎn)和優(yōu)缺點(diǎn)

    stm32 flash寫數(shù)據(jù)怎么存儲(chǔ)

    stm32 flash寫數(shù)據(jù)怎么存儲(chǔ)的? STM32是款廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)的微控制,它的Flash
    的頭像 發(fā)表于 01-31 15:46 ?2404次閱讀

    使用MCU的輔助存儲(chǔ)器來記錄ADC電壓讀數(shù),當(dāng)程序進(jìn)入cy_flash_WriteRow () 時(shí)會(huì)出現(xiàn)雙重鎖定錯(cuò)誤并自動(dòng)終止的原因?

    我們正在嘗試使用 MCU 的輔助存儲(chǔ)器來記錄 ADC 電壓讀數(shù),以便日后檢索。 在之前在 main () 中調(diào)用了 systemInit () 之后,我寫了個(gè) for 循環(huán)來滾動(dòng)瀏覽數(shù)組值(之前
    發(fā)表于 01-31 08:18