打印
[国产单片机]

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

[复制链接]
楼主: gmgmgm
手机看帖
扫描二维码
随时随地手机跟帖
61
zys0001| | 2013-3-12 20:32 | 只看该作者 回帖奖励 |倒序浏览
写进去的数据当然要校验,也当然是正确的,否则存数据就无意义了。你百分百是程序没写好

使用特权

评论回复
62
lvben5d| | 2013-12-4 09:14 | 只看该作者
我个人觉得 连续擦写STC的内部FLASH 尽量在2个扇区之间给予50ms+的间隔。这样基本OK

使用特权

评论回复
63
dong_abc| | 2013-12-4 23:33 | 只看该作者
gmgmgm 发表于 2013-3-12 12:38
呵呵,你是没发现到,只要去校验下读出来的值就会发现问题,相信你也没有去校验过读出来的值 ...

你太想当然了,你以为只有你一个人知道去校验啊,大家都是傻子?

使用特权

评论回复
64
sdwys| | 2013-12-5 10:13 | 只看该作者
这个问题很难解决,扇区刚擦完,断电了谁也没办法。我试过铁电存储器,在某些情况下数据也被修改,出现错误。

使用特权

评论回复
65
lzqfirst| | 2013-12-7 00:14 | 只看该作者
有几位老大说是程序问题,那能否详细说明一下,你们是怎么来避免这种情况的呢?

使用特权

评论回复
66
McuPlayer| | 2013-12-7 15:12 | 只看该作者
硬件上讲,这是无法避免的。
就像为了避免财产纠纷,要写遗嘱。但当事人的想法又会改变,又要改遗嘱。
然后就想,如果能在死的一瞬间,写一份遗嘱,就是最能表达当事人的最后意图。

只能从逻辑层面解决。
1、确保数据完整性
    如果数据只写了一部分,确保程序能识别,比如用校验码,双备份来实现
    程序一旦发现数据是不完整的,立刻启用缺省参数,这个参数可能不是最佳的,但至少是安全的
2、硬件提供响应的支持
    断电后有后备电源,比如充电电池,或者能**几十个毫秒的电容也可以。
    检测到主电源断电后,立刻保存数据,此时有后备电源,只是时间不长,然后等死

使用特权

评论回复
67
analog88| | 2013-12-9 16:42 | 只看该作者
sdwys 发表于 2013-12-5 10:13
这个问题很难解决,扇区刚擦完,断电了谁也没办法。我试过铁电存储器,在某些情况下数据也被修改,出现错误 ...

看了一下帖子,是在擦写的过程中变为FF,SDWYS的说法是对的,应该是在这个过程中又掉电,这个谁家的芯片也避免不了,需要从系统上保证。铁电的操作时间很短,数据被修改的话,估计是干扰造成的

使用特权

评论回复
68
286005374| | 2013-12-12 15:30 | 只看该作者
孤独泪 发表于 2011-1-6 17:27
这是楼主的水平有问题,任何ee或者flash都不能保证这个问题。
我的做法是copy.
因为这个问题基本是存在在擦 ...

同意 擦除一个扇区 好像要ms 级别的

使用特权

评论回复
69
xxiao6130| | 2013-12-17 16:01 | 只看该作者
在烧录的时候选择低电压时禁止对eeprom操作,应该可以减少这种情况。我用的STC11L02E和STC15W204SW也没有出现这种情况!

使用特权

评论回复
70
lufeijian| | 2013-12-23 19:30 | 只看该作者
猜测:可能没有足够的擦除和写入时间.
楼主是否能保证IC在对FLASH操作时,有充足的电源?别说你的电源很稳定,这个没用,关键在你电源关闭的动作中有没有进行FLASH操作,如果你能保证在FLASH操作完成后50mS内电源依然能维持在电源稳定,那应该问题不大,
比较我也做过STC89C系列,用了几K没出现过问题,还是用来保存时间计费用的,擦除和写入FLASH的时间必须要保证.并不是任意条件下都能操作FLASH的,就像我必须是活着才有可能回复你的问题一个道理.

使用特权

评论回复
71
liangzai135230| | 2013-12-24 13:52 | 只看该作者
以前我也遇到过,。。不过上电加一个长延时后,在电压稳定后去读写就没问题了。。

使用特权

评论回复
72
glenxu| | 2013-12-27 17:43 | 只看该作者
楼主的问题应该是掉电时读写保护的程序不够完善,由于写FLASH或EEROM需要时间较RAM长得多,
所以在“掉电”后:仅保证当前最后一次操作正确(例如一个字节),其余操作取消,要保护的数据越少越好,否则将工作“超时”,导致后续操作不稳定和不可靠。
我们使用了某著名厂商生产的工控CPU板也有同样的问题,甚至没有写操作。

使用特权

评论回复
73
logicok| | 2014-1-4 20:24 | 只看该作者
应该不能在上电的时候马上读写EEPROM吧,那个时候电源还没有稳定。

使用特权

评论回复
74
探索者_wyg| | 2014-3-25 13:08 | 只看该作者
MARK

使用特权

评论回复
75
bai_yun_kai| | 2014-3-25 15:34 | 只看该作者
问题应该是你擦除扇区的过程中停电导致,你这种现象应该出在某个扇区吧

使用特权

评论回复
76
tianm| | 2014-3-27 15:44 | 只看该作者
che180 发表于 2014-3-26 12:08
可以用官方例程测试EEPROM。如果不丢失,那就是你程序问题,如果丢失,可能你买的翻新STC单片机。
需要1.5- ...

STC还翻新?;P

使用特权

评论回复
77
jingning| | 2014-3-28 21:12 | 只看该作者
我做的一个工作时间累计器,几年了,没有遇到这个问题,工作的挺好,我3处备份。

使用特权

评论回复
78
dj狂人| | 2014-4-7 12:00 | 只看该作者
mark

使用特权

评论回复
79
aydf369| | 2014-7-10 18:38 | 只看该作者
mark

使用特权

评论回复
80
zys0001| | 2014-7-12 22:10 | 只看该作者
程序问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则