表 6-58 和表 6-59 展示了 GPMC 和 NOR 闪存的时序要求和开关特性 - 同步模式。
表 6-58 GPMC 和 NOR 闪存时序要求 - 同步模式 请参阅图 6-39、图 6-40 和图 6-43
| 编号 |
参数 |
说明 |
模式(4) |
最小值 |
最大值 |
最小值 |
最大值 |
单位 |
| 32 位数据总线(高达 100MHz)(1) |
16 位数据总线(高达 133MHz)(1) |
| F12 |
tsu(dV-clkH) |
建立时间,GPMC0_AD[n:0](1) 在 GPMC0_CLK 高电平之前有效 |
div_by_1_mode |
1.81 |
|
1.12 |
|
ns |
| not_div_by_1_mode |
1.06 |
|
3.5 |
|
ns |
| F13 |
th(clkH-dV) |
保持时间,GPMC0_AD[n:0](1) 在 GPMC0_CLK 高电平之后有效 |
div_by_1_mode |
2.29 |
|
2.29 |
|
ns |
| not_div_by_1_mode |
2.29 |
|
2.29 |
|
ns |
| F21 |
tsu(waitV-clkH) |
建立时间,GPMC0_WAIT[j](2)(3) 在 GPMC0_CLK 高电平之前有效 |
div_by_1_mode |
1.81 |
|
1.12 |
|
ns |
| not_div_by_1_mode |
1.06 |
|
3.5 |
|
ns |
| F22 |
th(clkH-waitV) |
保持时间,GPMC0_WAIT[j](2)(3) 在 GPMC0_CLK 高电平之后有效 |
div_by_1_mode |
2.29 |
|
2.29 |
|
ns |
| not_div_by_1_mode |
2.29 |
|
2.29 |
|
ns |
(1) 同步模式支持 32 位数据总线 (GPMC0_AD[31:0]),GPMC0_CLK 高达 100MHz,以及 GPMC0_CLK 高达 133MHz 的 16 位数据总线 (GPMC0_AD[15:0])。通过向 CTRLMMR_GPMC0_CLKSEL 寄存器写入值,选择为 GPMC0_CLK 提供时钟的 GPMC0_FCLK 时钟源:
- 133MHz:CLK_SEL = 0h - MAIN_PLL0_HSDIV3_CLKOUT(默认值)
- 100MHz: CLK_SEL = 1h - MAIN_PLL2_HSDIV3_CLKOUT
(2) 在 GPMC_WAIT[j] 中,j 等于 0 或 1。
(3) 等待监视支持仅限于 WaitMonitoringTime 值 > 0。有关等待监视功能的完整说明,请参阅器件 TRM 中的通用存储器控制器 (GPMC) 一节。
(4) 对于 div_by_1_mode:
- GPMC_CONFIG1_i 寄存器:GPMCFCLKDIVIDER = 0h:
- GPMC0_CLK 频率 = GPMC0_FCLK 频率
对于 not_div_by_1_mode:
- GPMC_CONFIG1_i 寄存器:GPMCFCLKDIVIDER = 1h 至 3h:
- GPMC0_CLK 频率 = GPMC0_FCLK 频率/(2 至 4)
表 6-59 GPMC 和 NOR 闪存开关特性 — 同步模式 请参阅图 6-39、图 6-40、图 6-41、图 6-42 和图 6-43
| 编号 |
参数 |
说明 |
最小值 |
最大值 |
单位 |
| F0 |
tc(clk) |
周期时间,GPMC0_CLK(16) |
7.52(1) |
|
ns |
| F1 |
tw(clkH) |
典型脉冲持续时间,GPMC0_CLK 高电平 |
0.475P(14) - 0.3 |
|
ns |
| F1 |
tw(clkL) |
典型脉冲持续时间,GPMC0_CLK 低电平 |
0.475P(14) - 0.3 |
|
ns |
| F2 |
td(clkH-csn[i]V) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_CSn[i](13) 转换 |
F(6) - 2.2 |
F(6) + 1.31 |
ns |
| F3 |
td(clkH-csn[i]IV) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_CSn[i](13) 无效 |
D(5) - 2.2 |
D(5) + 1.31 |
ns |
| F4 |
td(aV-clk) |
延迟时间,GPMC0_A[27:1] 有效至 GPMC0_CLK 第一个边沿 |
B(3) - 2.3 |
B(3) + 4.5 |
ns |
| F5 |
td(clkH-aIV) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_A[27:1] 有效 |
-2.3 |
4.5 |
ns |
| F6 |
td(be[x]nV-clk) |
延迟时间,GPMC0_BE0n_CLE、GPMC0_BE1n、GPMC0_BE2n、GPMC0_BE3n 有效至 GPMC0_CLK 第一个边沿 |
B(3) - 2.3 |
B(3) + 1.9 |
ns |
| F7 |
td(clkH-be[x]nIV) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_BE0n_CLE、GPMC0_BE1n、GPMC0_BE2n、GPMC0_BE3n 无效 |
D(5) - 2.3 |
D(5) + 1.9 |
ns |
| F8 |
td(clkH-advn) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_ADVn_ALE 转换 |
G(7) - 2.3 |
G(7) + 4.5 |
ns |
| F9 |
td(clkH-advnIV) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_ADVn_ALE 无效 |
D(5) - 2.3 |
D(5) + 4.5 |
ns |
| F10 |
td(clkH-oen) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_OEn_REn 转换 |
H(8) - 2.3 |
H(8) + 3.5 |
ns |
| F11 |
td(clkH-oenIV) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_OEn_REn 无效 |
D(5) - 2.3 |
D(5) + 3.5 |
ns |
| F14 |
td(clkH-wen) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_WEn 转换 |
I(9) - 2.3 |
I(9) + 4.5 |
ns |
| F15 |
td(clkH-do) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_AD[n:0](1) 转换(10) |
-2.3 |
2.7 |
ns |
| F15 |
td(clkL-do) |
延迟时间,GPMC0_CLK 下降沿到 GPMC0_AD[n:0](1) 转换(11) |
-2.3 |
2.7 |
ns |
| F15 |
td(clkL-do) |
延迟时间,GPMC0_CLK 下降沿到 GPMC0_AD[n:0](1) 转换(12) |
-2.3 |
2.7 |
ns |
| F17 |
td(clkH-be[x]n) |
延迟时间,GPMC0_CLK 上升沿到 GPMC0_BE0n_CLE、GPMC0_BE1n、GPMC0_BE2n、GPMC0_BE3n 转换(10) |
-2.3 |
1.9 |
ns |
| F17 |
td(clkL-be[x]n) |
延迟时间,GPMC0_CLK 下降沿到 GPMC0_BE0n_CLE、GPMC0_BE1n、GPMC0_BE2n、GPMC0_BE3n 转换(11) |
-2.3 |
1.9 |
ns |
| F17 |
td(clkL-be[x]n) |
延迟时间,GPMC0_CLK 下降沿到 GPMC0_BE0n_CLE、GPMC0_BE1n、GPMC0_BE2n、GPMC0_BE3n 转换(12) |
-2.3 |
1.9 |
ns |
| F18 |
tw(csnV) |
脉冲持续时间,GPMC0_CSn[i](13) 低电平 |
A(2) |
|
ns |
| F19 |
tw(be[x]nV) |
脉冲持续时间,GPMC0_BE0n_CLE、GPMC0_BE1n、GPMC0_BE2n、GPMC0_BE3n 低电平 |
C(4) |
|
ns |
| F20 |
tw(advnV) |
脉冲持续时间,GPMC0_ADVn_ALE 低电平 |
K(15) |
|
ns |
(1) 同步模式支持 32 位数据总线 (GPMC0_AD[31:0]),GPMC0_CLK 高达 100MHz,以及 GPMC0_CLK 高达 133MHz 的 16 位数据总线 (GPMC0_AD[15:0])。通过向 CTRLMMR_GPMC0_CLKSEL 寄存器写入值,选择为 GPMC0_CLK 提供时钟的 GPMC0_FCLK 时钟源:
- 133MHz:CLK_SEL = 0h - MAIN_PLL0_HSDIV3_CLKOUT(默认值)
- 100MHz:CLK_SEL = 1h - MAIN_PLL2_HSDIV3_CLKOUT
(2) 对于单次读取:A = (CSRdOffTime - CSOnTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) 对于突发读取:A = (CSRdOffTime - CSOnTime + (n - 1) × PageBurstAccessTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) 对于突发写入:A = (CSWrOffTime - CSOnTime + (n - 1) × PageBurstAccessTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) n 为页面突发访问次数。
(3) 地址总线/字节使能在周期开始时有效,GPMC0_CLK 激活时间可能在周期开始之后延迟
B = ClkActivationTime × GPMC0_FCLK
(14)
(4) 对于单次读取:C = RdCycleTime × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) 对于突发读取:C = (RdCycleTime + (n - 1) × PageBurstAccessTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) 对于突发写入:C = (WrCycleTime + (n - 1) × PageBurstAccessTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) n 为页面突发访问次数。
(5) 对于单次读取:D = (RdCycleTime - RdAccessTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) 对于单次写入:D = (WrCycleTime - WrAccessTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) 对于突发读取:D = (RdCycleTime - RdAccessTime + (n - 1) × PageBurstAccessTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) 对于突发写入:D = (WrCycleTime - WrAccessTime + (n - 1) × PageBurstAccessTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) n 为页面突发访问次数。
(6) 对于 CSn 下降沿(CS 激活):
- 如果 GPMCFCLKDIVIDER = 0:
- F = 0.5 × CSExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 CSOnTime 同为奇数)或(ClkActivationTime 和 CSOnTime 同为偶数),则 F = 0.5 × CSExtraDelay × GPMC0_FCLK(14)
- 否则 F = (1 + 0.5 × CSExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (CSOnTime - ClkActivationTime) 是 3 的倍数,则 F = 0.5 × CSExtraDelay × GPMC0_FCLK(14)
- 如果 (CSOnTime - ClkActivationTime - 1) 是 3 的倍数,则 F = (1 + 0.5 × CSExtraDelay) × GPMC0_FCLK(14)
- 如果 (CSOnTime - ClkActivationTime - 2) 是 3 的倍数,则 F = (2 + 0.5 × CSExtraDelay) × GPMC0_FCLK(14)
对于读取模式下的 CSn 上升沿(CS 停用):
- 如果 GPMCFCLKDIVIDER = 0:
- F = 0.5 × CSExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 CSRdOffTime 同为奇数)或(ClkActivationTime 和 CSRdOffTime 同为偶数),则 F = 0.5 × CSExtraDelay × GPMC0_FCLK(14)
- 否则 F = (1 + 0.5 × CSExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (CSRdOffTime - ClkActivationTime) 是 3 的倍数,则 F = 0.5 × CSExtraDelay × GPMC0_FCLK(14)
- 如果 (CSRdOffTime - ClkActivationTime - 1) 是 3 的倍数,则 F = (1 + 0.5 × CSExtraDelay) × GPMC0_FCLK(14)
- 如果 (CSRdOffTime - ClkActivationTime - 2) 是 3 的倍数,则 F = (2 + 0.5 × CSExtraDelay) × GPMC0_FCLK(14)
对于写入模式下的 CSn 上升沿(CS 停用):
- 如果 GPMCFCLKDIVIDER = 0:
- F = 0.5 × CSExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 CSWrOffTime 同为奇数)或(ClkActivationTime 和 CSWrOffTime 同为偶数),则 F = 0.5 × CSExtraDelay × GPMC0_FCLK(14)
- 否则 F = (1 + 0.5 × CSExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (CSWrOffTime - ClkActivationTime) 是 3 的倍数,则 F = 0.5 × CSExtraDelay × GPMC0_FCLK(14)
- 如果 (CSWrOffTime - ClkActivationTime - 1) 是 3 的倍数,则 F = (1 + 0.5 × CSExtraDelay) × GPMC0_FCLK(14)
- 如果 (CSWrOffTime - ClkActivationTime - 2) 是 3 的倍数,则 F = (2 + 0.5 × CSExtraDelay) × GPMC0_FCLK(14)
(7) 对于 ADV 下降沿(ADV 激活):
- 如果 GPMCFCLKDIVIDER = 0:
- G = 0.5 × ADVExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 ADVOnTime 同为奇数)或(ClkActivationTime 和 ADVOnTime 同为偶数),则 G = 0.5 × ADVExtraDelay × GPMC0_FCLK(14)
- 否则 G = (1 + 0.5 × ADVExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (ADVOnTime - ClkActivationTime) 是 3 的倍数,则 G = 0.5 × ADVExtraDelay × GPMC0_FCLK(14)
- 如果 (ADVOnTime - ClkActivationTime - 1) 是 3 的倍数,则 G = (1 + 0.5 × ADVExtraDelay) × GPMC0_FCLK(14)
- 如果 (ADVOnTime - ClkActivationTime - 2) 是 3 的倍数,则 G = (2 + 0.5 × ADVExtraDelay) × GPMC0_FCLK(14)
对于读取模式下的 ADV 上升沿(ADV 停用):
- 如果 GPMCFCLKDIVIDER = 0:
- G = 0.5 × ADVExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 ADVRdOffTime 同为奇数)或(ClkActivationTime 和 ADVRdOffTime 同为偶数),则 G = 0.5 × ADVExtraDelay × GPMC0_FCLK(14)
- 否则 G = (1 + 0.5 × ADVExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (ADVRdOffTime - ClkActivationTime) 是 3 的倍数,则 G = 0.5 × ADVExtraDelay × GPMC0_FCLK(14)
- 如果 (ADVRdOffTime - ClkActivationTime - 1) 是 3 的倍数,则 G = (1 + 0.5 × ADVExtraDelay) × GPMC0_FCLK(14)
- 如果 (ADVRdOffTime - ClkActivationTime - 2) 是 3 的倍数,则 G = (2 + 0.5 × ADVExtraDelay) × GPMC0_FCLK(14)
对于写入模式下的 ADV 上升沿(ADV 停用):
- 如果 GPMCFCLKDIVIDER = 0:
- G = 0.5 × ADVExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 ADVWrOffTime 同为奇数)或(ClkActivationTime 和 ADVWrOffTime 同为偶数),则 G = 0.5 × ADVExtraDelay × GPMC0_FCLK(14)
- 否则 G = (1 + 0.5 × ADVExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (ADVWrOffTime - ClkActivationTime) 是 3 的倍数,则 G = 0.5 × ADVExtraDelay × GPMC0_FCLK(14)
- 如果 (ADVWrOffTime - ClkActivationTime - 1) 是 3 的倍数,则 G = (1 + 0.5 × ADVExtraDelay) × GPMC0_FCLK(14)
- 如果 (ADVWrOffTime - ClkActivationTime - 2) 是 3 的倍数,则 G = (2 + 0.5 × ADVExtraDelay) × GPMC0_FCLK(14)
(8) 对于 OE 下降沿(OE 激活)和 IO DIR 上升沿(数据总线输入方向):
- 如果 GPMCFCLKDIVIDER = 0:
- H = 0.5 × OEExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 OEOnTime 同为奇数)或(ClkActivationTime 和 OEOnTime 同为偶数),则 H = 0.5 × OEExtraDelay × GPMC0_FCLK(14)
- 否则 H = (1 + 0.5 × OEExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (OEOnTime - ClkActivationTime) 是 3 的倍数,则 H = 0.5 × OEExtraDelay × GPMC0_FCLK(14)
- 如果 (OEOnTime - ClkActivationTime - 1) 是 3 的倍数,则 H = (1 + 0.5 × OEExtraDelay) × GPMC0_FCLK(14)
- 如果 (OEOnTime - ClkActivationTime - 2) 是 3 的倍数,则 H = (2 + 0.5 × OEExtraDelay) × GPMC0_FCLK(14)
对于 OE 上升沿(OE 停用):
- 如果 GPMCFCLKDIVIDER = 0:
- H = 0.5 × OEExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 OEOffTime 同为奇数)或(ClkActivationTime 和 OEOffTime 同为偶数),则 H = 0.5 × OEExtraDelay × GPMC0_FCLK(14)
- 否则 H = (1 + 0.5 × OEExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (OEOffTime - ClkActivationTime) 是 3 的倍数,则 H = 0.5 × OEExtraDelay × GPMC0_FCLK(14)
- 如果 (OEOffTime - ClkActivationTime - 1) 是 3 的倍数,则 H = (1 + 0.5 × OEExtraDelay) × GPMC0_FCLK(14)
- 如果 (OEOffTime - ClkActivationTime - 2) 是 3 的倍数,则 H = (2 + 0.5 × OEExtraDelay) × GPMC0_FCLK(14)
(9) 对于 WE 下降沿(WE 激活):
- 如果 GPMCFCLKDIVIDER = 0:
- I = 0.5 × WEExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 WEOnTime 同为奇数)或(ClkActivationTime 和 WEOnTime 同为偶数),则 I = 0.5 × WEExtraDelay × GPMC0_FCLK(14)
- 否则 I = (1 + 0.5 × WEExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (WEOnTime - ClkActivationTime) 是 3 的倍数,则 I = 0.5 × WEExtraDelay × GPMC0_FCLK(14)
- 如果 (WEOnTime - ClkActivationTime - 1) 是 3 的倍数,则 I = (1 + 0.5 × WEExtraDelay) × GPMC0_FCLK(14)
- 如果 (WEOnTime - ClkActivationTime - 2) 是 3 的倍数,则 I = (2 + 0.5 × WEExtraDelay) × GPMC0_FCLK(14)
对于 WE 上升沿(WE 停用):
- 如果 GPMCFCLKDIVIDER = 0:
- I = 0.5 × WEExtraDelay × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 1:
- 如果(ClkActivationTime 和 WEOffTime 同为奇数)或(ClkActivationTime 和 WEOffTime 同为偶数),则 I = 0.5 × WEExtraDelay × GPMC0_FCLK(14)
- 否则 I = (1 + 0.5 × WEExtraDelay) × GPMC0_FCLK(14)
- 如果 GPMCFCLKDIVIDER = 2:
- 如果 (WEOffTime - ClkActivationTime) 是 3 的倍数,则 I = 0.5 × WEExtraDelay × GPMC0_FCLK(14)
- 如果 (WEOffTime - ClkActivationTime - 1) 是 3 的倍数,则 I = (1 + 0.5 × WEExtraDelay) × GPMC0_FCLK(14)
- 如果 (WEOffTime - ClkActivationTime - 2) 是 3 的倍数,则 I = (2 + 0.5 × WEExtraDelay) × GPMC0_FCLK(14)
(10) GPMC0_CLK 处于 div_by_1_mode 时
(17),仅第一次传输:数据和字节使能信号在 GPMC0_CLK 的上升沿发生转换
- 非多路复用模式:数据在周期开始时转换
- 多路复用模式:数据在 WRDATAONADMUXBUS × (TimeParaGranularity + 1) × GPMC0_FCLK 时刻发生转换(14)
(11) 在 GPMC0_CLK 处于 div_by_1_mode
(17) 时,初始传输后的所有数据和字节使能信号:数据和字节使能信号在 GPMC0_CLK 的下降沿(GPMC0_CLK 的半个周期)发生转换
(12) 在 GPMC0_CLK 处于 not_div_by_1_mode
(17)(GPMC0_CLK 由 GPMC0_FCLK 分频得到)时:所有数据和字节使能信号在 GPMC0_CLK 的下降沿(GPMC0_CLK 的半个周期)发生转换。必须配置 ClkActivationTime、GPMCFCLKDIVIDER、RDACCESSTIME/WRACCESSTIME 和 PAGEBURSTACCESSTIME,以强制数据和字节使能信号在 GPMC0_CLK 的下降沿发生转换(从而在 GPMC0_CLK 上升沿被锁存)
(13) 在 GPMC0_CSn[i] 中,i 等于 0、1、2 或 3。
(14) P = GPMC0_CLK 的周期期间(以 ns 为单位)
(15) 对于读取:K = (ADVRdOffTime - ADVOnTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14) 对于写入: K = (ADVWrOffTime - ADVOnTime) × (TimeParaGranularity + 1) × GPMC0_FCLK
(14)
(16) 与 GPMC0_CLK 输出时钟相关的最大和最小频率可在 GPMC 模块中通过设置 GPMC0_CONFIG1_i 配置寄存器位字段 GPMCFCLKDIVIDER 进行编程。
(17) 对于 div_by_1_mode:
- GPMC_CONFIG1_i 寄存器:GPMCFCLKDIVIDER = 0h:
- GPMC0_CLK 频率 = GPMC0_FCLK 频率
对于 not_div_by_1_mode:
- GPMC_CONFIG1_i 寄存器:GPMCFCLKDIVIDER = 1h 至 3h:
- GPMC0_CLK 频率 = GPMC0_FCLK 频率/(2 至 4)