Hhhhhhhh 发表于 2017-6-6 09:45:34

关于eeprom丢失的问题?

每次上电时读取eeprom,发现有的里面的数据被改变了。读取时有可能改变eeprom里的数据吗?

而且每一批都有几出这样的问题,而且出问题的这几个会重复出现...

还有其他什么原因会导致eeprom丢失?用的是AVR自带的eeprom

Lu.Shi 发表于 2017-6-6 11:28:29

个人觉得首先确定写进去了没有,写进去了那就是读错了读的不对,单单只是读EEPROM的话是不会把数据改写的,所以要么是没写进去要么是读错地了

Hhhhhhhh 发表于 2017-6-6 11:43:15

Lu.Shi 发表于 2017-6-6 11:28
个人觉得首先确定写进去了没有,写进去了那就是读错了读的不对,单单只是读EEPROM的话是不会把数据改 ...

肯定写进去了,应该不是读错了,错了之后重复上电读取的还是错的数据。

yuangaoping 发表于 2017-6-6 12:01:45

老问题了,开Brown-out detection,根据电源,选择合适的电压

dykwai1 发表于 2017-6-6 13:22:22

AVR 工作电压比较低,电源掉电的时候CPU还在工作,EEPROM 可能被修改,但掉电期间修改不可靠
解决办法,加掉电检测,电源电压低了将CPU复位,可以先用内置的,不行的话就加外置的

Hhhhhhhh 发表于 2017-6-6 13:43:56

dykwai1 发表于 2017-6-6 13:22
AVR 工作电压比较低,电源掉电的时候CPU还在工作,EEPROM 可能被修改,但掉电期间修改不可靠
解决办法,加 ...

不是写的问题。写了之后就不会在进行写操作了,只是每次上电读取。

lsfsxfljj 发表于 2017-6-6 13:56:33

老问题了,以前MEGA8都是这样的,有个操作的手法,方法可以搜一下,建议加个备份{:lol:}{:lol:}{:lol:}

Hhhhhhhh 发表于 2017-6-6 16:57:37

lsfsxfljj 发表于 2017-6-6 13:56
老问题了,以前MEGA8都是这样的,有个操作的手法,方法可以搜一下,建议加个备份 ...

翻了好久没看到旧贴,能否贴出来。备份的方法感觉治标不治本啊

lsfsxfljj 发表于 2017-6-6 17:13:36

Hhhhhhhh 发表于 2017-6-6 16:57
翻了好久没看到旧贴,能否贴出来。备份的方法感觉治标不治本啊

那可能时间长了帖子没了,这个事情MEGA8最火的时候很多人关注,我现在能想起的解决放法是地址寄存器每次操作完后给他设置一个无效的地址,比如0x00这个地址不放数据,数据不操作期间,操作寄存器地址指针就指向0x00。 我忘记AVR有没有电源检测,如果有电源检测也要利用一下。备份也可以做

Firman 发表于 2017-6-6 17:35:14

多年前做过一个项目,检测到掉电时,马上把要保存的几个数写进EEPROM里,
测试是没问题的,大量货到用户手上时,就发现很多问题了。

后来做个测试,用一块板做断电上电供电,AVR读和写,无论是读或写,在这种情况下都有可能改变EEPROM,
而且改变的位置不是固定的,那个地址都有可能。

百思不得其解,感觉自己接受不了。写的过程中电压变了,EEPROM出错,可以接受,为什么读也会改变EEPROM?
然后发了一个EMAIL去问AVR,AVR也很认真,邮件转了三次,从这个转另一个,再转另一个,叫答复我的问题,每个邮件都CC给我。

最后,回答我的那个人,把我叼了一炮:“EEPROM读、写要在电压稳定时才可以操作!”,规格书也有说。

所以,楼主,你保证你的电压稳定了吗?
不过,我用同样的条件去试PIC,没发现问题,我质问PIC为什么没问题?他们不回我邮件。
现在,AVR也属于PIC的了,不知道解决这个问题没有?

jnyyygch 发表于 2017-6-6 18:28:18

"我质问PIC为什么没问题?"
楼上真逗,笑死我了。估计PIC的人不知怎么回答。

Hhhhhhhh 发表于 2017-6-6 18:46:19

本帖最后由 Hhhhhhhh 于 2017-6-6 18:52 编辑

Firman 发表于 2017-6-6 17:35
多年前做过一个项目,检测到掉电时,马上把要保存的几个数写进EEPROM里,
测试是没问题的,大量货到用户手 ...

有设置BOD,现在加延时继续测试。

所以你的结论是:读操作也会改变eeprom?

但是对方并没有给你直接答复说读操作会改变eeprom里的内容,有人能给出肯定答案吗?

dz20062008 发表于 2017-6-6 19:19:39

电源不良也会造成eeprom数据异常,以前有个stm8的板子,连续快速开关机会出现丢数据。用示波器观察一下电源上升与下降的曲线是否有什么不同。

funnynypd 发表于 2017-6-6 21:06:00

>电源不良也会造成eeprom数据异常
This is interesting.

Firman 发表于 2017-6-7 04:13:10

funnynypd 发表于 2017-6-6 21:06
>电源不良也会造成eeprom数据异常
This is interesting.

yes,you know,read and write operation only some bit different in the command,if power drop or power DIP when sending command,reading may change writing.

xiaobendan 发表于 2017-6-7 07:27:12

这个老问题了,避开0地址,会好点,实际上我最后一次是发现一个莫名的问题,无论如何也没搞定,加上那时候突然变的很难买到,就放弃了

xiangxiadage 发表于 2017-6-7 08:19:01

Hhhhhhhh 发表于 2017-6-6 13:43
不是写的问题。写了之后就不会在进行写操作了,只是每次上电读取。

用写保护

little4_su 发表于 2017-6-7 08:58:49

我认同13楼@Firman的说法。我的128最近也是这个问题,主要是电源电压不稳造成的。天冷的时候,7805的散热还过得去,能正常工作。现在天热了7805散热不好,造成电源极不稳定,所以读写得时候出错了。

ckhf 发表于 2017-6-7 09:16:13

是不是可能写错了,加校验值,也可以写两份作为备份,上电判断那一份正确后再读取

118139 发表于 2017-6-7 09:29:13

本帖最后由 118139 于 2017-6-7 09:30 编辑

上电开机,先延时个100,200ms再去读eepeom,就都不会错

zhenglingo 发表于 2017-6-7 23:29:44

Firman 发表于 2017-6-6 17:35
多年前做过一个项目,检测到掉电时,马上把要保存的几个数写进EEPROM里,
测试是没问题的,大量货到用户手 ...

好经验,感谢分享,以后要留心这个问题,有技术支持就是好。

tangmintm8013TM 发表于 2017-6-8 15:19:24

我之前遇到是电源的问题,后开开机都是等延时才读内部eeprom

hzpyl 发表于 2017-6-8 16:39:21

内部BOT一定要开,
上电后,延时500ms再读EEPROM

从没有问题。

harold 发表于 2017-6-14 09:01:18

BOD 吧,专门为了EEPROM丢失问题而产生的。
页: [1]
查看完整版本: 关于eeprom丢失的问题?