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

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

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

如何提高FLASH使用壽命以實(shí)現(xiàn)EEPROM的功能呢 ?

冬至子 ? 來源:麥芽二糖 ? 作者:麥芽二糖 ? 2023-10-23 17:44 ? 次閱讀

一、

stm32的FLASH擦除是按整頁或者整扇區(qū)擦除的,不同芯片的頁或者扇區(qū)(下邊統(tǒng)稱為頁)的大小是不一樣的,有1K,16K,64K,128K等大小。

現(xiàn)在我們想要 存3個不同16bit變量的數(shù)據(jù),1秒存一次 ,如果不做任何算法,將這3個變量存到3個不同的頁的16bit地址,每次更改變量內(nèi)容都要擦除一次整頁(但是我們只使用了16bit的空間),根據(jù)芯片數(shù)據(jù)手冊可知,保證性能的情況下flash最少擦除次數(shù)為10K,1萬次。

我們就按1萬次計算,理論上不到3小時我們使用的16bit地址就有損壞的風(fēng)險。而且要存儲的變量個數(shù)也有限,我們芯片不可能有那么多頁,H7系列也就16頁。所以需要一些算法處理,充分利用頁的空間。

圖片

二、EEPROM組件原理分析

還是上邊說的存儲情況,存3個不同16bit變量的數(shù)據(jù),1秒存一次。

先說一下其大致思路,開辟兩塊連續(xù)大小相同的頁,分別為page0,page1,假如我們選用F4的芯片,選用第2頁和第3頁,均為16K。每個變量分配一個16bit的虛擬地址,同16bit數(shù)據(jù)一起存儲,虛擬地址為了讀取數(shù)據(jù)方便。

三個變量首先在page0存儲,存滿page0之后,將這3個變量最新的數(shù)據(jù)復(fù)制到page1,然后擦除page0,接下來在page1中存儲,page1存滿之后,將3個變量最新的數(shù)據(jù)復(fù)制到page0,然后擦除page1,就這樣循環(huán)存儲。

我們粗略的計算一下保證flash的可靠性的前提下,可以使用的時間,2個頁共32K,也就是每存32K的數(shù)據(jù),page0,page1各擦除一次,我們存的是16bit數(shù)據(jù)+16bit的虛擬地址,那就是每存8K的16bit數(shù)據(jù),page0,page1各擦除一次,這是3個變量,那么每個變量平均存2730次時,擦除一次頁,flash擦除壽命按1萬次計算,16bit變量1秒存一次,可以存2730100001秒=>7583小時=>315天,這是每天不間斷的使用,如果每天只使用8小時,大概可以使用2.5年。如果每天使用8小時,變量每10秒存一次,大概可以使用25年。這樣就充分利用了頁空間。

這里需要注意變量個數(shù),和存儲周期,如果周期太快或者變量個數(shù)太多,可以增加頁,如果增加頁還是不滿足,那就只能加專用存儲芯片了。

下面看一下具體是怎么實(shí)現(xiàn)的:

每個頁都有3個狀態(tài):

  • ERASED:當(dāng)期頁已擦除。
  • RECEIVE_DATA:頁正在從另一個滿頁接收(復(fù)制)數(shù)據(jù)。
  • VALID_PAGE:頁中包含有效數(shù)據(jù),并且在將所有有效數(shù)據(jù)完全傳輸?shù)揭巡脸撝?,此狀態(tài)不會改變。

根據(jù)官方提供的這個表,結(jié)合程序看,邏輯就很清晰了。

1.jpg

推薦看此表的順序:自上而下,從左到右。先看同一列,自上而下,再看不同列,從左到右。一定要結(jié)合程序?qū)嶋H過一遍,那樣更深刻。

