基本情况说明:
nandflash是samsong的K9F2G08U0B,
STM32F103ZET6,72MHz
FSMC时序基本设置如下,SETUP time = 0, WAIT time = 3, HOLD time = 1,HIZ time = 1.
其余设置同STM32F103ZET6开发板例程。
问题:
我用FSMC读写nandflash实现了U盘功能,现在发现存入和读出文件的数据不一致。有不少位错误。已经排除是坏块。而单独测试这些位错误的块,读写正常。
我怀疑我的FSMC时序配置应该还存在问题,尽管我参照了ST的手册AN2784。
问题是我用示波器捕捉的数据信号和WE信号和我的时序设置不一致。
请看下图。图中1道波形是数据信号D4,2道波形是CS,3道波形是WE。
图1 WE信号周期
问题是WE信号周期不是方波,而且周期偏大,和我设置的不一致。
图2 WE信号低电平时间
问题:如果认为WE信号的低电平时间和我设置的还接近的话(13.8*(3+1)),那高电平部分解释不通。
图3 通道1波形不规则
问题: 通道1波形应该只有高低信号,怎么会产生中间态,我感觉像是高阻态。我选中的时间应该是HOLD时间吧。但HOLD时间应该是1+1=2HCLK啊,时间不太对,而且高阻态的时间很长,约113ns,不像是我设置的值。
这些问题请解高手答一下,谢谢。 |