找回密码
 注册
关于网站域名变更的通知
楼主: liujinghang
打印 上一主题 下一主题

EEPROM怎么保证掉电不丢失数据等疑问

[复制链接]

该用户从未签到

16#
发表于 2019-10-22 11:45 | 只看该作者
感覺樓主是想要設計一個環狀數據記錄器Ring Type Data Logger),每次上電就會寫一些數據進 FRAM。當 FRAM 寫滿了,位址就會指回 0x0000,從頭再開始寫起、並覆蓋掉最舊的數據。) {: i. \" n% ^" h+ ~

5 E, K3 B5 e+ ~; O$ S0 f; f: Z% S) }9 [4 R
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    17#
     楼主| 发表于 2019-10-22 11:47 | 只看该作者
    超級狗 发表于 2019-10-22 11:213 i- v9 ?% `2 u0 ?' r
    回答第二個問題︰
    + a. t% z1 d" B9 y0 {" ?7 J. TAddresses are incremented internally as long as the bus master continues to issu ...
    3 j4 A$ x5 N8 R; q$ r) G
    我想要的结果就是,下电再上电,这个数据会继续叠加,不会从零开始。
    / S3 y# I( b9 R: T

    点评

    谢谢分享!: 5.0
    不具有这样的特性?  详情 回复 发表于 2019-10-22 13:09
    谢谢分享!: 5
    樣講就清楚了,但如同回覆 Serial EEPROM/Flash/FRAM 不具備這樣的特性。>_<!!!  发表于 2019-10-22 13:00

    该用户从未签到

    18#
    发表于 2019-10-22 11:55 | 只看该作者
    liujinghang 发表于 2019-10-22 11:43# [) z& G5 a) p5 w+ l/ [" p0 o
    我现在就是不知道怎么读到下电前写完的最后一个数据,它的地址是多少。

    $ q; K, n5 }1 k  d# y这个是软件编写的问题,我不太懂,不过应该是要固定一个位置放地址数据的吧
    & q3 r$ Y" G! Z/ d* {, L

    点评

    谢谢分享!: 5.0
    谢谢分享!: 5
    樓主是想要設計一個環狀數據記錄器Ring Type Data Logger)^_^  发表于 2019-10-22 13:40
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    19#
     楼主| 发表于 2019-10-22 13:09 | 只看该作者
    liujinghang 发表于 2019-10-22 11:47* m3 K4 |+ h* ^  U: `5 `( J
    我想要的结果就是,下电再上电,这个数据会继续叠加,不会从零开始。

    6 ~0 P3 f" L; Q. d5 U8 o5 e不具有这样的特性?. K" T6 h3 v- i' G. {

    点评

    FRAM 會記住你寫進去的數據,但不會記住掉電前寫到哪個位址。 如我所言,軟件要想辦法在 FRAM 數據中做標記,以利識別!  详情 回复 发表于 2019-10-22 13:26

    该用户从未签到

    20#
    发表于 2019-10-22 13:26 | 只看该作者
    liujinghang 发表于 2019-10-22 13:09
    0 s1 u' y% [. X不具有这样的特性?
    . E4 ~7 s8 M0 Y/ t7 U! r# q& [8 y
    FRAM 會記住你寫進去的數據,但不會記住掉電前寫到哪個位址。
    9 s2 I# _2 H' f0 W$ M  [
    + ^1 r; `! l, s5 @如我所言,軟件要想辦法在 FRAM 數據中做標記,以利識別!
      J3 o* g$ X* R; k3 l+ @
    # r% r2 p% H) w' k7 k- ?9 n: `  r, C* f* w: J' [
    # J: ]  q. m5 c: v9 O5 |
    . |( }( M, q1 o* _$ K/ _- ?
    3 H" n4 q) g" E  u  G8 {- k

    点评

    好的,非常感谢,那我就改代码吧  详情 回复 发表于 2019-10-22 13:35
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    21#
     楼主| 发表于 2019-10-22 13:35 | 只看该作者
    超級狗 发表于 2019-10-22 13:268 K* K6 o! Q9 C, j
    FRAM 會記住你寫進去的數據,但不會記住掉電前寫到哪個位址。
    / Q; i- `) k$ ^7 D, f! Q
    2 j7 w) u1 G+ P* o) \6 t如我所言,軟件要想辦法在 FRAM 數據中 ...

    : I4 r" b- i7 _1 b  t/ Q好的,非常感谢,那我就改代码吧
    6 E9 y7 Q( w$ j3 T  ^2 D- e6 p1 g" W' _

    点评

    樓主: 我們以前在產品上做過類似的功能,但在實際應用上曾經遭遇過一些問題,在此提醒一下! 遭遇問題 假若掉電的時間點無法被控制,萬一剛好發生在寫入數據時,造成結尾標記沒被寫入,或是資料只寫到一半,這  详情 回复 发表于 2019-10-22 14:16

    该用户从未签到

    22#
    发表于 2019-10-22 14:16 | 只看该作者
    本帖最后由 超級狗 于 2019-10-22 14:22 编辑 . A6 I/ V) W. k$ Y5 ^+ r
    liujinghang 发表于 2019-10-22 13:358 S: F4 L2 |. h/ D% p8 I! W" Y
    好的,非常感谢,那我就改代码吧
    2 ~1 J  @5 ^; X$ M8 u- V
    樓主:+ ]" Q, c+ C5 b: Y  v2 x
    我們以前在產品上做過類似的功能,但在實際應用上曾經遭遇過一些問題,在此提醒一下!7 U  w+ }3 i# m: C% S  f- c

    % K+ L: l+ A2 R9 {6 J) a遭遇問題
    : q5 J/ z! v3 q) |. O假若掉電的時間點無法被控制,萬一剛好發生在寫入數據時,造成結尾標記沒被寫入,或是資料只寫到一半,這個會是一個大問題。) Z5 |4 R6 n2 {* Z. o2 i

    9 `) w( e- y9 t1 o7 Z解決方法& v7 S5 W$ i$ Q+ l1 f
    • 系統應具備掉電偵測功能,當掉電發生時趕快把數據寫入 Serial EEPROM/Flash/FRAM 中。
      * N3 f3 i  D; g1 X$ q" u此功能可透過有掉電Brownout)偵測的 MCU,或是使用外部的電壓偵測芯片,產生插斷給 MCU 做緊急處置!
    • 如果數據量頗多,MCU 仍來不及寫入,可加大電容做延遲掉電的設計。前題是數據量不能大到太離譜,延遲掉電時間被拉太長,反而在系統上下電時,會產生另外一些問題。
      1 u( c" L5 T+ ?/ \& o; N
    & M/ k" q' E3 c1 n  {9 N
    ; ?& n& Y8 a6 L& g3 V* s! Z
    2 }# i7 E9 L6 H3 Y5 G

    点评

    再请教一下,您说的结尾标记是什么,怎么判断他是标记呢?  详情 回复 发表于 2019-10-22 15:02
    多谢提醒!  详情 回复 发表于 2019-10-22 14:58
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    23#
     楼主| 发表于 2019-10-22 14:58 | 只看该作者
    超級狗 发表于 2019-10-22 14:16) L8 ]; n! Y; L+ z( c7 o
    樓主:: ?# X( o' W( F- ?$ A
    我們以前在產品上做過類似的功能,但在實際應用上曾經遭遇過一些問題,在此提醒一下!

    / i# a, B, E  s多谢提醒!
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    24#
     楼主| 发表于 2019-10-22 15:02 | 只看该作者
    超級狗 发表于 2019-10-22 14:16
    : h. C4 ^% j( [5 i( ~. H$ {% C1 E樓主:/ E: _4 _+ Y# O! `/ c
    我們以前在產品上做過類似的功能,但在實際應用上曾經遭遇過一些問題,在此提醒一下!

    9 C' Z. N5 Z& v' A再请教一下,您说的结尾标记是什么,怎么判断他是标记呢?
    ) _- u+ Z8 ?: A, ~' ~

    点评

    標記就是一個特殊的數值,這個數值最好不會出現在你的數據中,不然會很難識別,例如 0x00, 0x55, 0xAA......都可以,只要你能識別就行。 你也可以將結尾記錄在固定的位址,這樣代碼會很容易寫,但這些位址每次數  详情 回复 发表于 2019-10-22 15:16

    该用户从未签到

    25#
    发表于 2019-10-22 15:04 | 只看该作者
    這網站也太恐怖了!' m- ?  g' ]; ]8 n8 A1 w

    , }2 c2 @+ P7 A9 Z% y剛貼上去馬上就被頂為推薦,感覺無時不刻都有人在監視你。
      x. n- I- B0 R: ]" S" V; k
    8 _/ Q7 i5 r( r8 R8 j

    点评

    哈哈,网站关照新人,小白问题多,就给置顶让大家都来指点指点  详情 回复 发表于 2019-10-22 15:10
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    26#
     楼主| 发表于 2019-10-22 15:10 | 只看该作者
    超級狗 发表于 2019-10-22 15:04
    , ?$ _6 [8 d& X% a, P這網站也太恐怖了!1 i' H  N* q0 G3 K6 Y

    ) y2 P; [) O5 W% Q# e剛貼上去馬上就被頂為推薦,感覺無時不刻都有人在監視你。

    2 H4 A3 a/ U, E1 g5 w; c! A哈哈,网站关照新人,小白问题多,就给置顶让大家都来指点指点4 g: e' ~6 |3 p7 ?3 D

    该用户从未签到

    27#
    发表于 2019-10-22 15:11 | 只看该作者
    liujinghang 发表于 2019-10-22 09:11
    8 B. j8 ]8 `- a8 l( T难道铁电ram没有掉电不丢失功能吗?各位大佬帮忙看看,谢谢

    + w- y+ v5 S' V- }4 w你这个是外置EEPROM,上电时主控芯片通过SPI和它通信,上电时不用初始化该外置EEPROM芯片,直接先读EEPROM数据就行了。

    点评

    那怎么确定最后一次数据的地址呢  详情 回复 发表于 2019-10-22 15:15
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    28#
     楼主| 发表于 2019-10-22 15:15 | 只看该作者
    duguwuyun1985 发表于 2019-10-22 15:11" e4 i( ?3 k. p/ A' P, d  E
    你这个是外置EEPROM,上电时主控芯片通过SPI和它通信,上电时不用初始化该外置EEPROM芯片,直接先读EEPROM ...
    8 B5 ^. k4 G9 {3 P% q& a# ]
    那怎么确定最后一次数据的地址呢9 _$ _) [+ F* g/ {" K% x9 g# F

    该用户从未签到

    29#
    发表于 2019-10-22 15:16 | 只看该作者
    本帖最后由 超級狗 于 2019-10-22 15:44 编辑
    & g, ]4 g3 i, n
    liujinghang 发表于 2019-10-22 15:021 V3 q- C3 `  ?
    再请教一下,您说的结尾标记是什么,怎么判断他是标记呢?

    8 L- d, q; S  c- q- N標記就是一個特殊的數值,這個數值最好不會出現在你的數據中,不然會很難識別,例如 0x00, 0x55, 0xAA......都可以,只要你能識別就行。
    - N- q' A& a4 ^8 [2 |" E$ S- L+ P! m7 G: j' W! @: I3 |1 Y# _
    你也可以將結尾記錄在固定的位址,這樣代碼會很容易寫,只是這些位址每次數據變動就會被擦寫一次,擦寫率特別高,壽命會縮短。: u- ]! R+ k& m6 s' O/ p
    , y# G5 j# R8 f: O, |7 X/ s6 h9 }% S
    但因為你用的是 FRAM,壽命高達 1014 次擦寫,所以就看對你的應用是否足夠。
    $ T0 h' B/ `5 y, Z9 y# j# f6 @
    $ R' e: t- k2 ^2 P3 M9 g; K2 G. A" d/ a8 r! M

    点评

    我看了好几遍铁电ram的手册了,还真没看见有擦除功能,可能根本不需要擦除,直接覆盖。 如果直接覆盖的话,我可不可以把数据直接写在一个地址中,这样也方便读取。  详情 回复 发表于 2019-10-22 15:21
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    30#
     楼主| 发表于 2019-10-22 15:21 | 只看该作者
    超級狗 发表于 2019-10-22 15:16
    6 m! ~( v* E, l+ P" u3 U' s標記就是一個特殊的數值,這個數值最好不會出現在你的數據中,不然會很難識別,例如 0x00, 0x55, 0xAA... ...
    4 G( S, J" F5 D3 J. r1 S2 i
    我看了好几遍铁电ram的手册了,还真没看见有擦除功能,可能根本不需要擦除,直接覆盖。! s% e- Q, F! A1 i* w- C7 y
    如果直接覆盖的话,我可不可以把数据直接写在一个地址中,这样也方便读取。
    % z2 Y5 j! t/ ], A" E

    点评

    FRAM 的特性像 RAM,可以任意寫入某個位址。下電後又能保持數據,行為又像 EEPORM 或 Flash。 寫入前確實不需要什麼特別的擦拭動作,但每當你寫入一次數據,就被視為擦寫一次了。  详情 回复 发表于 2019-10-22 15:27
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-29 19:20 , Processed in 0.093750 second(s), 20 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表