搜索
bottom↓
回复: 18

51单片机内部的EEPROM存储是否会丢失

[复制链接]

出0入0汤圆

发表于 2013-8-23 13:07:15 | 显示全部楼层 |阅读模式
STC51单片机内部eeprom,可不可以这样使用
首先将使用的扇区连续擦除,再向内部扇区编写数据,每次写十个字节,写完十个字节不擦除扇区,第二次接着第一次的位置 ,继续写直到第一个扇区写满了  再去写第二个扇区,
单片机内部的EEPROM这样使用会不会不稳定 ,会不会丢失数据?

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-8-23 13:10:47 | 显示全部楼层
没有绝对的EEPROM!

出0入0汤圆

 楼主| 发表于 2013-8-23 13:18:35 | 显示全部楼层
wangqing_gxu 发表于 2013-8-23 13:10
没有绝对的EEPROM!

什么意思?不太懂,没明白
如果在保存第二组数据是把之前保存的数据读出来,再和将要保存的一起保存,是这样么就不丢失了么?
不过这样会不会很麻烦,需要好多片内地址

出0入0汤圆

发表于 2013-8-23 13:24:17 | 显示全部楼层
看你怎么做,不过只能说减小出错机率,绝对不丢那很难.
程序跑飞可能会读写EEPROM,很难保证程序不跑飞.
电压不稳时读EEPROM可能会变写,改变了某些EEPROM的值,这个你可以做得更好.
程序写得不好,也有可增加EEPROM的风险.

出0入0汤圆

 楼主| 发表于 2013-8-23 13:30:18 | 显示全部楼层
wangqing_gxu 发表于 2013-8-23 13:24
看你怎么做,不过只能说减小出错机率,绝对不丢那很难.
程序跑飞可能会读写EEPROM,很难保证程序不跑飞.
电压 ...

谢谢您的解答  我还是想知道这个方法可行么?
首先将使用的扇区连续擦除,再向内部扇区编写数据,每次写十个字节,写完十个字节不擦除扇区,第二次接着第一次的位置 ,继续写直到第一个扇区写满了  再去写第二个扇区,
单片机内部的EEPROM这样使用会不会不稳定 ,会不会丢失数据?
官网的资料好像不建议用这个方法,但是我要保存的数据有很多 几千个字节, 这样的方法可行么

出0入0汤圆

发表于 2013-8-23 13:30:56 | 显示全部楼层
别的单片机不了解。stc的eeprom只有是0xff时才能写,也就说,只能拉低,不能写高
只有擦出扇区,才能把扇区拉高,但是必须整个扇区操作
详情看stc的数据手册吧,程序,官方也有

出0入0汤圆

 楼主| 发表于 2013-8-23 13:34:15 | 显示全部楼层
jiaohaitao 发表于 2013-8-23 13:30
别的单片机不了解。stc的eeprom只有是0xff时才能写,也就说,只能拉低,不能写高
只有擦出扇区,才能把扇区 ...

谢谢解答
程序写好了 ,官方的手册我也看了  是把每次修改的数据放在同一个扇区,我要每次存10个字节,那在第二次保存的时候,是不是必须要吧之前的数据读取出来再一起保存?
这个是我的问题所在

出0入0汤圆

发表于 2013-8-23 13:41:43 | 显示全部楼层
609178658 发表于 2013-8-23 13:34
谢谢解答
程序写好了 ,官方的手册我也看了  是把每次修改的数据放在同一个扇区,我要每次存10个字节,那 ...

如果你要覆盖以前的数据,这个必须整个扇区擦出。
如果你接着原来的数据顺序往后写,就没必要了
如果数据比较多,建议用stc12c5a32s2这款,eeprom有28k

出0入0汤圆

 楼主| 发表于 2013-8-23 13:41:44 | 显示全部楼层
我对一个扇的分两次写试验过,是可以的,但是不知道扇区用的多了 会不会不稳定甚至不能用

出0入0汤圆

 楼主| 发表于 2013-8-23 13:46:26 | 显示全部楼层
jiaohaitao 发表于 2013-8-23 13:41
如果你要覆盖以前的数据,这个必须整个扇区擦出。
如果你接着原来的数据顺序往后写,就没必要了
如果数据 ...