注:page0格式化是指,將page0設(shè)置為VALID_PAGE狀態(tài)。

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

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354289
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1008

    瀏覽量

    81332
  • 存儲芯片
    +關(guān)注

    關(guān)注

    11

    文章

    881

    瀏覽量

    43040
  • Flash存儲
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    8275
收藏 人收藏

    評論

    相關(guān)推薦

    怎么延長電表使用壽命?

    據(jù)網(wǎng)絡(luò)上無法訪問,服務(wù)部門將得到通知。另外,遠(yuǎn)程抄表使得LCD不再那么重要,而且其故障最終會由客戶上報。 電能計量精度是最后一個關(guān)鍵任務(wù)參數(shù),現(xiàn)在可對其加以有效監(jiān)測,實(shí)現(xiàn)智能電表使用壽命的延長。通過部署非侵入式實(shí)時精度監(jiān)測技術(shù),智能電表可以創(chuàng)造更多價值,并
    發(fā)表于 07-24 08:15

    實(shí)現(xiàn)數(shù)據(jù)的掉電保存是eeprom更好還是flash更好呢?

    想要實(shí)現(xiàn)數(shù)據(jù)的掉電保存,現(xiàn)在由兩種方案,一種是硬件上加上eeprom,一種是用flash配置為eeprom。但是看了相關(guān)資料,flash只支
    發(fā)表于 09-17 15:06

    Flash存儲器的使用壽命有什么辦法延長嗎?

    的、針對嵌入式應(yīng)用的文件系統(tǒng),實(shí)現(xiàn)Flash存儲器的損耗均衡,并且實(shí)現(xiàn)數(shù)據(jù)的有效管理,對于提高使用壽命具有一定的意義。
    發(fā)表于 08-16 07:06

    MSP430G系列單片機(jī)的Flash擦寫壽命怎么提高?

    Flash,可用于存儲非易失性數(shù)據(jù),但是由于 FlashEEPROM 在擦寫壽命上存在一定差距,所以在實(shí)際應(yīng)用中,這種應(yīng)用方式并不能夠滿足所有客戶的需求...那么訣竅來了~~
    發(fā)表于 10-18 09:00

    FLASH壽命有限,次數(shù)寫多了會壞怎么解決

    30W次,也就是保守估計半年左右就會掛掉一片FLASH! 這樣肯定是不行的,那么怎樣才能提高FLASH使用壽命?
    發(fā)表于 05-04 05:55

    AN0002—AT32 MCU如何使用片上Flash實(shí)現(xiàn)EEPROM功能

    本帖最后由 貪玩 于 2022-2-16 21:41 編輯 AN0002—AT32 MCU如何使用片上Flash實(shí)現(xiàn)EEPROM功能當(dāng)前諸多嵌入式應(yīng)用場景都需要用到
    發(fā)表于 08-15 14:23

    如何提高調(diào)節(jié)閥的壽命?

    損壞位置轉(zhuǎn)移到輔助位置,保護(hù)閥芯和閥座的密封面和節(jié)流面?! ?.增長節(jié)流通道提高壽命法增長節(jié)流通道簡單的就是加厚閥座,使閥座孔增長,形成更長的節(jié)流通道?! ?.改變流向、提高使用壽命
    發(fā)表于 12-10 15:56

    非易失性存儲器FlashEEPROM之間的差異與優(yōu)缺點(diǎn)

    。根據(jù)閃存的類型,閃存的使用壽命會縮短,大多數(shù)閃存產(chǎn)品在磨損開始惡化存儲完整性之前,能夠承受大約10000至1000000次擦除/寫入循環(huán)。就大小和成本而言,閃存具有比EEPROM更小的存儲單元尺寸,并且實(shí)現(xiàn)成本更低。原作者:宇
    發(fā)表于 04-07 16:42

    STM8的內(nèi)部flash使用壽命有多長?

    STM8的內(nèi)部flash使用壽命有多長
    發(fā)表于 10-12 07:06

    延長Flash存儲囂使用壽命的研究

    延長Flash存儲囂使用壽命的研究 引 言    隨著嵌入式系統(tǒng)在數(shù)碼相機(jī)、數(shù)字?jǐn)z像機(jī)、移動電話、MP3音樂播放器等移動設(shè)備中越來越廣泛的應(yīng)用,Flash存儲器
    發(fā)表于 12-15 17:13 ?1322次閱讀
    延長<b class='flag-5'>Flash</b>存儲囂<b class='flag-5'>使用壽命</b>的研究

    AN0002—AT32 MCU如何使用片上Flash實(shí)現(xiàn)EEPROM功能

    AN0002—AT32 MCU如何使用片上Flash實(shí)現(xiàn)EEPROM功能當(dāng)前諸多嵌入式應(yīng)用場景都需要用到 EEPROM 作為非易失性的數(shù)據(jù)
    發(fā)表于 11-18 16:21 ?14次下載
    AN0002—AT32 MCU如何使用片上<b class='flag-5'>Flash</b>來<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>EEPROM</b><b class='flag-5'>功能</b>

    延長EEPROM使用壽命的程序優(yōu)化方法

    延長EEPROM使用壽命的程序優(yōu)化方法
    發(fā)表于 12-07 21:06 ?9次下載
    延長<b class='flag-5'>EEPROM</b><b class='flag-5'>使用壽命</b>的程序優(yōu)化方法

    18年電感廠家揭秘常用貼片功率電感使用壽命如何提高

    的。那么,我們要如何提高功率電感的使用壽命? 想要提高功率電感的使用壽命,重點(diǎn)是保證功率電感的品質(zhì)以及使用環(huán)境符合要求。
    的頭像 發(fā)表于 10-13 09:45 ?804次閱讀
    18年電感廠家揭秘常用貼片功率電感<b class='flag-5'>使用壽命</b>如何<b class='flag-5'>提高</b>

    eepromflash的區(qū)別的作用

    在計算機(jī)和電子設(shè)備中廣泛使用。EEPROMFlash Memory有很多共同之處,比如它們都屬于非易失性存儲器,可以在斷電后保留數(shù)據(jù)。然而,它們也有一些關(guān)鍵的區(qū)別,包括擦除方式、寫入速度、使用壽命
    的頭像 發(fā)表于 12-07 16:10 ?1917次閱讀

    提高磁棒繞線電感使用壽命的方法

    電子發(fā)燒友網(wǎng)站提供《提高磁棒繞線電感使用壽命的方法.docx》資料免費(fèi)下載
    發(fā)表于 10-09 11:07 ?0次下載