打印

STM32的FSMC擦除K9F2G08时间测试

[复制链接]
3208|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
victoryang|  楼主 | 2011-7-26 09:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近我做了一个FSMC读写K9F2G08的程序,在测试擦除时间时遇到了一个问题,一直想不通,请高手释疑。
FSMC擦除K9F2G08一个block的时间只有136us!实在是太快了,而手册上给出的值是2ms左右。到目前为止测试程序擦除功能实现正常。
单片机STM32F103ZET6,自己做的板子,nandflash是K9F2G08。
驱动代码使用EMSTM3210E开发板nandflash示例编写。
沙发
IJK| | 2011-7-26 10:17 | 只看该作者
擦除K9F2G08一个block所花的时间,跟FSMC其实没多大关系,擦除时间主要取决于K9F2G08(或者其它NAND FLASH)自身,即使通过GPIO发出擦除指令并等待擦除结束,所花时间也差不多

使用特权

评论回复
板凳
yinyangdianzi| | 2011-7-26 10:19 | 只看该作者
研究研究

使用特权

评论回复
地板
victoryang|  楼主 | 2011-7-26 11:27 | 只看该作者
如2楼所说,如果没有太多关系的话,假设我擦除完一个block后,紧接着写它的一页,由于FSMC执行快,写操作会对擦除block有影响吗?这种时序上的协调(先擦除完block后,约2ms后,再写页)不会是FSMC完成的吧,还是nand自己的控制器完成的?
如果真是这样,那我们驱动程序执行就不需考虑nand自身的速度了吧,即不需要考虑那些写/擦除/读涉及的忙等待。可以这样理解吗?

使用特权

评论回复
5
victoryang|  楼主 | 2011-7-26 11:31 | 只看该作者
再做些补充:
FSMC擦除k9F2g08一个block用的100多us是指程序发出擦除指令到忙等待结束总共花费的时间。而我总觉得这个时间应该是2ms左右才差不多。

使用特权

评论回复
6
香水城| | 2011-7-26 11:33 | 只看该作者
擦除之后一定要通过状态位确认擦除芯片内部的操作结束,才能进行下一步的操作。

使用特权

评论回复
7
victoryang|  楼主 | 2011-7-27 12:05 | 只看该作者
最新测试:
用此驱动用于U盘,可以在给U盘拷入数据时,测block擦除,结果block擦除时间上升到960多微妙。

使用特权

评论回复
8
香水城| | 2011-7-27 12:10 | 只看该作者
要搞清楚手册中给出的数值是最小值、最大值还是典型值,如果这个2ms是最小值,那么你需要怀疑一下,如果是最大值或典型值,那么你的测试结果就是再正常不过了,不必大惊小怪。

一般这种参数都是最大值或典型值,给出最小值没有意义。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

48

帖子

0

粉丝