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

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

[复制链接]

该用户从未签到

16#
发表于 2019-10-22 11:45 | 只看该作者
感覺樓主是想要設計一個環狀數據記錄器Ring Type Data Logger),每次上電就會寫一些數據進 FRAM。當 FRAM 寫滿了,位址就會指回 0x0000,從頭再開始寫起、並覆蓋掉最舊的數據。
7 |4 ^) w! d& n* F& s. L8 C" w( S8 S7 h5 {$ {4 ^, A
; E( x- g0 f8 Y/ s
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    17#
     楼主| 发表于 2019-10-22 11:47 | 只看该作者
    超級狗 发表于 2019-10-22 11:210 H2 D( A; {9 p4 v" ~" K9 M: B
    回答第二個問題︰4 G, q( D/ _% \/ w! x) d3 u
    Addresses are incremented internally as long as the bus master continues to issu ...
    8 [. `. l3 W4 J* E% \* R" v. N: [
    我想要的结果就是,下电再上电,这个数据会继续叠加,不会从零开始。
    * F3 t; u/ C* A  G; x! R0 z' T( j

    点评

    谢谢分享!: 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
    $ J1 c: B6 t& m我现在就是不知道怎么读到下电前写完的最后一个数据,它的地址是多少。

    : G) m% r9 c" A3 z' L! ]; Q这个是软件编写的问题,我不太懂,不过应该是要固定一个位置放地址数据的吧
    6 A1 J, I7 m9 {( c% M! R& b

    点评

    谢谢分享!: 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:472 P! v9 Q( M# _6 Q
    我想要的结果就是,下电再上电,这个数据会继续叠加,不会从零开始。
    $ M. U2 a" {3 h, F, O/ M# I9 i
    不具有这样的特性?
    : I% b6 |4 H% t

    点评

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

    该用户从未签到

    20#
    发表于 2019-10-22 13:26 | 只看该作者
    liujinghang 发表于 2019-10-22 13:09
    8 c$ S3 B$ z& ]; v) B不具有这样的特性?

    1 A$ u! \( S/ I* OFRAM 會記住你寫進去的數據,但不會記住掉電前寫到哪個位址。
    ! |1 y, w! {& X) C/ f3 X
    $ P3 R3 I! m% X) m如我所言,軟件要想辦法在 FRAM 數據中做標記,以利識別!
      c/ w: X. K' `4 e, @+ H
    6 s$ G" Y; H+ I7 o+ O& `# @" a
      `' d% |( K. s- d9 J1 r* A0 O0 q# I1 k

    / r2 H+ j5 s" K. G& c) P" a0 q! ~# O* V7 b8 d, n% y8 t) [

    点评

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

    [LV.1]初来乍到

    21#
     楼主| 发表于 2019-10-22 13:35 | 只看该作者
    超級狗 发表于 2019-10-22 13:260 d2 G" F9 x% }2 V! ?* q. U$ H
    FRAM 會記住你寫進去的數據,但不會記住掉電前寫到哪個位址。3 y2 O( U9 a! Z9 |* S

    / G) ^! J3 `  k, V( W如我所言,軟件要想辦法在 FRAM 數據中 ...
    & g. Q! }% f; A( u8 k$ J3 `
    好的,非常感谢,那我就改代码吧9 r% R2 ^/ J& M9 Z5 t

    点评

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

    该用户从未签到

    22#
    发表于 2019-10-22 14:16 | 只看该作者
    本帖最后由 超級狗 于 2019-10-22 14:22 编辑 1 M$ h+ \* [9 Z( x
    liujinghang 发表于 2019-10-22 13:353 Y' [" R5 s: n3 l
    好的,非常感谢,那我就改代码吧

    4 i0 I& j' a; ~1 `/ t5 u% Z$ j6 M3 E6 {樓主:
      {) P. m3 ~8 Q  x6 {- t我們以前在產品上做過類似的功能,但在實際應用上曾經遭遇過一些問題,在此提醒一下!
    # d5 f% T7 y9 u
    - [- D1 A, M$ Z6 L  o, H( ^遭遇問題
    ; [, S  W: G& {8 E! |假若掉電的時間點無法被控制,萬一剛好發生在寫入數據時,造成結尾標記沒被寫入,或是資料只寫到一半,這個會是一個大問題。. n  |; K( O0 d8 M! x
    - f, S- K6 b+ D0 X' D- @0 C
    解決方法
    ) `5 q8 l) J: X  \6 T7 J
    • 系統應具備掉電偵測功能,當掉電發生時趕快把數據寫入 Serial EEPROM/Flash/FRAM 中。) E( W- k" }, M, g9 _: ~
      此功能可透過有掉電Brownout)偵測的 MCU,或是使用外部的電壓偵測芯片,產生插斷給 MCU 做緊急處置!
    • 如果數據量頗多,MCU 仍來不及寫入,可加大電容做延遲掉電的設計。前題是數據量不能大到太離譜,延遲掉電時間被拉太長,反而在系統上下電時,會產生另外一些問題。3 O7 J% E6 `9 z( J
    " N" R4 ?" h+ Y& _

    9 S; {" ]9 g. r5 J+ s+ X
    0 V, w% n+ K  }& n

    点评

    再请教一下,您说的结尾标记是什么,怎么判断他是标记呢?  详情 回复 发表于 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
    # P& M; Y6 G2 A3 \樓主:: e7 H; Q6 s( V' k, w# W1 H9 Q: E, c
    我們以前在產品上做過類似的功能,但在實際應用上曾經遭遇過一些問題,在此提醒一下!

    + t  x1 H' o4 a" m" Y8 e& D2 G多谢提醒!
  • TA的每日心情
    开心
    2019-11-19 15:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    24#
     楼主| 发表于 2019-10-22 15:02 | 只看该作者
    超級狗 发表于 2019-10-22 14:16$ K5 D1 F0 v& K
    樓主:" d: s: N5 c$ z# j$ m
    我們以前在產品上做過類似的功能,但在實際應用上曾經遭遇過一些問題,在此提醒一下!
    6 Y) W5 I0 W0 D, A4 q! G/ }
    再请教一下,您说的结尾标记是什么,怎么判断他是标记呢?
    ) o% W- q' G, D1 ~

    点评

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

    该用户从未签到

    25#
    发表于 2019-10-22 15:04 | 只看该作者
    這網站也太恐怖了!+ U5 A5 Y2 V( ?9 _$ |/ C. p+ _
    3 g# y1 h3 b6 ?+ R
    剛貼上去馬上就被頂為推薦,感覺無時不刻都有人在監視你。8 y2 x$ t* @& C$ a
    6 j% t8 d& p! Z  y0 h8 w& D" U

    点评

    哈哈,网站关照新人,小白问题多,就给置顶让大家都来指点指点  详情 回复 发表于 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+ `9 q* i( E8 J8 U* \+ M' O
    這網站也太恐怖了!  I# m' a8 F1 b+ Z
    5 f, h, [% c* b
    剛貼上去馬上就被頂為推薦,感覺無時不刻都有人在監視你。

    8 |8 t( X! V$ {哈哈,网站关照新人,小白问题多,就给置顶让大家都来指点指点
    8 q+ o5 U5 l" Q

    该用户从未签到

    27#
    发表于 2019-10-22 15:11 | 只看该作者
    liujinghang 发表于 2019-10-22 09:114 S' B) x( [; ]0 G( H) r6 `
    难道铁电ram没有掉电不丢失功能吗?各位大佬帮忙看看,谢谢

    0 J! N# ]5 Z% v4 Z你这个是外置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% r3 ]1 G, h8 z( m6 g
    你这个是外置EEPROM,上电时主控芯片通过SPI和它通信,上电时不用初始化该外置EEPROM芯片,直接先读EEPROM ...

    - ^' b% ]3 T6 H  I/ b) ^那怎么确定最后一次数据的地址呢
    * `0 l3 @0 ~/ v, R0 X( W& W

    该用户从未签到

    29#
    发表于 2019-10-22 15:16 | 只看该作者
    本帖最后由 超級狗 于 2019-10-22 15:44 编辑
    ' }$ O7 |; n% \# F
    liujinghang 发表于 2019-10-22 15:02( t; _" q+ K' h6 V
    再请教一下,您说的结尾标记是什么,怎么判断他是标记呢?
    , [# ?. u# t3 H7 u! Z
    標記就是一個特殊的數值,這個數值最好不會出現在你的數據中,不然會很難識別,例如 0x00, 0x55, 0xAA......都可以,只要你能識別就行。8 o+ P( b9 z( I( e0 S5 p" g- I

    . I( h4 R1 ~  s* k4 e; W6 R% F2 X你也可以將結尾記錄在固定的位址,這樣代碼會很容易寫,只是這些位址每次數據變動就會被擦寫一次,擦寫率特別高,壽命會縮短。) {( x% W) b( ^- |
    " N) Q1 p4 m5 l4 Z# t
    但因為你用的是 FRAM,壽命高達 1014 次擦寫,所以就看對你的應用是否足夠。
    & B, G% z* D7 `2 C* D2 |; ?4 }8 o  K" T! B! @
    ) \! z! ?+ \# r6 ^

    点评

    我看了好几遍铁电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
    4 z, [, X: H/ Q" g標記就是一個特殊的數值,這個數值最好不會出現在你的數據中,不然會很難識別,例如 0x00, 0x55, 0xAA... ...

    # i' m  {) w7 b. L我看了好几遍铁电ram的手册了,还真没看见有擦除功能,可能根本不需要擦除,直接覆盖。
    & e3 s% u" K! l# [9 k& j. u如果直接覆盖的话,我可不可以把数据直接写在一个地址中,这样也方便读取。
    7 k" ?; v# A/ v* F

    点评

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-10 01:54 , Processed in 0.156250 second(s), 21 queries , Gzip On.

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

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

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