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, 这个值怎么会是负值? 哪位知道怎么计算? |