標(biāo)題: 關(guān)于EEPROM擦寫頻率 [打印本頁]

作者: QWE4562012    時間: 2022-11-9 18:55
標(biāo)題: 關(guān)于EEPROM擦寫頻率
EEPROM擦寫頻率怎么理解?怎么根據(jù)擦寫頻率選擇EEPROM還是flash?比如如下這個案列

每100ms采集一次數(shù)據(jù),每秒存20個字節(jié)(實際使用清空EEPROM存儲的數(shù)據(jù)是每周清除三次,這個是否也是擦寫頻率的一種?)這種應(yīng)用場景,用外接的EEPROM還是用MCU的flash?用flash可以節(jié)省成本!畢竟128Kbit&SOT23-5封裝的EEPROM價格有些貴!而且找不到國產(chǎn)的!交期也是問題,目前只有微芯microchip才有!

作者: wulin    時間: 2022-11-9 22:00
flash擦寫壽命大約10萬次。每秒擦寫一次要不了兩天就廢了。通常是在斷電時把關(guān)鍵數(shù)據(jù)保存在EEPROM,下次得電時取用。
作者: Hephaestus    時間: 2022-11-9 22:24
wulin 發(fā)表于 2022-11-9 22:00
flash擦寫壽命大約10萬次。每秒擦寫一次要不了兩天就廢了。通常是在斷電時把關(guān)鍵數(shù)據(jù)保存在EEPROM,下次得 ...

你太低估現(xiàn)代偷工減料的水平了,flash的10萬次擦寫壽命是很多年前的,現(xiàn)代flash壽命普遍在1萬次,這還是SLC,還有DLC、TLC、QLC壽命更短的,不過沒有用在單片機上。

同樣的eeprom以前普遍在1000萬次寫壽命,現(xiàn)在已經(jīng)下降到100萬次了。

樓主的要求恐怕只有鐵電能完成,寫的太頻繁了。
作者: angmall    時間: 2022-11-9 22:26
你可以用NVRAM。

FLASH必須以扇區(qū)為單位訪問,而NVRAM以字節(jié)為單位訪問。


作者: wufa1986    時間: 2022-11-10 08:28
代價有點大,你的單片機需要開辟非常大的寫空間才行,最少要開辟1024Kbytes的空間,這樣大概10幾小時擦除一次
作者: yzwzfyz    時間: 2022-11-10 09:21
CPU中的非易失性存儲器通常是按片區(qū)分的,即要擦擦一片,教你一個方案,供你參考:
1、開辟一個區(qū)域存儲數(shù)據(jù),如2000-7FFFH,設(shè)其中有N個區(qū)擦除區(qū)(通常每區(qū)512字節(jié))。
2、循環(huán)覆蓋方式存儲,這樣不至于盯著一個地方擦寫。
3、每個區(qū)的前12個字節(jié)備用,第1個字節(jié)作為標(biāo)記,=FF,表示空區(qū)(該區(qū)擦過了),反之未用。
剩下的500個字節(jié)分成25個組,每組剛好存20個字節(jié)。
操作:
1、順序存入數(shù)據(jù),寫滿后循環(huán)重頭開始。
2、開始:每次上電,從頭開始找20個全是FF的組,就是開始的地方。(各區(qū)前12個不用,格式就固定了)
3、擦除:先確認(rèn)本區(qū)是否為空(首字節(jié)是非為FF),不是FF就擦除本區(qū)。
4、跨區(qū)的技巧及要點:要做兩件事。
第一件:擦除下個區(qū)!設(shè)區(qū)號是1,2,3,4,5……,當(dāng)前操作在2區(qū),當(dāng)2區(qū)結(jié)束,進(jìn)入3區(qū)時,卻要擦除4區(qū)!。即在任何時刻保證下一個區(qū)一定是空的(全FF),目的:防止循環(huán)重復(fù)時,開機后找不到空位置(20個全FF)的情況出現(xiàn)。
第二件:清除新區(qū)的標(biāo)記,即將3區(qū)的首字節(jié)FF,改為xx(你定義一個非FF值,表示本區(qū)開始起用),再從第12個單元開始存數(shù)據(jù)。
作者: hhh402    時間: 2022-11-10 10:07
flash擦寫壽命大約10萬次,具體看數(shù)據(jù)手冊,10萬次是指擦除的次數(shù),不是指寫的次數(shù),讀是無限的。
作者: coody_sz    時間: 2022-11-10 10:31
從頭寫到尾算一次,可以長壽很多倍。
作者: QWE4562012    時間: 2022-11-14 16:11
比如壽命是10萬次  那么這里能使用多少年?
作者: QWE4562012    時間: 2022-11-14 16:11
Hephaestus 發(fā)表于 2022-11-9 22:24
你太低估現(xiàn)代偷工減料的水平了,flash的10萬次擦寫壽命是很多年前的,現(xiàn)代flash壽命普遍在1萬次,這還是S ...

這里怎么判斷頻次
作者: QWE4562012    時間: 2022-11-14 16:12
yzwzfyz 發(fā)表于 2022-11-10 09:21
CPU中的非易失性存儲器通常是按片區(qū)分的,即要擦擦一片,教你一個方案,供你參考:
1、開辟一個區(qū)域存儲數(shù) ...

比如壽命是10萬次  那么這里能使用多少年?
作者: QWE4562012    時間: 2022-11-14 16:13
每100ms采集一次數(shù)據(jù),每秒存20個字節(jié)和清空EEPROM存儲的數(shù)據(jù)是每周清除三次,,哪個才是擦寫次數(shù)
作者: QWE4562012    時間: 2022-11-14 16:15
每100ms采集一次數(shù)據(jù),每秒存20個字節(jié)和清空EEPROM存儲的數(shù)據(jù)是每周清除三次,,哪個才是擦寫次數(shù)??10萬次的壽命這里能用多少年
作者: lkc8210    時間: 2022-11-14 17:29
每秒存20個字節(jié):
假設(shè)有5k EEProm = 5 * 1024 = 5120
寫滿一次要 5120/20 = 256秒
寫100000次要 256 * 100000 = 25600000秒 = 296日

清空EEPROM存儲的數(shù)據(jù)是每周清除三次:
寫滿一次要 7 * 24 * 3600 /3 = 201600秒
每秒存20個字節(jié),即EEProm容量為201600 * 20 = 4032000 字節(jié) = 3.8MB
作者: 188610329    時間: 2022-11-14 17:59
QWE4562012 發(fā)表于 2022-11-14 16:12
比如壽命是10萬次  那么這里能使用多少年?

STC  號稱 10萬次擦寫, 也許我運氣比較好 有一片 STC15W204S 擦寫 約 0.5萬次,卒。那時候也是學(xué)單片機的初級階段,是狂做實驗,才擦寫那么多次,一般也不可能真的去測,對吧? 之后,換了另一片STC15W204S 至今擦寫 約2萬次,還沒掛,以及一片89C52 也是2萬來次 未掛,其他型號的基本都只寫了幾百次,不好判斷。所以,具體平均擦寫次數(shù)不好說,但是,我這邊已經(jīng)把 最壞的情況 5000次,作為設(shè)計的參考量了。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1