打印

求助:为什么STC内部EEPROM用时变化

[复制链接]
4857|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jack.king|  楼主 | 2010-8-30 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chunyang| | 2010-8-30 20:04 | 只看该作者
首先,那是Flash不是EEPROM,Flash写入前要先擦除,然后写入,IAP写入速度不高,这一点要特别注意,尤其是掉电写入时必须有足够的后备能源。如果数据Flash区出问题肯定是你的编程问题,如果是程序Flash区出问题,则是器件的问题,STC的ISP程序编制工艺不佳,确实出问题的几率较大,特别使用串口通讯时,但此问题非彼问题,二者发生的机制不同。

使用特权

评论回复
板凳
jack.king|  楼主 | 2010-8-31 09:38 | 只看该作者
本帖最后由 jack.king 于 2010-8-31 09:40 编辑

谢谢春阳大侠细心的回答,
首先:我没有开行串口通讯也没有用用ISP,数据flash出问题主要是变成0xff,程序flash也有丢失,还有一个问题,若出问题之后,MCU不能重新烧写了,
说明:之前用的atmel的CPU没有这些问题,程序只是在eeprom读写有改变。

使用特权

评论回复
地板
chunyang| | 2010-8-31 13:28 | 只看该作者
如果串口引脚接外部电路且上电时会有电平不定态,MCU可能恰好会进入ISP过程,程序因而丢失,如果同时设置了“编程时同时擦除EEPROM”,那么数据Flash区也会被擦除,但楼主的情况显然不是这样,MCU不能重写说明要么MCU已损坏,要么ISP程序区被毁,后者很少见,需要比ISP程序问题导致的程序丢失更为复杂的时序逻辑,现实中碰到的几率应该小到可以忽略,但MCU损坏如果设计不当的话出现这种情况就常见了。如果使用过高的电源电压或IO强输出的负载过大以及电路设计不当导致的闩扣效应等都会导致MCU损坏。
判定不能ISP编程的MCU是否已损坏的最简单办法是使用并行写入器,ISP程序也是这样写入的,如果使用并行写入器可以恢复MCU,说明时ISP程序被毁,否则是MCU损坏,你判断不了或没有适当的写入器就带上出问题的芯片去找供应商。

使用特权

评论回复
5
jack.king|  楼主 | 2010-9-15 16:06 | 只看该作者
谢谢!大侠的指点!
  再求助下找个代替STC的MCU,需要内部eeprom,
  我都被这个问题搞晕了,
  用这个的主要原因:上电数据flash变0xff,不知道怎么一天复位几次!
   还有很多芯片只能下载程序一次!

使用特权

评论回复
6
chunyang| | 2010-9-16 13:30 | 只看该作者
建议你先搞清问题的原因,显然,你的设计是存在问题的,换用MCU即使掩盖了问题但后患无穷。

使用特权

评论回复
7
yewuyi| | 2010-9-16 14:05 | 只看该作者
呵呵,带EEPROM 的MCU主流就那么几家,例如MCHP,AVR,STM8等

使用特权

评论回复
8
AD9851| | 2010-9-16 14:16 | 只看该作者
请问jack.king你用的是STC那款单片机?我同事也遇到类似的问题,用的是STC12C5A60S2,在做反复上电掉电试验时候也会出现EEPROM(数据flash)被擦除为0xFF的情况出现。不过程序flash被擦除还没有遇到过。

使用特权

评论回复
9
handlike| | 2010-9-16 21:03 | 只看该作者
eeprom前面空出一个扇区来,从第二个扇区开始读写(空间有富余的情况下)。

使用特权

评论回复
10
chunyang| | 2010-9-17 01:41 | 只看该作者
反复上电掉电丢程序,要特别留意串口外围的设计,那是由于误进入ISP编程态所致,STC的ISP程序确实有此问题,可以通过约束串口的上电暂态来避免,反复上电只丢数据应该是程序工艺流程问题,IAP程序应该将读、写、擦除以及地址调用等分开成各自独立的程序模块或子程序,这样可以防止因暂态干扰导致的程序指针乱飞误执行IAP,而且从程序的结构化设计角度讲也应该如此。

使用特权

评论回复
11
zhu_han_2| | 2011-6-29 11:03 | 只看该作者
8楼的问题我也遇到过,但是那是由于EEPROM没有读写正确的结果。对STC的EEPROM(FLASH)读写正确后不会出现上面的问题

使用特权

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

本版积分规则

488

主题

2158

帖子

1

粉丝