STM32对24C1024的读写速度问题

2019-03-23 18:38发布

       最近在做的一个小项目要求实现将AD采样数据保存至EEPROM中,要求是:8位AD,5k采样率(暂定,可能会更高),采10s,也就是50000 bytes的存储信息。这段时间研究了24C1024的手册,尝试了采用连续写来提高写入速度,但没有调出来。。。
       读出来的数据全都是0XFF,暂时也没有测出到底是没写进去还是没读出来,不过我怀疑是由于EEPROM写入时的延时不够导致的。因此想在此请教一下关于24C1024写入和读取的细节。
   页写.png
顺序读.png
       现在我的程序完全是按照手册上来的,但就是延时时间感觉出了问题。貌似看到有人说EEPROM每写入一个字节都要延时至少5ms?那这肯定不满足我这个设计要求了。。。顺便求解决方案(SD卡神马的行不)


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
Aragorn
1楼-- · 2019-03-24 02:57
/ 你需要注意以下几点:
1. 连续写入只能是按页来的,一次连续写一页,如果数据超出了一页了,超出的部分会从该页的开头重新开始写,而不会写入到下一页;
2. 每写一页后,做一个延时,手册上给的时间是5ms;
3. 调试的时候不要一下写入50000个数据,写入十来个,然后再读出来验证是否正确
Ageis
2楼-- · 2019-03-24 08:18
本帖最后由 Ageis 于 2015-4-16 20:01 编辑
Aragorn 发表于 2015-4-16 19:41
你需要注意以下几点:
1. 连续写入只能是按页来的,一次连续写一页,如果数据超出了一页了,超出的部分会从该页的开头重新开始写,而不会写入到下一页;
2. 每写一页后,做一个延时,手册上给的时间是5ms;
3. 调试的时候不要一下写入50000个数据,写入十来个,然后再读出来验证是否正确

我现在是这样实现的:首先,手册上写的24C1024分为512个page,每页256字节,我在程序中用了一个256项的数组作为缓冲,也就是每存满一次数组写一次EEPROM,在这写的过程中每个字节间没有延时,然后IIC发出停止信号,再延时5ms。连续读时没有任何延时。请问这样对吗?
谢谢帮助......
Ageis
3楼-- · 2019-03-24 12:30
 精彩回答 2  元偷偷看……
Aragorn
4楼-- · 2019-03-24 17:52
你的IIC接口是硬件的,还是软件模拟的?有可能是时序问题,我发一个文件给你参考吧,是LPC1114读写AT24C08用的,软件模拟IIC的。你参考一下看有没有用,文件见附件。 BSP_EEPROM.rar (1.34 KB, 下载次数: 19) 2015-4-16 21:55 上传 点击文件名下载附件

wgsxsm
5楼-- · 2019-03-24 20:23
为何不用FLASH ,那个速度很快的

一周热门 更多>