奏奏奏 发表于 2018-6-5 09:39:33

STM32F1系列读写自身FLASH快还是读写I2C总线上的EEPROM快?

本帖最后由 奏奏奏 于 2018-6-5 21:34 编辑

例如我要读取一个数据表格,
长度为800字节,
我要选择存在STM32自身的FLAH还是EEPROM上,
想问试过的伙伴哪个读写更快?

toofree 发表于 2018-6-5 15:02:43

本帖最后由 toofree 于 2018-6-5 15:06 编辑

因为楼主要读取一个数据表格,因此这里只分析读取的,不管写入的。

必须是内部Flash快呀。
用内部Flash的话,800个字节,顶多跨一页,如果你存的合适的话,都不用跨页,一把连续读回来。读flash是用的ICODE指令,尽管中间可能会需要插入适当等待,SYSCLK时钟慢的时候是不需要等待的,读一个字节,那都是小于us级的。读800个字节,也许都不会超过1ms。




外部EEPROM慢。来个比较快的EEPROM AT24CM01,最快1M的时钟。每页256字节,800字节,需要跨3页,也就是中间至少需要两次停止。一次停止到下一次开始,需要最大5ms间隔,不算出地址和读命令,仅传输数据至少需要用时800*8*(1/1Mhz)=6.4ms,也就是一共需要16毫秒多。






Inc_brza 发表于 2018-6-5 09:48:05

毫无疑问,Flash

MrJiu 发表于 2018-6-5 09:48:32

都差不多,因为不管是flash还是eeprom,写一页都需要5ms或者10ms时间等待。。。当然了,flash有一个好处,就是有的一页是1k或者2k,那么只需要一次就写完,问题来了,这时候占用的ram也是比较大的!!!而eeprom有8,16等等,需要的ram少,但是需要写入的次数多。。。所以选择什么,自己更具实际情况来就好了!!!

す疯Ⅱ恒す 发表于 2018-6-5 09:49:18

读肯定是自身的flash快啊,外部IIC太慢了。

す疯Ⅱ恒す 发表于 2018-6-5 09:50:14

MrJiu 发表于 2018-6-5 09:48
都差不多,因为不管是flash还是eeprom,写一页都需要5ms或者10ms时间等待。。。当然了,flash有一个好处, ...

他说的是外部I2C的E2PROM

wudianjun2001 发表于 2018-6-5 10:09:43

应该是内部的快,外部串行总线的话,速度还是受限制的

MrJiu 发表于 2018-6-5 11:31:36

す疯Ⅱ恒す 发表于 2018-6-5 09:50
他说的是外部I2C的E2PROM

我这里就是包括了外部的eeprom。。。我说的时间并不是指写入时间,而是写入完后,需要等待的时候,无法连续写入的。。。至于I2C的速度相对于等待时间来说,小意思啦!!!

电子星辰 发表于 2018-6-5 11:33:16

应该是内部FLASH更快,不过具体到项目中就要考虑很多了,真的有必要为了快那么多选择消耗芯片擦写次数吗?等等。。。
页: [1]
查看完整版本: STM32F1系列读写自身FLASH快还是读写I2C总线上的EEPROM快?