搜索
bottom↓
回复: 15

AVR eepROM只读不写,数据也丢失,请问那位知道可能导致的...

[复制链接]

出0入0汤圆

发表于 2013-1-26 12:51:11 | 显示全部楼层 |阅读模式
目前有一批仪器,有不少客户反映eepROM(M16 eepROM)数据丢失的问题。
这些eepROM数据主要用于电压、电流校准用的,仪器的驱动程序由校准程序和测试程序(正常使用程序)组成,在校准程序里面把电压和电流的校准参数调好(eepROM读写正常)并保存正常之后,再切换到测试程序就可以正常使用,在测试程序中,只读取eepROM保存的校准参数,但不少仪器出现数据丢失现象,但我在调试的过程中没有发现。
请问在eepROM只读不写的情况下也会丢失,可能导致出现的原因有哪些呢?
数据手册在说明写eepROM数据丢失的原因只有以下两种和解决办法,由于只读,所以没有开BOD

请大家给点建议,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2013-1-26 12:53:51 | 显示全部楼层
开发平台CVAVR

出0入0汤圆

发表于 2013-1-26 14:46:31 | 显示全部楼层
只要你的校准程序和正常程序都在同一块flash, 就谈不上只读不写...

BOD不开会在电压不稳时跑飞到所有可能你不想跑到的地方...

当然, BOD不开也不是不可能, 我就做到了, 需要用额外的全局寄存器变量做标志(变通变量无法满足解锁的4T时序要求), 然后再用状态机,分隔开此标志置位,与解锁,写入,这几步,
则无论跑飞到哪一处, 也不可能误操作eeprom


说了这么多, 能看懂的应该就会做了, 看不懂的老实的打开BOD解决吧

出0入0汤圆

 楼主| 发表于 2013-1-26 16:11:18 | 显示全部楼层
snoopyzz 发表于 2013-1-26 14:46
只要你的校准程序和正常程序都在同一块flash, 就谈不上只读不写...

BOD不开会在电压不稳时跑飞到所有可能 ...

校准程序和正常使用程序都在同一块flash中, 通过判断一个IO状态来切换.....
怎么“就谈不上只读不写”了呢?不明白....
您提示的方法说的太精简了,不明白.....

出0入0汤圆

发表于 2013-1-26 17:05:44 | 显示全部楼层
yikuang 发表于 2013-1-26 16:11
校准程序和正常使用程序都在同一块flash中, 通过判断一个IO状态来切换.....
怎么“就谈不上只读不写”了 ...

只要在 同一个flash里,就有可能被执行到....通过IO判断对付不了程序跑飞...BOD不开,低电必须跑飞

出0入0汤圆

发表于 2013-1-26 18:09:06 | 显示全部楼层
为什么由于只读,所以没有开BOD , 开BOD有什么坏处吗?

出0入85汤圆

发表于 2013-1-26 18:53:00 | 显示全部楼层
BOD还是开启为好,设置软件加锁标志的话会降低些改写几率,但也不能杜绝,只读不写依然会篡改E2PROM的情况我也有遇到,但只限于一种设备,其他设备则没有出现过,LZ把你的MCU都控制哪些东西讲述一下吧,有非隔离的电源中无感性负载?有无大功率器件?

出0入25汤圆

发表于 2013-1-26 20:04:31 | 显示全部楼层
估计是hv马达控制环境, 话说还是开bod 在加  全局 双保险才行,我有个产品 做了 25k了。    目前没遇到 这类 问题

出0入85汤圆

发表于 2013-1-26 20:18:11 | 显示全部楼层
rei1984 发表于 2013-1-26 20:04
估计是hv马达控制环境, 话说还是开bod 在加  全局 双保险才行,我有个产品 做了 25k了。    目前没遇到 这 ...

你搞的也有感性负载?你是使用的开BOD+全局锁?

出0入0汤圆

发表于 2013-1-26 20:21:09 | 显示全部楼层
以前弄avr的时候,只读不写eeprom不开bod就不会丢数据,只要有写eeprom不开bod就经常丢数。楼猪估计是强干扰吧。

出0入0汤圆

 楼主| 发表于 2013-1-26 20:32:35 | 显示全部楼层
marshallemon 发表于 2013-1-26 18:53
BOD还是开启为好,设置软件加锁标志的话会降低些改写几率,但也不能杜绝,只读不写依然会篡改E2PROM的情况 ...

请问你这里说的“锁标志”是怎么用法?能否扼要讲下方案,这是一台6V/32A接地电阻测试仪的,现在不知道是电源不稳还是外界干扰造成的,我在调试的过程中从没发现过数据丢失,在客户那里使用就出现

出0入0汤圆

 楼主| 发表于 2013-1-26 20:40:38 | 显示全部楼层
hyz_avr 发表于 2013-1-26 18:09
为什么由于只读,所以没有开BOD , 开BOD有什么坏处吗?

数据手册那里没讲到只读也会丢失数据,与BOD无关,所以不开BOD是想单片机能够稳定的工作,避免使用过程中重启

出0入0汤圆

 楼主| 发表于 2013-1-26 20:43:52 | 显示全部楼层
rei1984 发表于 2013-1-26 20:04
估计是hv马达控制环境, 话说还是开bod 在加  全局 双保险才行,我有个产品 做了 25k了。    目前没遇到 这 ...

是接地电阻测试仪的

出0入85汤圆

发表于 2013-1-27 22:47:05 | 显示全部楼层
yikuang 发表于 2013-1-26 20:32
请问你这里说的“锁标志”是怎么用法?能否扼要讲下方案,这是一台6V/32A接地电阻测试仪的,现在不知道是 ...

只是一个全局变量,每次读写时先设置全局变量,然后调用读写E2PROM函数,函数中判断变量,正确就执行读写,错误就不执行

出0入0汤圆

发表于 2013-1-27 23:40:45 | 显示全部楼层
通常是电源抗干扰性能不够造成的E2P数据丢失,用高压在板子供电端子上多击几次应该可以重现。加强电源滤波和抗浪涌性能,实在不行将电源改成隔离。但加个24CXX存储器成本是最低的。

出0入4汤圆

发表于 2013-8-15 22:49:32 | 显示全部楼层
snoopyzz 发表于 2013-1-26 14:46
只要你的校准程序和正常程序都在同一块flash, 就谈不上只读不写...

BOD不开会在电压不稳时跑飞到所有可能 ...

能再细点吗?不大懂
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 16:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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