[STM8] STM8的EEPROM读写速度挺快的啊

[复制链接]
12129|18
 楼主| lzymcu 发表于 2010-10-9 11:08 | 显示全部楼层 |阅读模式
STM8的EEPROM读写速度挺快的啊,经测试发现并没像datasheet说的那样一个字节6.6ms,
1.jpg
我是单字节写的,似乎写N个字节都是6点几个ms,我是用示波器测得的
2.jpg
数据时写进去了
3.jpg
yewuyi 发表于 2010-10-9 11:11 | 显示全部楼层
这样不能算吧?!

难道写进去了后没有标志提示吗?

正确的应该是:发送写命令,检测写完成标志,这个时间才是写入时间吧。
 楼主| lzymcu 发表于 2010-10-9 11:19 | 显示全部楼层
不过发现有点问题,有几个字节断电后就不对了
4.jpg
这又是为什么呢?
有这方面经验的帮帮忙啊
yewuyi 发表于 2010-10-9 12:25 | 显示全部楼层
这是软件仿真和实际芯片调试不同步的原因。

这就说明,事实上没这么快,而且你的程序也是有问题的。
pkat 发表于 2010-10-9 15:55 | 显示全部楼层
估计没这么快
火箭球迷 发表于 2010-10-10 22:35 | 显示全部楼层
应该不大可能达到这么快的
dadodo 发表于 2010-10-11 23:50 | 显示全部楼层
手册上的数据是对的。
如果养了狗,写着写着小心被狗咬,呵呵
txcy 发表于 2010-10-12 10:30 | 显示全部楼层
楼上可真够幽默的
hugo0chen 发表于 2014-6-10 10:32 | 显示全部楼层
我的也出现这个问题,开始的连续四个地址空间内容,出现问题,调试仿真时可以查看到,断电后再上电,内容全部或是部分消失,程序如下,STM8L051F3芯片,STVD开发环境。
EEPROM.jpg
pofu007 发表于 2014-6-10 15:49 | 显示全部楼层
写一个byte或word我都是这么做的,不知道是不是完善
// Unlock data memory
FLASH_Unlock(FLASH_MemType_Data);
        
// Wait until Data EEPROM area unlocked flag is set
while (FLASH_GetFlagStatus(FLASH_FLAG_DUL) == RESET)
{}
   
FLASH_ProgramByte((uint32_t)CHECK_CODE_ADDR, (uint8_t)CHECK_CODE);
        
FLASH_WaitForLastOperation(FLASH_MemType_Data);
   
        FLASH_Lock(FLASH_MemType_Data);  
hugo0chen 发表于 2014-6-10 15:59 | 显示全部楼层
本帖最后由 hugo0chen 于 2014-6-10 16:01 编辑
hugo0chen 发表于 2014-6-10 10:32
我的也出现这个问题,开始的连续四个地址空间内容,出现问题,调试仿真时可以查看到,断电后再上电,内容全 ...

在对EEPROM开始操作的一开始,增加延时程序,问题解决了。其实主要是芯片启动工作后,增加一段延时可以使得crystal稳定,另外我从其他的帖子上看到出现EEPROm的读写问题时,如果再程序的一开始就操作,增加一段延时即可。
boyie 发表于 2014-6-11 08:16 | 显示全部楼层
时钟稳定 可以读取标志位, 一般初始化时钟时候有个等待,知道READY标志位好了才进行下一步操作,估计你没做这个等待吧。时钟是需要时间稳定的 。
EEPROM楼主有点搞笑了。 我试过 跟手册上基本一致, 你没有加等待操作完成的标志。 为之关不掉的看门狗得不停的喂~~~~~~~~~~~
叶与秋风舞 发表于 2015-11-17 23:13 | 显示全部楼层
7楼的。也是个人才;P;P;P;P;P;P;p;p;p
exson_2006 发表于 2015-11-18 08:40 | 显示全部楼层
感谢分享
zxm19820916 发表于 2016-6-13 17:55 | 显示全部楼层
hugo0chen 发表于 2014-6-10 10:32
我的也出现这个问题,开始的连续四个地址空间内容,出现问题,调试仿真时可以查看到,断电后再上电,内容全 ...

我也是,保存5个字符,断电再上电后,第一个字符的位置显示第五个字符,其它4个没有显示。
zxm19820916 发表于 2016-6-13 17:56 | 显示全部楼层
hugo0chen 发表于 2014-6-10 15:59
在对EEPROM开始操作的一开始,增加延时程序,问题解决了。其实主要是芯片启动工作后,增加一段延时可以使 ...

有没有读写EEPROM的参考代码?谢谢!
hugo0chen 发表于 2016-6-15 13:47 | 显示全部楼层
zxm19820916 发表于 2016-6-13 17:56
有没有读写EEPROM的参考代码?谢谢!

在对FLASH或是EEPROM进行数据读写的是,中断最好关闭,等flash读写完毕后,如果需要,再开启允许中断
zxm19820916 发表于 2016-6-15 15:35 | 显示全部楼层
hugo0chen 发表于 2016-6-15 13:47
在对FLASH或是EEPROM进行数据读写的是,中断最好关闭,等flash读写完毕后,如果需要,再开启允许中断 ...

嗯,谢谢,已经解决。
zxm19820916 发表于 2016-6-15 15:36 | 显示全部楼层
zxm19820916 发表于 2016-6-13 17:55
我也是,保存5个字符,断电再上电后,第一个字符的位置显示第五个字符,其它4个没有显示。 ...

我自己弄错了,保存的时候地址没有增加偏移量,导致只是保存了最后一个字节。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

96

帖子

1

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