[STM8] ST8内部EEPROM写速度太慢!!

[复制链接]
6438|11
 楼主| xuannin 发表于 2009-8-29 15:21 | 显示全部楼层 |阅读模式
STM8系列写内部eeprom速度超慢,我之前测过不记得是1ms一个字节还是6ms一个字节,之前我没留意,现在一个项目,在写eeprom时丢串口数据,我才开始头疼起来,这样的速度确实是stm8的一大败笔!!!
cgha 发表于 2009-8-29 17:54 | 显示全部楼层
你是块写吗?块写的话的确慢了点
mcuisp 发表于 2009-8-30 00:09 | 显示全部楼层
本帖最后由 mcuisp 于 2009-8-30 00:45 编辑

STM8S写时间最大需要6.6ms。
EEPROM都这德性吧?楼主,您见过us数量级写时间的EEPROM?

LZ的应用倒是可以用缓冲的方法来解决,一次写128byte,也只需6.6ms,平均才52us 1字节,可以应付相当高的波特率的接收数据流(至少115200bps)。
反正STM8S SRAM多,是不?、、、
McuPlayer 发表于 2009-8-30 00:31 | 显示全部楼层
人家是写一个字节和写一个Page速度是一样的,这是IC设计电路决定的
秋天落叶 发表于 2009-8-30 08:54 | 显示全部楼层
那你可以用外接EEPROM,速度应该会快些
香水城 发表于 2009-8-30 10:03 | 显示全部楼层

内部和外部EEPROM的写速度都比较慢

正像楼上几位大虾所说,这就是EEPROM的速度,不管是内置还是外置的,你不妨采用2、3楼的方法,使用快速页写要快得多。

楼主应该在开始设计之前就把手册上的参数研究清楚:
STM8S_Memory.GIF
ddb_21ic 发表于 2009-8-30 10:23 | 显示全部楼层
优先级处理好了就ok了
zhaoxinzxzx 发表于 2009-8-31 06:53 | 显示全部楼层
估计楼主没有注意到写入EEPROM的时候(6ms之内)不能对EEPROM进行操作(读或写EERPOM),否则的话CPU会进入STALL状态,不执行任何语句,不响应任何中断。所以应该在EEPROM写入时进行查询FLASH_IAPSR,直到EEPROM写操作完成再进行下一步写操作!
 楼主| xuannin 发表于 2009-9-1 08:30 | 显示全部楼层
8楼,请教,你是指HVOFF位吗?EOP位好像写完没反应的!
 楼主| xuannin 发表于 2009-9-1 08:34 | 显示全部楼层
奇怪,FLASH_IAPSR复位值为0x4a??
zhaoxinzxzx 发表于 2009-9-1 16:50 | 显示全部楼层
是EOP位,这一位烧写完成后由硬件置1,读取FLASH_IAPSR之后清为0。

不要用调试环境去读寄存器,在程序中去读取并判断。


*((u8*)(0x4000)) = 0xAA;
while(!(FLASH_IAPSR & 0x04));

/* 下一步操作 */
zhaoxinzxzx 发表于 2009-9-1 16:55 | 显示全部楼层
10楼,你调试程序的时候要烧写FLASH和EEPROM的,这几位当然为1,
对于硬件寄存器的值要确定的话在程序里利用变量去读,这样才是准确的,调试环境中看到的未必是真实的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

174

帖子

3

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