[国产单片机] STC单片机通病,真是烦死人,TMD一直没解决

[复制链接]
35534|100
zys0001 发表于 2013-3-12 20:32 | 显示全部楼层
写进去的数据当然要校验,也当然是正确的,否则存数据就无意义了。你百分百是程序没写好
lvben5d 发表于 2013-12-4 09:14 | 显示全部楼层
我个人觉得 连续擦写STC的内部FLASH 尽量在2个扇区之间给予50ms+的间隔。这样基本OK
dong_abc 发表于 2013-12-4 23:33 | 显示全部楼层
gmgmgm 发表于 2013-3-12 12:38
呵呵,你是没发现到,只要去校验下读出来的值就会发现问题,相信你也没有去校验过读出来的值 ...

你太想当然了,你以为只有你一个人知道去校验啊,大家都是傻子?
sdwys 发表于 2013-12-5 10:13 | 显示全部楼层
这个问题很难解决,扇区刚擦完,断电了谁也没办法。我试过铁电存储器,在某些情况下数据也被修改,出现错误。
lzqfirst 发表于 2013-12-7 00:14 | 显示全部楼层
有几位老大说是程序问题,那能否详细说明一下,你们是怎么来避免这种情况的呢?
McuPlayer 发表于 2013-12-7 15:12 | 显示全部楼层
硬件上讲,这是无法避免的。
就像为了避免财产纠纷,要写遗嘱。但当事人的想法又会改变,又要改遗嘱。
然后就想,如果能在死的一瞬间,写一份遗嘱,就是最能表达当事人的最后意图。

只能从逻辑层面解决。
1、确保数据完整性
    如果数据只写了一部分,确保程序能识别,比如用校验码,双备份来实现
    程序一旦发现数据是不完整的,立刻启用缺省参数,这个参数可能不是最佳的,但至少是安全的
2、硬件提供响应的支持
    断电后有后备电源,比如充电电池,或者能**几十个毫秒的电容也可以。
    检测到主电源断电后,立刻保存数据,此时有后备电源,只是时间不长,然后等死
analog88 发表于 2013-12-9 16:42 | 显示全部楼层
sdwys 发表于 2013-12-5 10:13
这个问题很难解决,扇区刚擦完,断电了谁也没办法。我试过铁电存储器,在某些情况下数据也被修改,出现错误 ...

看了一下帖子,是在擦写的过程中变为FF,SDWYS的说法是对的,应该是在这个过程中又掉电,这个谁家的芯片也避免不了,需要从系统上保证。铁电的操作时间很短,数据被修改的话,估计是干扰造成的
286005374 发表于 2013-12-12 15:30 | 显示全部楼层
孤独泪 发表于 2011-1-6 17:27
这是楼主的水平有问题,任何ee或者flash都不能保证这个问题。
我的做法是copy.
因为这个问题基本是存在在擦 ...

同意 擦除一个扇区 好像要ms 级别的
xxiao6130 发表于 2013-12-17 16:01 | 显示全部楼层
在烧录的时候选择低电压时禁止对eeprom操作,应该可以减少这种情况。我用的STC11L02E和STC15W204SW也没有出现这种情况!
lufeijian 发表于 2013-12-23 19:30 | 显示全部楼层
猜测:可能没有足够的擦除和写入时间.
楼主是否能保证IC在对FLASH操作时,有充足的电源?别说你的电源很稳定,这个没用,关键在你电源关闭的动作中有没有进行FLASH操作,如果你能保证在FLASH操作完成后50mS内电源依然能维持在电源稳定,那应该问题不大,
比较我也做过STC89C系列,用了几K没出现过问题,还是用来保存时间计费用的,擦除和写入FLASH的时间必须要保证.并不是任意条件下都能操作FLASH的,就像我必须是活着才有可能回复你的问题一个道理.
liangzai135230 发表于 2013-12-24 13:52 | 显示全部楼层
以前我也遇到过,。。不过上电加一个长延时后,在电压稳定后去读写就没问题了。。
glenxu 发表于 2013-12-27 17:43 | 显示全部楼层
楼主的问题应该是掉电时读写保护的程序不够完善,由于写FLASH或EEROM需要时间较RAM长得多,
所以在“掉电”后:仅保证当前最后一次操作正确(例如一个字节),其余操作取消,要保护的数据越少越好,否则将工作“超时”,导致后续操作不稳定和不可靠。
我们使用了某著名厂商生产的工控CPU板也有同样的问题,甚至没有写操作。
logicok 发表于 2014-1-4 20:24 | 显示全部楼层
应该不能在上电的时候马上读写EEPROM吧,那个时候电源还没有稳定。
探索者_wyg 发表于 2014-3-25 13:08 | 显示全部楼层
bai_yun_kai 发表于 2014-3-25 15:34 | 显示全部楼层
问题应该是你擦除扇区的过程中停电导致,你这种现象应该出在某个扇区吧
tianm 发表于 2014-3-27 15:44 | 显示全部楼层
che180 发表于 2014-3-26 12:08
可以用官方例程测试EEPROM。如果不丢失,那就是你程序问题,如果丢失,可能你买的翻新STC单片机。
需要1.5- ...

STC还翻新?;P
jingning 发表于 2014-3-28 21:12 | 显示全部楼层
我做的一个工作时间累计器,几年了,没有遇到这个问题,工作的挺好,我3处备份。
dj狂人 发表于 2014-4-7 12:00 | 显示全部楼层
aydf369 发表于 2014-7-10 18:38 | 显示全部楼层
zys0001 发表于 2014-7-12 22:10 | 显示全部楼层
程序问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部