欣欣菇凉_ 发表于 2019-9-19 10:14:12

STM32F4控制SRAM时的FMC时序问题

我用fmc控制外部sram,向sram中写数据的时序理论上是这样的

我用逻辑分析仪抓到的时序是这样的:其中数据总线宽度是8bit,写一个字节数据如下

写4个字节数据如下:

我的问题是:为什么数据线上的数据在片选以及写信号无效后还保持了这么久?大概1us左右,这种是正常的吗?

toofree 发表于 2019-9-19 12:20:12

异步读写时,数据线的信号必须保持一段时间,否则保持时间不够,数据不能成功锁住。但是这个时间比较一般比较短,大概是几十ns。
你的问题可能是,不操作总线时数据为什么会保持最后一次的数据那么长时间。
这个自己可以想像一下,既然不操作总线,那么总线为什么不能保持最后一次的数据?如果不保持,那么说明有指令把数据清零了,清零指令肯定会占用CPU周期,那么这个清零真的有必要吗?
一般总线不操作时,会把数据线置成三态。理想的三态是相当于悬空输入的,但实际上是会有个电压的,只是这个电压的驱动能力相当弱,有外部高电平时把它拉高,有低电平时就把它拉低。总线从正常的输出有效数据状态,切换到三态,到态稳定,这个时间也是有的。如果器件都是理想的COMS电路输入的话,没有电流,数据线上的寄生电容就可以维持原来的数据状态。

综上所述,你说的那个时间,很可能是数据有效状态到三态的切换,缓慢放电时间。

欣欣菇凉_ 发表于 2019-9-19 13:10:41

toofree 发表于 2019-9-19 12:20
异步读写时,数据线的信号必须保持一段时间,否则保持时间不够,数据不能成功锁住。但是这个时间比较一般比 ...

谢谢你的回答,我理解下。
页: [1]
查看完整版本: STM32F4控制SRAM时的FMC时序问题