打印
[STM8]

STM8 内部eeprom操作的几个问题

[复制链接]
5468|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinside|  楼主 | 2013-6-26 17:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.内部eeprom的读取时间是多少? 比如 *p=(unsinged char*)0x4000, a=*p; 在执行a=*p的需要多长时间,会不会比正常的RAM访问的执行时间慢呢?如果不会,是否有读取出错的情况(相信eeprom的读取时间应该会比RAM的读取时间要慢)?

2.STM8003F3的有没有RWW功能,说明书里面哪里可以确认?

3.没有RWW功能的写操作之后能够继续执行其他程序吗,还是等写完才能够执行其他指令。按字面理解,RWW好像是说写的时候还是可以读的意思,但是没有解释是否跟程序能否继续执行有关系。

路过的大侠如果有知道请不吝帮忙。
先谢谢了。
沙发
cjhk| | 2013-6-26 20:18 | 只看该作者
帮楼主   顶一个   应该有高手能够帮忙  

使用特权

评论回复
板凳
sinside|  楼主 | 2013-6-27 17:08 | 只看该作者
谢谢楼上帮顶。没有人回答吗?自己再顶起来。

关于第3点没有RWW的功能的话,程序会停等eeprom写完,在family的datasheet,eeprom和flash的byte操作里面有提及。

另外一个新的问题:4. 在内部eeprom写操作的时候(如*p=temp;p为eeprom地址)如果有RWW功能,程序继续执行,如果temp的值在eeprom还没有写完的情况下发生了变化,会有什么影响内,看编译后的汇编,好像没有其他寄存器当缓冲。假设temp==5,在eeprom还没有结束的时候temp的值变为0xf7, 写到eeprom的结果是多少呢?

使用特权

评论回复
地板
hawksabre| | 2013-6-27 18:56 | 只看该作者
问题解决了就好     呵呵   顶一个  

使用特权

评论回复
5
sinside|  楼主 | 2013-6-28 09:55 | 只看该作者
本帖最后由 sinside 于 2013-6-28 09:58 编辑

关于2,4点通过实测 (byte写操作),如果测试方法没有问题的话,确定STM8S003F3有RWW功能,而且在写e过程改变赋值变量的值不会影响写入。即使是通过寄存器A的值改变也没有问题。

使用特权

评论回复
6
太阳岛一天发| | 2020-8-11 09:41 | 只看该作者
问一下,阁下的问题解决了没有,有没有办法可以避开写EEPROM的同时,其他程序也可以继续执行,像中断。

使用特权

评论回复
7
香水城| | 2020-8-11 16:05 | 只看该作者
对于STM8S芯片而言,读EEPROM跟读FLASH区是一样的。
当主频低于16MHz时,可以做到无等待读取操作。

对于对于STM8S芯片而言,程序在FLASH运行整体要快过在RAM里运行,因为访问FLASH的总线接口是32位,而RAM则是8位。

关于STM8S芯片的RWW功能,数据手册里都有明确。比如:Read while write: Writing in data memory possible while executing code in program
memory.

STM8S003芯片不支持 RWW. 对于不支持RWW功能的STM8芯片,在做FLASH/EEPROM擦/写操作时CPU是被堵塞的,不会响应中断,其它程序也不会运行。

使用特权

评论回复
评论
太阳岛一天发 2020-8-18 08:50 回复TA
@香水城 :stm8s的掉电检测和保存怎末做的,硬件应该怎样设计 
太阳岛一天发 2020-8-17 17:18 回复TA
@香水城 :大哥,请教你一个关于掉电存储的问题,对于掉电的检测,这个电路,我开始设计的是AD采集的,用ADC采集来自MCU的5V电压,然后发现随着电压的降低,AD采集的值是基本不变的,因为掉电的过程中,你的VDD和VSS都会变,会导致AD采集的值是不变的,电路上应该怎样解决,还有我可不可以用外部中断去触发它去写EEPROM,在电路的设计过着中要注意什么。可不可以加QQ 
太阳岛一天发 2020-8-13 09:40 回复TA
没有办法了,我现在只能这样做,就是在不断电的情况下用Ram写,在掉电的时候用EEPROM去写。 
香水城 2020-8-12 14:31 回复TA
@太阳岛一天发 :写1个单位的数据需要3ms左右。如果是8S003接没法回避这点。你代码有没有办法把这个时间利用起来做为一个延时呢?如果只是几个毫秒,眼睛用过不容易感觉到闪烁。 
太阳岛一天发 2020-8-12 13:55 回复TA
感谢你的回答,您的意思这个阻塞问题没有办法解决吗?我现在要定时的去刷新数码管,因为我发现写EEPROM大概需要2.5ms,阻塞了就会导致数码管闪烁,再请教一下您,有办法避免吗 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

0

粉丝