STM32的FSMC时序解析

以下针对目前项目所用到的SRAM时序进行分析,同时也对SRAM应用在STM32F4上进行详细解说。以此也可以类推出NAND/PSRAM等时序的应用技巧。

时序

当前用到的是模式A,其中读时序如下。
ModeA read accesses

图片截于STM32F4205/7应用手册,从图中可以看出这个模式用于SRAM和PSRAM,PSRAM也叫做伪静态随机存储器, CRAM全称是 Cellular RAM 。

图中有OE togging二字,如字面意思,这个模式的读处理是有OE引脚电平触发参与的。我们可以与Mode1进行比较。
Mode1 read accesses
由上图可以看出,NOE这一项电平变化有不同。在ModeA中,NOE电平由高边第标志着DATAST这一时钟循环开始,而在Mode1中NOE在进入DATAST时段时并没有变化。

由此我们又引出了一个问题,ADDSET和DATAST这两个时段到底有什么作用?

这时我们需要善于观察,从应用手册上找出了这样一张表:
FSMC_BTRx-bit-fields
从表头可以看出,这是一个寄存器的位图,0-3bit对应着ADDSRT。

上面说:读取的第一个阶段(ADDSET HCLK周期)的持续时间。ADDSET的最小值为0。

从上面的话我们可以猜出, ADDSET 时钟周期是读操作的第一个阶段,这个位用于设置的是这个阶段的时间长度。

我们还可以看出,DATASET 时钟周期是读操作的第二阶段。8-15位用于设置这个时间长度。

到这里,我们就已经掌握了FSMC配置的关键信息。但我们还不知道这些内容是如何应用在SRAM上。但不着急,我们还得要一步步来。

SRAM的应用

62WV51216BLL 读时序

如果我们要读某段地址上的数据,我们首先要让SRAM知道我们要读内容的位置,所以在读操作之前,我们需要进行写操作。我们先看SRAM的读时序,我用的芯片是62WV51216BLL。这款芯片的读时序有两种,由于第一种与当前模式A不兼容,所以我们直接看第二种。由于芯片并没有CS2引脚,所以我们直接忽略CS2。
READ-CYCLE
我们从上图可以收集到的相关信息:

  • CS1电平变低地址写入便开始生效。这个和FSMC中的NEx时序一致。
  • WE写使能引脚在读操作中为高电平。这个和FSMC中NWE时序一致。
  • 如果芯片在继续选择状态下,即连续读操作,OE和CS1为低电平,UB或LB为低电平;WE为高电平。这个和FSMC ModeA读时序不矛盾。

FSMC配置参数

FSMC配置参数我们已知了一个,就是我们用的是ModeA。然后我们由 62WV51216BLL 读时序图可以找到ADDSET和DATAST所需的时钟循环次数。

ADDSET对应的参数是tAA,我们可以在datasheet中找到,tAA取值范围最大为55ns,我画的板子用的MCU是STM32F407,时钟频率为168MHz。也就是说1个HCLK循环用的时间是5.952380952380952ns。

也就是说如果FSMC_AddressSetupTime取10,ADDSET时间长度则约为59.52ns,这个就超出了55ns的限制,所以我们就取1意思一下,其实也可以取0。

FSMC_AddressSetupTime = 1

DATAST对应的参数是( tRC-tAA ),也就是说DATAST>55ns,即:

FSMC_DataSetupTime = 9

62WV51216BLL 写时序

我们来看ModeA的写时序:
ModeA-write-accesses
这个图没什么难度,和之前的读时序差不多。

62WV51216BLL 的写时序有4种,我们忽略掉和ModeA不兼容的时序,然后选出兼容的那种分析。
WRITE-CYCLE
从图中可以看出,当进行写操作时,OE电平会被拉高。片选信号CS1电平拉低的时间周期最小为45ns,这个与ModeA时序相兼容,因为在ModeA写时序中,NEx在整段写时序中都为低电平。

ADDSET对应的是tSA,即片选信号拉低到WE信号拉低间的间隔,跟据datasheet所要求的,最小时间间隔为0。

DATAST对应的是tPWE,即WE的脉冲宽度,跟据datasheet的表述,取值为最小40ns。跟据FSMC时序图所建议的,第二阶段时间间隔取(DATAST+1),即:(40 + 5.95 )ns。也就是说第二阶段最小取值为45.95ns。

综上所述,在ModeA中,读写时序的两个阶段的参数可以是相同的,即:

  • FSMC_AddressSetupTime = 1
  • FSMC_DataSetupTime = 9

开源代码:
SRAM_NAND-STM32F4xx

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值