STM32F1系列读写自身FLASH快还是读写I2C总线上的EEPROM快?
本帖最后由 奏奏奏 于 2018-6-5 21:34 编辑例如我要读取一个数据表格,
长度为800字节,
我要选择存在STM32自身的FLAH还是EEPROM上,
想问试过的伙伴哪个读写更快?
本帖最后由 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毫秒多。
毫无疑问,Flash 都差不多,因为不管是flash还是eeprom,写一页都需要5ms或者10ms时间等待。。。当然了,flash有一个好处,就是有的一页是1k或者2k,那么只需要一次就写完,问题来了,这时候占用的ram也是比较大的!!!而eeprom有8,16等等,需要的ram少,但是需要写入的次数多。。。所以选择什么,自己更具实际情况来就好了!!! 读肯定是自身的flash快啊,外部IIC太慢了。 MrJiu 发表于 2018-6-5 09:48
都差不多,因为不管是flash还是eeprom,写一页都需要5ms或者10ms时间等待。。。当然了,flash有一个好处, ...
他说的是外部I2C的E2PROM 应该是内部的快,外部串行总线的话,速度还是受限制的 す疯Ⅱ恒す 发表于 2018-6-5 09:50
他说的是外部I2C的E2PROM
我这里就是包括了外部的eeprom。。。我说的时间并不是指写入时间,而是写入完后,需要等待的时候,无法连续写入的。。。至于I2C的速度相对于等待时间来说,小意思啦!!! 应该是内部FLASH更快,不过具体到项目中就要考虑很多了,真的有必要为了快那么多选择消耗芯片擦写次数吗?等等。。。
页:
[1]