我就是接着原来的数据继续写,这样可以么 我用的是89c54RD+   有45K  够用了
手册上说每次修改的数据放在同一扇区,这句话什么意思,是每次写都要擦除扇区么

出0入0汤圆

发表于 2013-8-23 13:58:51 | 显示全部楼层
你说的是手册上的建议:
1.同一次修改的数据放在同一扇区中,单独修改的数据放在另外的扇区,就不须读出保护。
2.如果一个扇区只用一个字节,那就是真正的EEPROM,STC单片机的Data Flash比外部EEPROM要快很多,
读一个字节/编程一个字节/擦除一个扇区大概是10uS/60uS/10mS。
3.如果同一个扇区中存放了一个以上的字节,某次只需要修改其中的一个字节或一部分字节时,则另外的
不需要修改的数据须先读出放在STC 单片机的RAM中,然后擦除整个扇区,再将需要保留的数据和需修改
的数据一并写回该扇区中。这时每个扇区使用的字节数是使用的越少越方便(不需读出一大堆需保留数据)。
我的理解:
修改频率相同的数据放同一个扇区,这样比较方便,改一个字节要擦出整个扇区,改多个也要擦。这样
性价比高,哈哈,不知老妖是不是要描述的这个意思

出0入0汤圆

 楼主| 发表于 2013-8-23 14:14:17 | 显示全部楼层
jiaohaitao 发表于 2013-8-23 13:58
你说的是手册上的建议:
1.同一次修改的数据放在同一扇区中,单独修改的数据放在另外的扇区,就不须读出保护 ...

我就是想知道我那么做可以么,如果写之前要把之前写的读出来在一起写,会不会很麻烦,如果我之前已经写了 1000个字节,
我继续写的时候,要把那100个字节读出来存到RAM,再一起保存 这么做麻烦,
可不可以顺序保存,不覆盖,懂我说的意思?我说明白没?
还有”老妖“是什么意思?

出0入0汤圆

发表于 2013-8-23 15:28:23 | 显示全部楼层
你的方法是可以的,但很容易出错.
每次接在后面写,必须保证每次的偏移量都对,但单片机连续运行几个月上年,还有各种干扰,用一个变量保存偏移量出错的可能是有的.而一但出错,后面再写多少数据都是白搭.

出0入0汤圆

 楼主| 发表于 2013-8-23 15:34:56 | 显示全部楼层
本帖最后由 609178658 于 2013-8-23 15:46 编辑
wangqing_gxu 发表于 2013-8-23 15:28
你的方法是可以的,但很容易出错.
每次接在后面写,必须保证每次的偏移量都对,但单片机连续运行几个月上年,还 ...


保存时间不需要很久 只是连续保存,之后送个打印机打印和CH375通过USB输出,   每次接在后面继续写,写完的不读出来,  可以么

出0入0汤圆

发表于 2013-8-23 19:15:25 | 显示全部楼层
609178658 发表于 2013-8-23 14:14
我就是想知道我那么做可以么,如果写之前要把之前写的读出来在一起写,会不会很麻烦,如果我之前已经写了 ...

你只要保证你要操作的字节单元是干净的(就是0xff),你就可以往里面写数据。如果你要修改原来的数据,只能读出到内存,擦出原来的扇区,再写进出。
写和读:按字节
擦出:按扇区

出10入113汤圆

发表于 2013-8-23 19:36:00 | 显示全部楼层
你的方法可以

出0入0汤圆

 楼主| 发表于 2013-8-27 20:47:05 | 显示全部楼层
jiaohaitao 发表于 2013-8-23 19:15
你只要保证你要操作的字节单元是干净的(就是0xff),你就可以往里面写数据。如果你要修改原来的数据,只 ...

我翻看过手册,生产单片机的厂家并不支持这样的使用方法,可能是不稳定吧

出0入10汤圆

发表于 2013-8-27 21:22:13 来自手机 | 显示全部楼层
我感觉可以的,我做过类似的例子,是用eeprom来记录温度值,是可行的。按照你说的,记录满整个空间之前,只要不覆盖写,应该没有多大问题。

你的方法可以的,往同一扇区写数据只要不覆盖以前写过的地方,可以直接写,用不着把原来的读出来再一块存进去,我感觉那样很麻烦,还要占不少的ram和时间

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-23 14:14

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

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