单片机内部eepromm的读取时间是多少

& & & & & & & & & & & & & & & &&&STM8系列写内部eeprom速度超慢,我之前测过不记得是1ms一个字节还是6ms一个字节,之前我没留意,现在一个项目,在写eeprom时丢串口数据,我才开始头疼起来,这样的速度确实是stm8的一大败笔!!!
&&&&&&&&&&
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&你是块写吗?块写的话的确慢了点
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
STM8S写时间最大需要6.6ms。
EEPROM都这德性吧?楼主,您见过us数量级写时间的EEPROM?
LZ的应用倒是可以用缓冲的方法来解决,一次写128byte,也只需6.6ms,平均才52us 1字节,可以应付相当高的波特率的接收数据流(至少115200bps)。
反正STM8S SRAM多,是不?、、、
在线时间32 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&人家是写一个字节和写一个Page速度是一样的,这是IC设计电路决定的
在线时间2 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&那你可以用外接EEPROM,速度应该会快些
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
内部和外部EEPROM的写速度都比较慢
正像楼上几位大虾所说,这就是EEPROM的速度,不管是内置还是外置的,你不妨采用2、3楼的方法,使用快速页写要快得多。
楼主应该在开始设计之前就把手册上的参数研究清楚:
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
& & & & & & & & & & & & & & & &&&优先级处理好了就ok了
在线时间5 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&估计楼主没有注意到写入EEPROM的时候(6ms之内)不能对EEPROM进行操作(读或写EERPOM),否则的话CPU会进入STALL状态,不执行任何语句,不响应任何中断。所以应该在EEPROM写入时进行查询FLASH_IAPSR,直到EEPROM写操作完成再进行下一步写操作!
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&8楼,请教,你是指HVOFF位吗?EOP位好像写完没反应的!
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & & & & & & & & & & & & &&&奇怪,FLASH_IAPSR复位值为0x4a??
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
是EOP位,这一位烧写完成后由硬件置1,读取FLASH_IAPSR之后清为0。
不要用调试环境去读寄存器,在程序中去读取并判断。
*((u8*)(0x4000)) = 0xAA;
while(!(FLASH_IAPSR & 0x04));
/* 下一步操作 */
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
10楼,你调试程序的时候要烧写FLASH和EEPROM的,这几位当然为1,
对于硬件寄存器的值要确定的话在程序里利用变量去读,这样才是准确的,调试环境中看到的未必是真实的。
Powered by
逛了这许久,何不进去瞧瞧?热搜TAGS:
AVR内部EEPROM读写问题
最近用Mega16做一个步进电机的项目,以后把项目全部的内容贴上来跟大家分享呵呵,现在讨论一个防止EEPROM读写出错的小办法,我编写熔丝位是用AVRstudio里面的Jtag下载功能来烧熔丝位的,连上Jtag,AVRstudio的Jtag功能fuse选项里,把熔丝位中的Preserve EEPROM memory through the Chip Erase cycle钩上,Brown-out detection level at VCC="4".0V钩上,Brown-out detection enabled钩上,就可以解决读写EEPROM时出错的机会了。如果再加上用直接地址访问法,而不用变量定义法,会更好的避免EEPROM读写问题,例如我就定义了//定义eeprom变量的地址#define eeprom_step_num 0xA0#define eeprom_step_r_max 0xB0#define eeprom_step_l_max 0xC0然后程序就没有再跑飞了!^_^在其它论坛上还有一些讨论EEPROM读写错误的贴,我节选了一些,留作参考:EEPROM掉电丢数据这个特点可不是AVR独有的。很多年前在89C51+24C02的系统里面就遇到过,我不知道铁电有什么比24C02更牛的地方,居然能保证不丢数据。原因很简单,就是掉电过程中,电压降低到MCU无法正常工作的程度,程序跑飞了,单片机引脚状态完全不可控,某次掉电就可能发出错误的写24C02的指令。上电的时候因为RESET处于有效状态,MCU引脚状态完全确定(对于51来说就是全1),是不可能误操作24C02的。解决方案很简单,加一片MAX813L,当电压低于4.6V就锁定89C51,问题彻底解决。这么多年也没见24C02被误改写。最早的一批AVR内置了EEPROM却没有BOD,所以EEPROM被误改写是家常便饭,ATMEL很快发现了这个问题,新推出的AVR全都含有BOD乐。AVR的情况比较复杂,振荡方式和复位方式都有多种,所以不仅掉电会改写EEPROM(原因同上),上电也会!RESET过程结束前,必须有若干XTAL,MCU内部寄存器(包括软件不可见的)才会清零,如果RESET结束了才来时钟,上电就是程序乱飞,同样有可能改写EEPROM。用RC振荡方式问题不大,有电就能振起来,用石英晶体就会出问题,我测过89C51的,上电后20ms才振起来,如果电源上有大的滤波电容,VCC的上升斜率变小,晶体起振时间会变得更长!有存储示波器的朋友可以自己测一下,对晶振的起振有个感性认识。我遇到过的问题,m8里面有写eeprom的程序段,数据已经写入到eeprom了。不停的开关电,eeprom里的值有可能随机改变,不见得是0x00,0xFF原因是不是上电时,程序指针跑飞到写eeprom那段,导致往eeprom随机地址写了随机数。后来,采用isp下载2次程序,最后版本的程序是删除了写eeprom程序段,保留读eeprom段。这样的话,开关电很多次,里面的eeprom没见有改动。如果系统实际运行时,需要对eeprom写操作,可考虑存多几次数据,用校验方法来处理数据改变。偶的应用一般要用到EEPROM存储的数据比较少,一般采取反码冗余备份校验的方式,需要存储的数据按照原码和反码存两份,需要读取时分别读取原码和反码,进行校验,若校验不通过,则根据一定的算法恢复数据或者采取缺省值.我遇到过的问题,m8里面有写eeprom的程序段,数据已经写入到eeprom了。不停的开关电,eeprom里的值有可能随机改变,不见得是0x00,0xFF我也是一样BOD使能就OK了 不过我还是不放心,我用两份数据,最后加校验,启动的时候读eeprom数据如果有异常 检测出错误数据组,然后用正确的恢复。如果两组数据均遭毒手,用flash里面的默认数据覆盖。一般我在eeprom里间三分拷贝,位置隔的比较远以下是马潮老师的解决办法:作为一个正式的系统或产品,当系统基本功能调试完成后,一旦进行现场测试阶段,请注意马上改写熔丝位的配置,启用AVR的电源检测(BOD)功能。对于5V系统,设置BOD电平为4.0V;对于3V系统,设置BOD电平为2.7V。然后允许BOD检测。这样,一旦AVR的供电电压低于BOD电平,AVR进入RESET(不执行程序了)。而当电源恢复到BOD电平以上,AVR才正式开始从头执行程序。保证了系统的可靠性!原因分析如下:AVR是宽电压工作的芯片,当电压跌至2.5V,系统程序还能工作。这是有2个可怕的现象可能出现,1。外围芯片工作已经混乱,AVR读到的东西不正确,造成程序的执行发生逻辑错误(不是AVR本身的原因)。2。当电源低到临界点,如2.4V时,并且在此互上互下的,AVR本身的程序执行也不正常,取指令、读数据都可能发生错误,或程序乱飞、不稳定(AVR本身的原因,实际任何的单片机都是这样的),非常容易造成EEPROM、FALSH的破坏。有人问51怎么不会?实际上51也是这样,只是51内部没有直接写EEPROM、FLASH的指令,它的程序乱飞留不下痕迹。还有人有疑问:外挂EEPROM,掉电时怎么不会改写?实际是外挂EEPROM,当电压低于4V(2.7V)时,它已经不工作了,程序去改内容也改不了。而AVR内部的东西在临界电压时都能工作,但非常不稳定。AVR的BOD功能必须要使用,我早期使用51时,凡是产品外部都要使用电源监测芯片,现在AVR自己本身就有该功能,一定要使用。
文章热词:stm32 随机数
延伸阅读:
PIC单片机是一种用来开发去控制外围设备的集成电路(IC)。Periphe}

我要回帖

更多关于 stm32f103 内部eeprom 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信