ST官方资料上给出了计算FSMC 各个时序参数的计算公式,我用以下公式计算好象不正确,望高手指点指点,万分感谢!!!!
HCLK 内部AHB时钟频率 72 MHz
tsu(Data_NE) + tv(A_NE) 数据至FSMC_NEx高的建立时间 + FSMC_NEx低至FSMC_A有效 36 ns
读/写访问时间 = ((SET + 1) + (WAIT + 1) + (HOLD + 1)) × HCLK
读/写使能信号低至高时间 = (WAIT + 1) × HCLK
片选建立时间 – 数据建立时间 = HiZ × HCLK
片选低至写使能高时间 = ((SET + 1) + (WAIT + 1)) × HCLK
为了保证正确地配置FSMC的时序,下述因素应加以考虑:
● 最大读/写访问时间
● FSMC内部各部分的延迟
● 存储器内部各部分的延迟
因此,我们得到下述公式:
(WAIT + 1) × HCLK = max (tWP, tRP)
((SET + 1) + (WAIT + 1)) × HCLK = max (tCS, tALS, tCLS)
HOLD = max (tCH, tALH, tCLH)/HCLK
还需要满足下述公式的验证:
((SET + 1) + (WAIT + 1) + (HOLD + 1)) × HCLK = max (tRC, tWC)
HiZ = (max (tCS, tALS, tCLS) – tDS)/HCLK) – 1
考虑FSMC和存储器内部各部分的延迟,这些公式变为如下形式:
● WAIT需要满足:
(WAIT+1+ SET + 1) = ((tCEA + tsu(Data_NE) + tv(A_NE))/HCLK)
WAIT = ((tCEA + tsu(Data_NE) + tv(A_NE))/HCLK) – SET – 2
● SET需要满足
(SET + 1) = max ((tCS, tALS, tCLS) – max (tWP, tRP))/HCLK – 1
SET = (max (tCS, tALS, tCLS) – max (tWP, tRP))/HCLK – 1
下表列出了NAND存储器各项参数的意义和时序
NAND闪存存储器时序
符号 参数 数值 单位
tCEA 片选低至输出有效 35 ns
tWP 写使能低至写使能高 15 ns
tRP 写使能低至写使能高 15 ns
tCS 片选低至写使能高 20 ns
tALS AL建立时间 15 ns
tCLS CL建立时间 15 ns
tCH E保持时间 5 ns
tALH AL保持时间 5 ns
tCLH CL保持时间 5 ns
使用上述公式、存储器时序(表6)和
STM32F10xxx参数(表2),我们得到:
● 地址建立时间:0x1
● 地址保持时间:0x3
● 数据建立时间:0x2
● 数据总线高阻时间:0x2
HCLK频率时72MHZ,那么HCLK 的取值位1/(72M)=14NS,20为max (tCS, tALS, tCLS),15为max (tWP, tRP),
按照上面的公式,SET = (max (tCS, tALS, tCLS) – max (tWP, tRP))/HCLK – 1
SET等于(20-15)/ 14-1, 这个值怎么会是负值? 哪位知道怎么计算?
使用大容量STM32F10XX的FSMC驱动外部的存储器
根据AN2784,P24, SET需要满足如下条件:
(SET + 1) x tHCLK >= max (tCS, tCLS, tALS, tCLR, tAR) - tWP,请注意这个是个不等式,即左式的值必须“大于等于”右式的值,右式的值根据nand flash specific,为5,
tHCLK为14ns, 又根据RM008中Table 129. Programmable NAND/PC Card access parameters,Memory setup time的取值范围为1到256,因此SET取1即可就能是上述不等式成立,
(1+1)*14 = 28, 28 > 5。
一周热门 更多>