打印
[STM8]

STM8S207的EEPROM写入后加锁,抗干扰性能明显下降???

[复制链接]
4193|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huhuhu_1|  楼主 | 2010-10-21 10:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在用STM8S207CB设计一个无线模块,模块的参数都是保存在EEPROM中的。测试中发现在带电拔插模块时,参数有时会改变,经过多次测试,发现规律如下:如果修改了参数后没有按过复位键(直接接到复位引脚),带电拔插时,参数一定会变;如果按过复位键,或是没有修改过参数,则拔插不会修改参数。
参数修改代码如下:
  #define DataLock() FLASH_Lock(FLASH_MEMTYPE_DATA) //Lock the eeprom
  #define DataUnLock() FLASH_Unlock(FLASH_MEMTYPE_DATA) //Unlock the eeprom

  DataUnLock();
  myShortAddress_eep.Val = myShortAddress.Val;
  currentChannel_eep = currentChannel;
  DataLock();
我初期怀疑是EEProm加锁不成功的原因。后来在加锁之后尝试修改eeprom的参数,发现修改不了,说明加锁发生了作用。
尝试使用软件复位代替复位键,发现带电拔插仍然会改变参数。
尝试直接给模块断电,再通电,而不是带电拔插,则参数不会改变。
我现在怀疑EEPROM被写入后,虽然是被加锁,但抗噪性能明显下降,只有硬件复位才能恢复其高抗噪性能。
请高手给分析一下,是什么原因造成EEPRom这么容易受干扰?
沙发
mcuisp| | 2010-10-21 12:46 | 只看该作者
最好是写个简单的project来确认下你的判断。
我用过stm8s的eeprom和flash存数据,没发现问题。
实际上由于stm8s的eeprom和flash其实是同一回事,真的掉数据的话,程序代码也会掉的。

使用特权

评论回复
板凳
jgphu| | 2010-10-21 13:32 | 只看该作者
再好好检查一下,试一试别的地址上,或写个简单的程序。

使用特权

评论回复
地板
yybj| | 2010-10-21 18:35 | 只看该作者
写个简单的程序检验一下你的判断

使用特权

评论回复
5
huhuhu_1|  楼主 | 2010-10-22 09:23 | 只看该作者
谢谢楼上的各位,经过分析,发现是RAM的资料在上电过程中异常,造成EEPROM的资料也相应改变了。取消了他们的关联之后,EEPROM的资料就很稳定了。

使用特权

评论回复
6
jgphu| | 2010-10-22 13:01 | 只看该作者
那肯定的啦。

使用特权

评论回复
7
wxx116zh| | 2010-11-30 20:31 | 只看该作者
mark

使用特权

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

本版积分规则

23

主题

62

帖子

0

粉丝