GMC
1. 简介
通用存储器控制器 (GMC) 包含两类存储器控制器:
NOR/PSRAM 存储器控制器
同步 DRAM (SDRAM/移动 LPSDR SDRAM) 控制器
2. 主要特性
GMC 功能块与以下设备接口:同步和异步静态存储器、SDRAM 存储器。其主要目的是:
将总线事务转换为适当的外部设备协议
满足外部存储器设备的访问时间要求
所有外部存储器与控制器共享地址、数据和控制信号。每个外部设备通过唯一的片选信号进行访问。GMC 一次仅对一个外部设备执行访问。
GMC 控制器的主要特性如下:
与静态存储器映射设备接口,包括:
静态随机存取存储器 (SRAM)
NOR Flash 存储器 / OneNAND Flash 存储器
PSRAM (4 个存储体)
与同步 DRAM (SDRAM/移动 LPSDR SDRAM) 存储器接口
支持突发模式,以更快地访问同步设备,如 NOR Flash 存储器、PSRAM 和 SDRAM
可编程的连续时钟输出,用于异步和同步访问
8位、16位或32位宽数据总线
每个存储体独立的片选控制
3. 功能描述
GMC 由以下主要模块组成:
NOR Flash/PSRAM/SRAM 控制器。
SDRAM 控制器。
ICB 接口。
模块框图如图所示:
图 3.1: GMC 模块框图
ICB 接口
ICB 从接口允许内部 CPU 和其他总线主设备外设访问外部存储器。 ICB 事务被转换为外部设备协议。由于 ICB 数据总线为 32 位宽,ICB 事务可能会根据数据访问大小拆分为几个连续的 16 位或 8 位访问。GMC 片选信号 (GMC_NEx) 在连续访问之间不会切换。 当满足以下条件之一时,GMC 会产生 ICB 从设备错误:
读取或写入未启用的 GMC 存储体(Bank 1 到 4)。
在 GMC_BCRx 寄存器中的 FACCEN 位被复位时,读取或写入 NOR Flash 存储体。
写入写保护的 SDRAM 存储体(SDRAM_SDCRx 寄存器中设置了 WE 位)。
违反 SDRAM 地址范围(访问保留地址范围)。
在 SDRAM 存储体尚未初始化时尝试进行读/写访问。
支持的存储器与事务
请求的 ICB 事务数据大小可以是 8 位、16 位或 32 位宽,而访问的外部设备具有固定的数据宽度。ICB 事务大小取决于存储器区域的 MPU 属性。这可能导致不一致的传输。 因此,可以根据 ICB 事务大小与存储器数据大小的关系遵循一些简单的事务规则:
ICB 事务大小和存储器数据大小相等,以防止问题发生。
ICB 事务大小大于存储器数据大小:在这种情况下,GMC 将 ICB 事务拆分为更小的连续存储器访问,以满足外部数据宽度。
ICB 事务大小小于存储器数据大小。
传输是否一致取决于外部设备的类型:
访问具有字节选择功能的设备(SRAM、ROM、PSRAM、SDRAM):在这种情况下,GMC 允许读/写事务,并通过其 NBL[3:0] 字节通道访问正确的数据。要写入的字节由 NBL[3:0] 寻址。所有存储器字节都被读取(读事务期间 NBL[3:0] 被驱动为低电平),无用的字节被丢弃。
访问没有字节选择功能的设备(NOR Flash 存储器):当向 16 位宽的 Flash 存储器请求字节访问时会发生这种情况。由于设备无法以字节模式访问(只能从 Flash 存储器读/写 16 位字),因此不允许写事务,而允许读事务(控制器读取整个 16 位存储器字,仅使用所需的字节)。
外部设备地址映射
从 GMC 的角度来看,外部存储器被划分为固定大小的存储体,每个存储体为 256 M字节(参见图3.2 GMC 存储体(默认映射):
图 3.2: GMC 存储体(默认映射)
ADDR[29:28] 位用于选择 SDRAM 和 NOR/PSRAM 之一,如表3.1 SDRAM 和 NOR/PSRAM 选择所示
ADDR[29:28] |
选中的存储体 |
|---|---|
00 |
SDRAM Bank 0 |
01 |
SDRAM Bank 1 |
10 |
NOR/PSRAM |
11 |
非法,将响应错误 |
NOR/PSRAM 地址映射
ADDR[27:26] 位用于选择四个存储体之一,如表3.2 NOR/PSRAM 存储体选择所示
ADDR[27:26] |
选中的存储体 |
|---|---|
00 |
NOR/PSRAM Bank 0 |
01 |
NOR/PSRAM Bank 1 |
10 |
NOR/PSRAM Bank 2 |
11 |
NOR/PSRAM Bank 3 |
ADDR 是内部地址线,会被转换为外部存储器地址。 ADDR[25:0] 位包含外部存储器地址。由于 ADDR 为字节地址,而存储器以字为单位进行寻址,实际输出到存储器的地址会根据存储器的数据宽度而变化,如表3.3 NOR/PSRAM 外部存储器地址所示。
存储器位宽 |
发给存储器的数据地址 |
最大存储器容量(比特) |
|---|---|---|
8-bit |
ADDR[25:0] |
64Mbytesx8 = 512Mbit |
16-bit |
ADDR[25:0] >> 1 |
64Mbytes/2x16 = 512Mbit |
32-bit |
ADDR[25:0] >> 2 |
64Mbytes/4x32 = 512Mbit |
在外部存储器宽度为16位的情况下,GMC将在内部使用ADDR[25:1]来生成地址。对于外部存储器,输出地址为GMC_ADDR[24:0]。在外部存储器宽度为32位的情况下,GMC将在内部使用ADDR[25:2]来生成外部地址。不论外部存储器宽度如何,GMC_ADDR[0]都应连接到外部存储器地址ADDR[0]。
SDRAM 地址映射
表3.4 SDRAM 地址映射采用13位行地址和11位列地址配置的SDRAM地址映射。
存储器位宽 |
内部bank |
行地址 |
列地址 |
最大存储器容量 |
|---|---|---|---|---|
8-bit |
ADDR[25:24] |
ADDR[23:11] |
ADDR[10:0] |
64MB |
16-bit |
ADDR[26:25] |
ADDR[24:12] |
ADDR[11:1] |
128MB |
32-bit |
ADDR[27:26] |
ADDR[25:13] |
ADDR[12:2] |
256MB |
NOR Flash/PSRAM 控制器
GMC 生成适当的信号时序以驱动以下类型的存储器:
异步 SRAM 和 ROM
8 位
16 位
32位
PSRAM (Cellular RAM)
异步模式
用于同步访问的突发模式,具有可配置选项,可在跨 CRAM 1.5 的边界页时拆分突发访问
复用或非复用
NOR Flash 存储器
异步模式
用于同步访问的突发模式
复用或非复用
GMC 每个存储体输出一个唯一的片选信号 NE[3:0]。所有其他信号(地址、数据和控制)是共享的。 GMC 通过可编程时序支持多种设备,包括:
可编程等待状态(最多 15 个)
可编程总线周转周期(最多 15 个)
可编程输出使能和写使能延迟(最多 15 个)
独立的读写时序和协议,以支持最广泛的存储器和时序
可编程连续时钟 (gmc_npc_clk) 输出。
GMC 输出时钟 (gmc_npc_clk) 是总线时钟 (bus_clk) 的分频。根据 GMC_BCR0 寄存器中 CCLKEN 位的配置,它可以在仅同步访问期间或在异步和同步访问期间提供给选定的外部设备:
如果 CCLKEN 位复位,GMC 仅在同步访问(读/写事务)期间生成时钟 (gmc_npc_clk)。
如果 CCLKEN 位置位,GMC 在异步和同步访问期间生成连续时钟。要生成 gmc_npc_clk 连续时钟,Bank 1 必须配置为同步模式。由于所有同步存储器使用同一时钟,当生成连续输出时钟并执行同步访问时,总线数据大小必须与存储器数据宽度 (MWID) 相同,否则 gmc_npc_clk 频率将根据总线数据事务而变化。
每个存储体的大小固定为 64 M字节。每个存储体通过专用寄存器配置。 可编程存储器参数包括访问时间(参见表 3.5)和对等待管理的支持(对于以突发模式访问的 PSRAM 和 NOR Flash 存储器)。
参数 |
功能 |
访问模式 |
单位 |
最小值 |
最大值 |
|---|---|---|---|---|---|
地址建立 |
地址建立阶段的持续时间 |
异步 |
GMC 时钟周期 (bus_clk) |
1 |
15 |
地址保持 |
地址保持阶段的持续时间 |
异步, 复用 I/O |
GMC 时钟周期 (bus_clk) |
1 |
15 |
数据建立预置 |
数据预建立阶段的持续时间 |
异步 |
GMC 时钟周期 (bus_clk) |
2 |
255 |
数据建立 |
数据建立阶段的持续时间 |
异步 |
GMC 时钟周期 (bus_clk) |
2 |
255 |
总线周转 |
总线周转阶段的持续时间 |
异步和同步读 |
GMC 时钟周期 (bus_clk) |
1 |
15 |
时钟分频比 |
构建一个存储器时钟周期 (gmc_npc_clk) 所需的 GMC 时钟周期 (bus_clk) 数 |
同步 |
GMC 时钟周期 (bus_clk) |
1 |
15 |
数据延迟 |
在突发第一个数据之前发送给存储器的时钟周期数 |
同步 |
gmc_npc_clk 时钟周期 |
2 |
15 |
NWE 之后时间 |
NWE 拉高后,NE 有效的持续时间 |
异步 |
GMC 时钟周期 (bus_clk) |
1 |
3 |
外部存储器接口信号
表 3.6、3.7、3.8 和 3.9 列出了通常用于与 NOR Flash 存储器、SRAM 和 PSRAM 接口的信号。
注意: 前缀 “N” 标识低电平有效的信号。
GMC 信号 |
方向 |
宽度 |
描述 |
|---|---|---|---|
GMC_NPC_CLK |
输出 |
1 |
时钟(用于同步访问) |
GMC_NPC_ADDR[25:0] |
输出 |
26 |
地址总线 |
GMC_NPC_DATA[31:0] |
输入/输出 |
32 |
双向数据总线 |
GMC_NPC_NE |
输出 |
4 |
片选 |
GMC_NPC_NOE |
输出 |
1 |
读使能 |
GMC_NPC_NWE |
输出 |
1 |
写使能 |
GMC_NPC_NADV |
输出 |
1 |
地址有效 |
GMC_NPC_NWAIT |
输入 |
1 |
NOR Flash 等待输入信号到 GMC |
最大容量为 512 Mbits(26 条地址线)。
GMC 信号 |
方向 |
宽度 |
描述 |
|---|---|---|---|
GMC_NPC_CLK |
输出 |
1 |
时钟(用于同步访问) |
GMC_NPC_ADDR[9:0] |
输出 |
10 |
地址总线 bit0-bit9 是地址 MSB |
GMC_NPC_DATA[15:0] |
输入/输出 |
16 |
16 位复用双向地址/数据总线(16 位地址[15:0] 和数据 Data[15:0] 在数据总线上复用) |
GMC_NPC_NE |
输出 |
4 |
片选 |
GMC_NPC_NOE |
输出 |
1 |
读使能 |
GMC_NPC_NWE |
输出 |
1 |
写使能 |
GMC_NPC_NADV |
输出 |
1 |
地址有效 |
GMC_NPC_NWAIT |
输入 |
1 |
NOR Flash 等待输入信号到 GMC |
最大容量为 512 Mbits(26 条地址线)。
GMC 信号 |
方向 |
宽度 |
描述 |
|---|---|---|---|
GMC_NPC_CLK |
输出 |
1 |
时钟(用于同步访问) |
GMC_NPC_ADDR[25:0] |
输出 |
26 |
地址总线 |
GMC_NPC_DATA[31:0] |
输入/输出 |
32 |
双向数据总线 |
GMC_NPC_NE |
输出 |
4 |
片选 |
GMC_NPC_NOE |
输出 |
1 |
读使能 |
GMC_NPC_NWE |
输出 |
1 |
写使能 |
GMC_NPC_NADV |
输出 |
1 |
地址有效 |
GMC_NPC_NWAIT |
输入 |
1 |
PSRAM 等待输入信号到 GMC |
GMC_NPC_NBL |
输出 |
4 |
字节通道输出。Byte 0 到 Byte 3 控制(高位和低位字节使能) |
最大容量为 512 Mbits(26 条地址线)。
GMC 信号 |
方向 |
宽度 |
描述 |
|---|---|---|---|
GMC_NPC_CLK |
输出 |
1 |
时钟(用于同步访问) |
GMC_NPC_ADDR[9:0] |
输出 |
10 |
地址总线 |
GMC_NPC_DATA[15:0] |
输入/输出 |
16 |
16 位复用双向地址/数据总线 |
GMC_NPC_NE |
输出 |
4 |
片选 |
GMC_NPC_NOE |
输出 |
1 |
读使能 |
GMC_NPC_NWE |
输出 |
1 |
写使能 |
GMC_NPC_NADV |
输出 |
1 |
地址有效 |
GMC_NPC_NWAIT |
输入 |
1 |
PSRAM 等待输入信号到 GMC |
GMC_NPC_NBL |
输出 |
2 |
字节通道输出。Byte 0 到 Byte 1 控制(高位和低位字节使能) |
最大容量为 512 Mbits(26 条地址线)。
NOR Flash/PSRAM 控制器异步事务
对静态存储器(NOR Flash 存储器、PSRAM、SRAM)的异步事务执行如下:
信号由内部时钟同步。此时钟不发送到存储器。
GMC 总是在取消断言片选信号之前采样数据。这保证了满足存储器数据保持时序约束(片选使能高电平到数据转换的最小时间通常为 0 ns)
模式 1 - SRAM/PSRAM (CRAM)
图3.3 和图3.4 分别显示了受支持模式的读写事务波形,表3.10、3.11、3.12和3.13 列出了 GMC_BCRx、GMC_BTRx、GMC_BTRPREx 和 GMC_BTO 寄存器所需的配置。
图 3.3: 模式 1 读访问波形
图 3.4: 模式 1 写访问波形
写事务结束时的总线时钟周期有助于保证 NWE 上升沿后的地址和数据保持时间。由于存在此总线时钟周期,DATAST 值必须大于零 (DATAST > 0)。
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31 |
GMCEN |
0x1 |
30 |
Reserved |
0x0 |
23:22 |
BMAP |
根据需要 |
21 |
Reserved |
0x0 |
20 |
CCLKEN |
0x0 |
19 |
CBURSTRW |
0x0(在异步模式下无效) |
18:16 |
CPSIZE |
0x0(在异步模式下无效) |
15 |
ASYNCWAIT |
如果存储器支持此功能则置 1。否则保持为 0 |
14 |
EXTMOD |
0x0 |
13 |
WAITEN |
0x0(在异步模式下无效) |
12 |
WREN |
根据需要 |
11 |
WAITCFG |
无关 |
9 |
WAITPOL |
仅在位 15 ASYNCWAIT 为 1 时有意义 |
8 |
BURSTEN |
0x0 |
7 |
MODEEXMC |
0x0 |
6 |
FACCEN |
无关 |
5:4 |
MWID |
根据需要 |
3:2 |
MTYP |
根据需要,排除 0x2 (NOR Flash 存储器) |
1 |
MUXEN |
0x0 |
0 |
MBKEN |
0x1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
EARLYTIME |
根据需要 |
29:28 |
ACCMOD |
无关 |
27:24 |
DATLAT |
无关 |
23:20 |
CLKDIV |
无关 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(写访问为 DATAST+1 总线时钟周期,读访问为 DATAST 总线时钟周期) |
7:4 |
ADDHLD |
无关 |
3:0 |
ADDSET |
第一访问阶段的持续时间(ADDSET 总线时钟周期)。ADDSET 的最小值为 0 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:8 |
Reserved |
0x0 |
7:0 |
DATASPRE |
无关 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:0 |
TIME |
根据需要 |
模式 A - SRAM/PSRAM (CRAM) OE 切换
图3.5 和图3.6 分别显示了受支持模式的读写事务波形,表3.14、3.15、3.16、3.17和3.18 列出了 GMC_BCRx、GMC_BTRx、GMC_BTRPREx、GMC_BTO 和 GMC_BWTRx 寄存器所需的配置。
图 3.5: 模式 A 读访问波形
图 3.6: 模式 A 写访问波形
读访问期间 NBL[3:0] 被驱动为低电平。与模式 1 相比,差异在于 NOE 的切换以及独立的读写时序。
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31 |
GMCEN |
0x1 |
30 |
Reserved |
0x0 |
23:22 |
BMAP |
根据需要 |
21 |
Reserved |
0x0 |
20 |
CCLKEN |
0x0 |
19 |
CBURSTRW |
0x0(在异步模式下无效) |
18:16 |
CPSIZE |
0x0(在异步模式下无效) |
15 |
ASYNCWAIT |
如果存储器支持此功能则置 1。否则保持为 0 |
14 |
EXTMOD |
0x1 |
13 |
WAITEN |
0x0(在异步模式下无效) |
12 |
WREN |
根据需要 |
11 |
WAITCFG |
无关 |
9 |
WAITPOL |
仅在位 15 ASYNCWAIT 为 1 时有意义 |
8 |
BURSTEN |
0x0 |
7 |
MODEEXMC |
0x0 |
6 |
FACCEN |
无关 |
5:4 |
MWID |
根据需要 |
3:2 |
MTYP |
根据需要,排除 0x2 (NOR Flash 存储器) |
1 |
MUXEN |
0x0 |
0 |
MBKEN |
0x1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
EARLYTIME |
根据需要 |
29:28 |
ACCMOD |
0x0 |
27:24 |
DATLAT |
无关 |
23:20 |
CLKDIV |
无关 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(写访问为 DATAST+1 总线时钟周期,读访问为 DATAST 总线时钟周期) |
7:4 |
ADDHLD |
无关 |
3:0 |
ADDSET |
第一访问阶段的持续时间(读访问为 ADDSET 总线时钟周期)。ADDSET 的最小值为 0 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:8 |
Reserved |
0x0 |
7:0 |
DATASPRE |
无关 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:0 |
TIME |
根据需要 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
Reserved |
0x0 |
29:28 |
ACCMOD |
0x0 |
27:24 |
DATLAT |
无关 |
23:20 |
CLKDIV |
无关 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(写访问为 DATAST 总线时钟周期) |
7:4 |
ADDHLD |
无关 |
3:0 |
ADDSET |
第一访问阶段的持续时间(写访问为 ADDSET 总线时钟周期)。ADDSET 的最小值为 0 |
模式 2/B - NOR Flash
图3.7、图3.8 和 图3.9 分别显示了受支持模式的读写事务波形,表3.19、3.20、3.21和3.22 列出了 GMC_BCRx、GMC_BTRx、GMC_BTRPREx、GMC_BTO 寄存器所需的配置。
图 3.7: 模式 2 和模式 B 读访问波形
图 3.8: 模式 2 写访问波形
图 3.9: 模式 B 写访问波形
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31 |
GMCEN |
0x1 |
30 |
Reserved |
0x0 |
23:22 |
BMAP |
根据需要 |
21 |
Reserved |
0x0 |
20 |
CCLKEN |
0x0 |
19 |
CBURSTRW |
0x0(在异步模式下无效) |
18:16 |
CPSIZE |
0x0(在异步模式下无效) |
15 |
ASYNCWAIT |
如果存储器支持此功能则置 1。否则保持为 0 |
14 |
EXTMOD |
模式 B 为 0x1,模式 2 为 0x0 |
13 |
WAITEN |
0x0(在异步模式下无效) |
12 |
WREN |
根据需要 |
11 |
WAITCFG |
无关 |
9 |
WAITPOL |
仅在位 15 ASYNCWAIT 为 1 时有意义 |
8 |
BURSTEN |
0x0 |
7 |
MODEEXMC |
0x0 |
6 |
FACCEN |
0x1 |
5:4 |
MWID |
根据需要 |
3:2 |
MTYP |
0x2 (NOR Flash 存储器) |
1 |
MUXEN |
0x0 |
0 |
MBKEN |
0x1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
EARLYTIME |
根据需要 |
29:28 |
ACCMOD |
0x0 |
27:24 |
DATLAT |
无关 |
23:20 |
CLKDIV |
无关 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(读访问为 DATAST 总线时钟周期) |
7:4 |
ADDHLD |
无关 |
3:0 |
ADDSET |
第一访问阶段的持续时间(读访问为 ADDSET 总线时钟周期)。ADDSET 的最小值为 0 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:8 |
Reserved |
0x0 |
7:0 |
DATASPRE |
无关 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:0 |
TIME |
根据需要 |
模式 C - NOR Flash OE 切换
图3.10 和 图3.11 分别显示了受支持模式的读写事务波形,表3.23、3.24、3.25、3.26 和3.27 列出了 GMC_BCRx、GMC_BTRPREx、GMC_BTO、GMC_BTRx 和 GMC_BWTRx 寄存器所需的配置。
图 3.10: 模式 C 读访问波形
图 3.11: 模式 C 写访问波形
与模式 1 相比,差异在于 NOE 的切换以及独立的读写时序。
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31 |
GMCEN |
0x1 |
30 |
Reserved |
0x0 |
23:22 |
BMAP |
根据需要 |
21 |
Reserved |
0x0 |
20 |
CCLKEN |
0x0 |
19 |
CBURSTRW |
0x0(在异步模式下无效) |
18:16 |
CPSIZE |
0x0(在异步模式下无效) |
15 |
ASYNCWAIT |
如果存储器支持此功能则置 1。否则保持为 0 |
14 |
EXTMOD |
0x1 |
13 |
WAITEN |
0x0(在异步模式下无效) |
12 |
WREN |
根据需要 |
11 |
WAITCFG |
无关 |
9 |
WAITPOL |
仅在位 15 ASYNCWAIT 为 1 时有意义 |
8 |
BURSTEN |
0x0 |
7 |
MODEEXMC |
0x0 |
6 |
FACCEN |
0x1 |
5:4 |
MWID |
根据需要 |
3:2 |
MTYP |
0x2 (NOR Flash 存储器) |
1 |
MUXEN |
0x0 |
0 |
MBKEN |
0x1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:8 |
Reserved |
0x0 |
7:0 |
DATASPRE |
无关 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:0 |
TIME |
根据需要 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
EARLYTIME |
根据需要 |
29:28 |
ACCMOD |
0x2 |
27:24 |
DATLAT |
0x0 |
23:20 |
CLKDIV |
0x0 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(读访问为 DATAST 总线时钟周期) |
7:4 |
ADDHLD |
无关 |
3:0 |
ADDSET |
第一访问阶段的持续时间(读访问为 ADDSET 总线时钟周期)。ADDSET 的最小值为 0 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
Reserved |
0x0 |
29:28 |
ACCMOD |
0x2 |
27:24 |
DATLAT |
无关 |
23:20 |
CLKDIV |
无关 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(写访问为 DATAST 总线时钟周期) |
7:4 |
ADDHLD |
无关 |
3:0 |
ADDSET |
第一访问阶段的持续时间(写访问为 ADDSET 总线时钟周期)。ADDSET 的最小值为 0 |
模式 D - 带扩展地址的异步访问
图3.12 和图3.13 分别显示了受支持模式的读写事务波形,表3.28、3.29、3.30、3.31和3.32 列出了 GMC_BCRx、GMC_BTRx、GMC_BTRPREx、GMC_BTO 和 GMC_BWTRx 寄存器所需的配置。
图 3.12: 模式 D 读访问波形
图 3.13: 模式 D 写访问波形
与模式 1 相比,差异在于 NOE 在 NADV 改变后继续切换以及独立的读写时序。
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31 |
GMCEN |
0x1 |
30 |
Reserved |
0x0 |
23:22 |
BMAP |
根据需要 |
21 |
Reserved |
0x0 |
20 |
CCLKEN |
0x0 |
19 |
CBURSTRW |
0x0(在异步模式下无效) |
18:16 |
CPSIZE |
0x0(在异步模式下无效) |
15 |
ASYNCWAIT |
如果存储器支持此功能则置 1。否则保持为 0 |
14 |
EXTMOD |
0x1 |
13 |
WAITEN |
0x0(在异步模式下无效) |
12 |
WREN |
根据需要 |
11 |
WAITCFG |
无关 |
9 |
WAITPOL |
仅在位 15 ASYNCWAIT 为 1 时有意义 |
8 |
BURSTEN |
0x0 |
7 |
MODEEXMC |
0x0 |
6 |
FACCEN |
根据存储器支持设置 |
5:4 |
MWID |
根据需要 |
3:2 |
MTYP |
根据需要 |
1 |
MUXEN |
0x0 |
0 |
MBKEN |
0x1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
EARLYTIME |
根据需要 |
29:28 |
ACCMOD |
0x3 |
27:24 |
DATLAT |
无关 |
23:20 |
CLKDIV |
无关 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(读访问为 DATAST 总线时钟周期) |
7:4 |
ADDHLD |
读访问中间阶段的持续时间(ADDHLD 总线时钟周期) |
3:0 |
ADDSET |
第一访问阶段的持续时间(读访问为 ADDSET 总线时钟周期)。ADDSET 的最小值为 1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:8 |
Reserved |
0x0 |
7:0 |
DATASPRE |
无关 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:0 |
TIME |
根据需要 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
Reserved |
0x0 |
29:28 |
ACCMOD |
0x3 |
27:24 |
DATLAT |
无关 |
23:20 |
CLKDIV |
无关 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(写访问为 DATAST + 1 总线时钟周期) |
7:4 |
ADDHLD |
写访问中间阶段的持续时间(ADDHLD 总线时钟周期) |
3:0 |
ADDSET |
第一访问阶段的持续时间(写访问为 ADDSET 总线时钟周期)。ADDSET 的最小值为 1 |
复用模式 - 对 NOR Flash 存储器的复用异步访问
图3.14 和图3.15 分别显示了受支持模式的读写事务波形,表3.33、3.34、3.35、3.36 列出了 GMC_BCRx、GMC_BTRx、GMC_BTRPREx、GMC_BTO 寄存器所需的配置。
图 3.14: 复用模式读访问波形
图 3.15: 复用模式写访问波形
与模式 D 的差异在于低位地址字节在数据总线上驱动。
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31 |
GMCEN |
0x1 |
30 |
Reserved |
0x0 |
23:22 |
BMAP |
根据需要 |
21 |
Reserved |
0x0 |
20 |
CCLKEN |
0x0 |
19 |
CBURSTRW |
0x0(在异步模式下无效) |
18:16 |
CPSIZE |
0x0(在异步模式下无效) |
15 |
ASYNCWAIT |
如果存储器支持此功能则置 1。否则保持为 0 |
14 |
EXTMOD |
0x0 |
13 |
WAITEN |
0x0(在异步模式下无效) |
12 |
WREN |
根据需要 |
11 |
WAITCFG |
无关 |
9 |
WAITPOL |
仅在位 15 ASYNCWAIT 为 1 时有意义 |
8 |
BURSTEN |
0x0 |
7 |
MODEEXMC |
0x0 |
6 |
FACCEN |
0x1 |
5:4 |
MWID |
根据需要 |
3:2 |
MTYP |
0x2 (NOR Flash 存储器) |
1 |
MUXEN |
0x1 |
0 |
MBKEN |
0x1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
EARLYTIME |
根据需要 |
29:28 |
ACCMOD |
0x0 |
27:24 |
DATLAT |
无关 |
23:20 |
CLKDIV |
无关 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(读访问为 DATAST 总线时钟周期,写访问为 DATAST+1 总线时钟周期) |
7:4 |
ADDHLD |
读访问中间阶段的持续时间(ADDHLD 总线时钟周期) |
3:0 |
ADDSET |
第一访问阶段的持续时间(读访问为 ADDSET 总线时钟周期)。ADDSET 的最小值为 1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:8 |
Reserved |
0x0 |
7:0 |
DATASPRE |
无关 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:0 |
TIME |
根据需要 |
异步 exmc 模式
exmc 模式与其他异步模式的区别在于,在 NWE 下降沿之前有数据预建立时间。对于读事务,建立时间由寄存器 DATASPRE 配置。
图3.16、3.17 和图3.18、3.19 分别显示了受支持模式的读写事务波形,表3.37、3.38、3.39、3.40 列出了 GMC_BCRx、GMC_BTRx、GMC_BTRPREx、GMC_BTO 寄存器所需的配置。
图 3.16: 异步 Exmc 模式读访问波形
图 3.17: 异步 Exmc 模式写访问波形
图 3.18: 异步复用 Exmc 模式读访问波形
图 3.19: 异步复用 Exmc 模式写访问波形
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31 |
GMCEN |
0x1 |
30 |
Reserved |
0x0 |
23:22 |
BMAP |
根据需要 |
21 |
Reserved |
0x0 |
20 |
CCLKEN |
0x0 |
19 |
CBURSTRW |
0x0(在异步模式下无效) |
18:16 |
CPSIZE |
0x0(在异步模式下无效) |
15 |
ASYNCWAIT |
如果存储器支持此功能则置 1。否则保持为 0 |
14 |
EXTMOD |
0x0 |
13 |
WAITEN |
0x0(在异步模式下无效) |
12 |
WREN |
根据需要 |
11 |
WAITCFG |
无关 |
9 |
WAITPOL |
仅在位 15 ASYNCWAIT 为 1 时有意义 |
8 |
BURSTEN |
0x0 |
7 |
MODEEXMC |
0x1 |
6 |
FACCEN |
无关 |
5:4 |
MWID |
根据需要 |
3:2 |
MTYP |
根据需要,排除 0x2 (NOR Flash 存储器) |
1 |
MUXEN |
0x0 |
0 |
MBKEN |
0x1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
EARLYTIME |
根据需要 |
29:28 |
ACCMOD |
无关 |
27:24 |
DATLAT |
无关 |
23:20 |
CLKDIV |
无关 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
第二访问阶段的持续时间(写访问为 DATAST+1 总线时钟周期,读访问为 DATAST 总线时钟周期) |
7:4 |
ADDHLD |
无关 |
3:0 |
ADDSET |
第一访问阶段的持续时间(读访问为 ADDSET 总线时钟周期)。ADDSET 的最小值为 0 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:8 |
Reserved |
0x0 |
7:0 |
DATASPRE |
根据需要 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:0 |
TIME |
根据需要 |
异步访问中的 WAIT 管理
如果异步存储器断言 WAIT 信号以指示其尚未准备好接收或提供数据,则必须在 GMC_BCRx 寄存器中设置 ASYNCWAIT 位。 如果 WAIT 信号有效(根据 WAITPOL 位为高电平或低电平),则由 DATAST 位编程的第二访问阶段(数据建立阶段)将延长,直到 WAIT 变为无效。与数据建立阶段不同,由 ADDSET 和 ADDHLD 位编程的第一访问阶段(地址建立和地址保持阶段)对 WAIT 不敏感,因此不会延长。 数据建立阶段必须编程为 WAIT 可以在存储器事务结束前 4 个 bus_clk 周期被检测到。必须考虑以下情况:
存储器断言 WAIT 信号与切换的 NOE/NWE 对齐
DATAST >= (4 x GMC_CLK) + max_wait_assertion_time
存储器断言 WAIT 信号与 NEx 对齐(或 NOE/NWE 不切换)
DATAST >= (4 x HCLK) + (max_wait_assertion_time - address_phase - hold_phase)(如果大于0)
DATAST >= (4 x HCLK)
其中 max_wait_assertion_time 是存储器在 NEx/NOE/NWE 变低后断言 WAIT 信号所需的最长时间。 NWAIT 极性取决于 GMC_BCRx 寄存器中 WAITPOL 位的设置。
同步事务
存储器时钟 GMC_CLK 是 bus_clk 的分频。它取决于 CLKDIV 的值,遵循以下公式:
GMC_NPC_CLK = bus_clk / (2 x CLKDIV)
NOR Flash 存储器指定了从 NADV 断言到 GMC_CLK 高电平的最小时间。为了满足此约束,GMC 在同步访问的第一个内部时钟周期(NADV 断言之前)不向存储器发送时钟。这保证了存储器时钟的上升沿出现在 NADV 低电平脉冲的中间
数据延迟与 NOR 存储器延迟
数据延迟是在采样数据之前等待的周期数。DATLAT 值必须与 NOR Flash 配置寄存器中指定的延迟值一致。GMC 在数据延迟计数中不包括 NADV 为低的时钟周期。 注意: 一些 NOR Flash 存储器在数据延迟计数中包括 NADV 低电平周期,因此 NOR Flash 延迟与 GMC DATLAT 参数之间的确切关系可以是:
NOR Flash 延迟 = (DATLAT + 2) 个 GMC_CLK 时钟周期
或 NOR Flash 延迟 = (DATLAT + 3) 个 GMC_CLK 时钟周期
一些较新的存储器在延迟阶段断言 NWAIT。在这种情况下,DATLAT 可以设置为其最小值。因此,GMC 采样数据并等待足够长的时间来评估数据是否有效。这样 GMC 可以检测存储器何时退出延迟并处理真实数据。 其他存储器在延迟期间不断言 NWAIT。在这种情况下,GMC 和存储器的延迟都必须正确设置,否则无效数据会被误认为是好数据,或者有效数据在存储器访问的初始阶段丢失。
等待管理
对于同步 NOR Flash 存储器,NWAIT 在编程的延迟期之后被评估,该延迟期对应于 (DATLAT+2) 个 GMC_CLK 时钟周期。 如果 NWAIT 有效(WAITPOL = 0 时为低电平,WAITPOL = 1 时为高电平),则插入等待状态,直到 NWAIT 无效(WAITPOL = 0 时为高电平,WAITPOL = 1 时为低电平)。 当 NWAIT 无效时,数据被视为立即有效(位 WAITCFG = 1)或在下一个时钟沿有效(位 WAITCFG = 0)。 在通过 NWAIT 信号插入等待状态期间,控制器继续向存储器发送时钟脉冲,保持片选和输出使能信号有效。它不认为数据有效。 在突发模式下,NOR Flash NWAIT 信号有两种时序配置:
Flash 存储器在等待状态前一个数据周期断言 NWAIT 信号(复位后默认)。
Flash 存储器在等待状态期间断言 NWAIT 信号
GMC 通过 GMC_BCRx 寄存器(x = 0..3)中的 WAITCFG 位,支持每个片选的两种 NOR Flash 等待状态配置。 字节通道输出(NBL 未显示;对于 NOR 访问,它们保持高电平;对于 PSRAM (CRAM) 访问,它们保持低电平。 存储器必须提前一个周期发出 NWAIT 信号,因此 WAITCFG 必须编程为 0。 字节通道 (NBL) 输出未显示,它们在 NEx 有效时保持低电平。
图 3.20: 同步复用模式读访问波形
图 3.21: 同步复用模式写访问波形
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31 |
GMCEN |
0x1 |
30 |
Reserved |
0x0 |
23:22 |
BMAP |
根据需要 |
21 |
Reserved |
0x0 |
20 |
CCLKEN |
0x0 |
19 |
CBURSTRW |
0x1 |
18:16 |
CPSIZE |
根据需要 |
15 |
ASYNCWAIT |
0x0 |
14 |
EXTMOD |
0x0 |
13 |
WAITEN |
如果存储器支持此功能则设置为 1,否则保持为 0 |
12 |
WREN |
对同步读无影响 |
11 |
WAITCFG |
根据存储器设置 |
9 |
WAITPOL |
根据存储器设置 |
8 |
BURSTEN |
0x1 |
7 |
MODEEXMC |
0x0 |
6 |
FACCEN |
根据存储器支持设置(NOR Flash 存储器) |
5:4 |
MWID |
根据需要 |
3:2 |
MTYP |
0x1 |
1 |
MUXEN |
根据需要 |
0 |
MBKEN |
0x1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
EARLYTIME |
无关 |
29:28 |
ACCMOD |
0x0 |
27:24 |
DATLAT |
数据延迟 |
23:20 |
CLKDIV |
根据需要 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
无关 |
7:4 |
ADDHLD |
无关 |
3:0 |
ADDSET |
无关 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31 |
GMCEN |
0x1 |
30 |
Reserved |
0x0 |
23:22 |
BMAP |
根据需要 |
21 |
Reserved |
0x0 |
20 |
CCLKEN |
0x1 |
19 |
CBURSTRW |
0x1 |
18:16 |
CPSIZE |
根据需要 |
15 |
ASYNCWAIT |
0x0 |
14 |
EXTMOD |
0x0 |
13 |
WAITEN |
如果存储器支持此功能则设置为 1,否则保持为 0 |
12 |
WREN |
对同步读无影响 |
11 |
WAITCFG |
根据存储器设置 |
9 |
WAITPOL |
根据存储器设置 |
8 |
BURSTEN |
0x1 |
7 |
MODEEXMC |
0x0 |
6 |
FACCEN |
根据存储器支持设置(NOR Flash 存储器) |
5:4 |
MWID |
根据需要 |
3:2 |
MTYP |
0x1 |
1 |
MUXEN |
根据需要 |
0 |
MBKEN |
0x1 |
位编号 |
位名称 |
要设置的值 |
|---|---|---|
31:30 |
EARLYTIME |
无关 |
29:28 |
ACCMOD |
0x0 |
27:24 |
DATLAT |
数据延迟 |
23:20 |
CLKDIV |
根据需要 |
19:16 |
BUSTURN |
NEx 高电平到 NEx 低电平之间的时间 (BUSTURN 总线时钟周期) |
15:8 |
DATAST |
无关 |
7:4 |
ADDHLD |
无关 |
3:0 |
ADDSET |
无关 |
SDRAM 控制器
SDRAM 控制器的主要特性如下:
8位、16位、32位数据总线宽度
2 或 4 个内部存储体
11位、12位、13位行地址
8位、9位、10位、11位列地址
SDRAM 时钟可分频为 1/2、1/4、1/6、1/8
自动行和存储体边界管理
可编程时序参数
具有可编程刷新率的自动刷新操作
自刷新模式
掉电模式
由软件触发的 SDRAM 上电初始化
SDRAM 框图
SDRAM 控制器如图3.22 中的主要模块组成
图 3.22: SDRAM 控制器框图
SDRAM 初始化
向 SDRAM 控制器和设备供电
配置 CSR sden_init_en 为 0x1 以启动 SDRAM 初始化 FSM,SDRAM 控制器将按照下图3.23 所示的序列初始化 SDRAM 设备
图 3.23: SDRAM 初始化序列
CSR sdsr_init_stat 用于反馈 SDRAM 初始化的状态,当此 CSR 置位时,可以通过 ICB 总线发送写和读操作
SDRAM 写操作
SDRAM 控制器接受单次和突发写请求,并将它们转换为单次存储器访问。在这两种情况下,SDRAM 控制器跟踪每个存储体的活动行,以便能够对不同的存储体执行连续的写访问。 SDRAM 控制器总是检查下一次访问:
如果下一次访问在同一行或另一个活动行中,则执行写操作。
如果下一次访问目标为另一行(非活动),SDRAM 控制器生成预充电命令,激活新行并启动写命令。
图 3.24: SDRAM 下一次写操作访问同一行
图 3.25: SDRAM 下一次写操作访问不同行
SDRAM 读操作
SDRAM 控制器接受单次和突发读请求,并将它们转换为单次存储器访问。在这两种情况下,SDRAM 控制器跟踪每个存储体的活动行,以便能够对不同存储体执行连续的读访问。
图 3.26: SDRAM 下一次读操作访问同一行
图 3.27: SDRAM 下一次读操作访问不同行
SDRAM 边界管理
当读或写访问跨越行边界时,如果下一次读或写访问是顺序的,并且当前访问是对行边界执行的,SDRAM 控制器执行以下操作:
预充电活动行
激活新行
启动读/写命令
在行边界处,支持所有列和数据总线宽度配置的下一个行的自动激活。
SDRAM 自动刷新
自动刷新命令用于刷新 SDRAM 设备内容。SDRAM 控制器定期发出自动刷新命令。内部计数器加载了寄存器 sdrtr_tref 中的 COUNT 值。此值定义了刷新周期之间的存储器时钟周期数(刷新率)。当此计数器达到零时,生成内部请求。 如果正在进行的存储器访问,自动刷新请求被延迟。但是,如果存储器访问和自动刷新请求同时生成,则自动刷新请求优先。 如果存储器访问发生在自动刷新操作期间,则访问被缓冲并在自动刷新完成后处理。
SDRAM 低功耗模式
有两种低功耗模式可用:
自刷新模式
掉电模式
自刷新模式通过将 MODE 位设置为 “0001” 来选择。SDRAM 设备必须在自刷新模式下保持至少 TRAS 时间,并且可以在此之后无限期保持自刷新模式。 要退出自刷新模式,必须将 MODE 位设置为 “0000”(正常模式)。
图 3.28: SDRAM 自刷新进入和退出序列
掉电模式通过将 MODE 位设置为 “0010” 来选择。在掉电模式期间,所有 SDRAM 设备输入和输出缓冲区都被停用,除了保持低电平的 sdr_cke。SDRAM 设备不能保持掉电模式超过刷新周期,并且不能自行执行自动刷新周期。 要退出掉电模式,必须将 MODE 位设置为 “0000”(正常模式)。
图 3.29: SDRAM 掉电进入和退出序列
4. GMC 寄存器
表 4.1 显示了 GMC 中的寄存器及其对应的偏移地址。
偏移量 |
寄存器名称 |
功能描述 |
|---|---|---|
0x0 |
BCR0 |
Bank 0 的 SRAM/NOR-Flash 片选控制寄存器 |
0x8 |
BCR1 |
Bank 1 的 SRAM/NOR-Flash 片选控制寄存器 |
0x10 |
BCR2 |
Bank 2 的 SRAM/NOR-Flash 片选控制寄存器 |
0x18 |
BCR3 |
Bank 3 的 SRAM/NOR-Flash 片选控制寄存器 |
0x4 |
BTR0 |
Bank 0 的 SRAM/NOR-Flash 片选时序寄存器 |
0x20 |
BTRPRE0 |
Bank 0 的 SRAM/NOR-Flash 数据建立时间预置寄存器 |
0xC |
BTR1 |
Bank 1 的 SRAM/NOR-Flash 片选时序寄存器 |
0x28 |
BTRPRE1 |
Bank 1 的 SRAM/NOR-Flash 数据建立时间预置寄存器 |
0x14 |
BTR2 |
Bank 2 的 SRAM/NOR-Flash 片选时序寄存器 |
0x30 |
BTRPRE2 |
Bank 2 的 SRAM/NOR-Flash 数据建立时间预置寄存器 |
0x1C |
BTR3 |
Bank 3 的 SRAM/NOR-Flash 片选时序寄存器 |
0x38 |
BTRPRE3 |
Bank 3 的 SRAM/NOR-Flash 数据建立时间预置寄存器 |
0x24 |
BWTR0 |
Bank 0 的 SRAM/NOR-Flash 写时序寄存器 |
0x2C |
BWTR1 |
Bank 1 的 SRAM/NOR-Flash 写时序寄存器 |
0x34 |
BWTR2 |
Bank 2 的 SRAM/NOR-Flash 写时序寄存器 |
0x3C |
BWTR3 |
Bank 3 的 SRAM/NOR-Flash 写时序寄存器 |
0x50 |
BTO |
Bank0~3 的 SRAM/NOR-Flash 超时寄存器 |
0x60 |
SDCR0 |
SDRAM 控制寄存器 |
0x68 |
SDTR0 |
SDRAM 时序寄存器 |
0x70 |
SDCMR |
SDRAM 命令模式寄存器 |
0x74 |
SDEN |
SDRAM 使能寄存器 |
0x78 |
SDRTR |
SDRAM 刷新定时器控制寄存器 |
0x7C |
SDSR |
SDRAM 状态寄存器 |
0x80 |
MISC |
SDRAM 杂项寄存器 |
0x84 |
GMCVER |
GMC 版本寄存器 |
SRAM/NOR-FLASH 片选控制寄存器 (GMC_BCR0)
地址偏移:0x0
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
MBKEN |
0 |
RW |
0x1 |
|
MUXEN |
1 |
RW |
0x0 |
|
MTYP |
3:2 |
RW |
0x2 |
|
MWID |
5:4 |
RW |
0x2 |
|
FACCEN |
6 |
RW |
0x1 |
|
MODEEXMC |
7 |
RW |
0x0 |
|
BURSTEN |
8 |
RW |
0x0 |
|
WAITPOL |
9 |
RW |
0x0 |
|
Reserved |
10 |
/ |
0x0 |
/ |
WAITCFG |
11 |
RW |
0x0 |
|
WREN |
12 |
RW |
0x1 |
|
WAITEN |
13 |
RW |
0x1 |
|
EXTMOD |
14 |
RW |
0x0 |
|
ASYNCWAIT |
15 |
RW |
0x0 |
|
CPSIZE |
18:16 |
RW |
0x0 |
|
CBURSTRW |
19 |
RW |
0x0 |
|
CCLKEN |
20 |
RW |
0x0 |
|
Reserved |
21 |
/ |
0x0 |
/ |
BMAP |
23:22 |
RW |
0x2 |
|
Reserved |
30:24 |
/ |
0x0 |
/ |
GMC_EN |
31 |
RW |
0x1 |
|
注意:
GMC_BCR1 ~ 3 寄存器的 GMCEN 位无关紧要。它仅通过 GMC_BCR0 寄存器使能。
GMC_BCR1 ~ 3 寄存器的 BMAP 位无关紧要。它仅通过 GMC_BCR0 寄存器使能。
GMC_BCR1 ~ 3 寄存器的 CCLKEN 位无关紧要。它仅通过 GMC_BCR0 寄存器使能。Bank 1 必须配置为同步模式以生成 GMC_CLK 连续时钟。
SRAM/NOR-FLASH 片选控制寄存器 (GMC_BCR1)
地址偏移:0x8
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
MBKEN |
0 |
RW |
0x0 |
|
MUXEN |
1 |
RW |
0x1 |
|
MTYP |
3:2 |
RW |
0x0 |
|
MWID |
5:4 |
RW |
0x1 |
|
FACCEN |
6 |
RW |
0x1 |
|
MODEEXMC |
7 |
RW |
0x0 |
|
BURSTEN |
8 |
RW |
0x0 |
|
WAITPOL |
9 |
RW |
0x0 |
|
Reserved |
10 |
/ |
0x0 |
/ |
WAITCFG |
11 |
RW |
0x0 |
|
WREN |
12 |
RW |
0x1 |
|
WAITEN |
13 |
RW |
0x1 |
|
EXTMOD |
14 |
RW |
0x0 |
|
ASYNCWAIT |
15 |
RW |
0x0 |
|
CPSIZE |
18:16 |
RW |
0x0 |
|
CBURSTRW |
19 |
RW |
0x0 |
|
CCLKEN |
20 |
RW |
0x0 |
|
Reserved |
31:21 |
/ |
0x0 |
/ |
SRAM/NOR-FLASH 片选控制寄存器(用于 BANK 2)(GMC_BCR2)
地址偏移:0x10
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
MBKEN |
0 |
RW |
0x0 |
|
MUXEN |
1 |
RW |
0x1 |
|
MTYP |
3:2 |
RW |
0x0 |
|
MWID |
5:4 |
RW |
0x1 |
|
FACCEN |
6 |
RW |
0x1 |
|
MODEEXMC |
7 |
RW |
0x0 |
|
BURSTEN |
8 |
RW |
0x0 |
|
WAITPOL |
9 |
RW |
0x0 |
|
Reserved |
10 |
/ |
0x0 |
/ |
WAITCFG |
11 |
RW |
0x0 |
|
WREN |
12 |
RW |
0x1 |
|
WAITEN |
13 |
RW |
0x1 |
|
EXTMOD |
14 |
RW |
0x0 |
|
ASYNCWAIT |
15 |
RW |
0x0 |
|
CPSIZE |
18:16 |
RW |
0x0 |
|
CBURSTRW |
19 |
RW |
0x0 |
|
CCLKEN |
20 |
RW |
0x0 |
|
Reserved |
31:21 |
/ |
0x0 |
/ |
SRAM/NOR-FLASH 片选控制寄存器(用于 BANK 3)(GMC_BCR3)
地址偏移:0x18
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
MBKEN |
0 |
RW |
0x0 |
|
MUXEN |
1 |
RW |
0x1 |
|
MTYP |
3:2 |
RW |
0x0 |
|
MWID |
5:4 |
RW |
0x1 |
|
FACCEN |
6 |
RW |
0x1 |
|
MODEEXMC |
7 |
RW |
0x0 |
|
BURSTEN |
8 |
RW |
0x0 |
|
WAITPOL |
9 |
RW |
0x0 |
|
Reserved |
10 |
/ |
0x0 |
/ |
WAITCFG |
11 |
RW |
0x0 |
|
WREN |
12 |
RW |
0x1 |
|
WAITEN |
13 |
RW |
0x1 |
|
EXTMOD |
14 |
RW |
0x0 |
|
ASYNCWAIT |
15 |
RW |
0x0 |
|
CPSIZE |
18:16 |
RW |
0x0 |
|
CBURSTRW |
19 |
RW |
0x0 |
|
CCLKEN |
20 |
RW |
0x0 |
|
Reserved |
31:21 |
/ |
0x0 |
/ |
SRAM/NOR-FLASH 片选时序寄存器(用于 BANK 0)(GMC_BTR0)
该寄存器包含每个存储器组的控制信息,用于 SRAM、PSRAM 和 NOR Flash 存储器。如果 GMC_BCR0 寄存器中的 EXTMOD 位被置位,则该寄存器分为写访问和读访问两部分,即有两个寄存器可用:一个用于配置读访问(本寄存器),一个用于配置写访问(GMC_BWTR0 寄存器)。
地址偏移:0x4
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ADDSET |
3:0 |
RW |
0x4 |
地址建立阶段持续时间:ADDSET 阶段持续时间 = ADDSET × 总线时钟周期 |
ADDHLD |
7:4 |
RW |
0xF |
地址保持阶段持续时间:ADDHLD 阶段持续时间 = ADDHLD × 总线时钟周期(ADDHLD 不能设为 0 |
DATAST |
15:8 |
RW |
0x4 |
数据阶段持续时间:DATAST 阶段持续时间 = DATAST × 总线时钟周期(DATAST 不能设为 0) |
BUSTURN |
19:16 |
RW |
0xF |
总线周转阶段持续时间:BUSTURN 阶段持续时间 = BUSTURN × 总线时钟周期(BUSTURN 不能设为 0) |
CLKDIV |
23:20 |
RW |
0xF |
时钟分频比(用于 GMC_CLK 信号):GMC_CLK 周期 = (CLKDIV + 1) × bus_clk 周期(CLKDIV 不能设为 0) |
DATLAT |
27:24 |
RW |
0xF |
同步存储器的数据延迟:首次突发访问的数据延迟为 (DATLAT + 2) 个 GMC_CLK 时钟周期 |
ACCMOD |
29:28 |
RW |
0x0 |
|
EARLYTIME |
31:30 |
RW |
0x1 |
在异步模式下,NWE 的上升沿与 NE 的上升沿之间的总线时钟周期数。仅适用于写事务。 |
注意: - 在同步访问中,DATAST 为无关项。 - 在同步访问中,ADDHLD 不使用,地址保持阶段始终为 1 个存储器时钟周期。 - 在同步访问中,ADDSET 为无关项。 - 在复用模式或模式 D 中,ADDSET 的最小值为 1。 - 在模式 1 和 PSRAM 存储器中,ADDSET 的最小值为 1。
PSRAM(CRAM)由于内部刷新而具有可变延迟。因此,这些存储器在整个延迟阶段发出 NWAIT 信号以根据需要延长延迟。 对于 PSRAM(CRAM),填充的 DATLAT 必须设置为 0,以便 GMC 尽快退出其延迟阶段并开始采样来自存储器的 NWAIT,然后在存储器准备就绪时开始读取或写入。 此方法也可用于支持发出 NWAIT 信号的最新同步 Flash 存储器,这与不发出 NWAIT 信号的旧式 Flash 存储器不同(请检查所使用的具体 Flash 存储器的数据手册)。
SRAM/NOR-FLASH 数据建立时间预置寄存器(用于 BANK 0)(GMC_BTRPRE0)
该寄存器包含异步模式下每个存储器组的控制信息,用于 SRAM、PSRAM 和 NOR Flash 存储器。如果启用 EXMC 模式,则 datastpre 个 bus_clk 是数据在 NWE 下降沿之前的建立时间,而 datastpre+2 个 bus_clk 是数据在 NOE 上升沿之前的建立时间。如果禁用 EXMC 模式,则这些位无效。
地址偏移:0x20
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
DATASTPRE |
7:0 |
RW |
0xF |
数据在 NWE 下降沿之前的建立时间: datastpre × 总线时钟周期 |
保留 |
31:8 |
/ |
0x0 |
/ |
SRAM/NOR-FLASH 片选时序寄存器(用于 BANK 1)(GMC_BTR1)
该寄存器包含每个存储器组的控制信息,用于 SRAM、PSRAM 和 NOR Flash 存储器。如果 GMC_BCR1 寄存器中的 EXTMOD 位被置位,则该寄存器分为写访问和读访问两部分,即有两个寄存器可用:一个用于配置读访问(本寄存器),一个用于配置写访问(GMC_BWTR1 寄存器)。
地址偏移:0xC
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ADDSET |
3:0 |
RW |
0x4 |
地址建立阶段持续时间:ADDSET 阶段持续时间 = ADDSET × 总线时钟周期 |
ADDHLD |
7:4 |
RW |
0xF |
地址保持阶段持续时间:ADDHLD 阶段持续时间 = ADDHLD × 总线时钟周期(ADDHLD 不能设为 0 |
DATAST |
15:8 |
RW |
0x4 |
数据阶段持续时间:DATAST 阶段持续时间 = DATAST × 总线时钟周期(DATAST 不能设为 0) |
BUSTURN |
19:16 |
RW |
0xF |
总线周转阶段持续时间:BUSTURN 阶段持续时间 = BUSTURN × 总线时钟周期(BUSTURN 不能设为 0) |
CLKDIV |
23:20 |
RW |
0xF |
时钟分频比(用于 GMC_CLK 信号):GMC_CLK 周期 = (CLKDIV + 1) × bus_clk 周期(CLKDIV 不能设为 0) |
DATLAT |
27:24 |
RW |
0xF |
同步存储器的数据延迟:首次突发访问的数据延迟为 (DATLAT + 2) 个 GMC_CLK 时钟周期 |
ACCMOD |
29:28 |
RW |
0x0 |
|
EARLYTIME |
31:30 |
RW |
0x1 |
在异步模式下,NWE 的上升沿与 NE 的上升沿之间的总线时钟周期数。仅适用于写事务。 |
注意:
在同步访问中,DATAST 为无关项。
在同步访问中,ADDHLD 不使用,地址保持阶段始终为 1 个存储器时钟周期。
在同步访问中,ADDSET 为无关项。
在复用模式或模式 D 中,ADDSET 的最小值为 1。
在模式 1 和 PSRAM 存储器中,ADDSET 的最小值为 1。
PSRAM(CRAM)由于内部刷新而具有可变延迟。因此,这些存储器在整个延迟阶段发出 NWAIT 信号以根据需要延长延迟。 对于 PSRAM(CRAM),填充的 DATLAT 必须设置为 0,以便 GMC 尽快退出其延迟阶段并开始采样来自存储器的 NWAIT,然后在存储器准备就绪时开始读取或写入。 此方法也可用于支持发出 NWAIT 信号的最新同步 Flash 存储器,这与不发出 NWAIT 信号的旧式 Flash 存储器不同(请检查所使用的具体 Flash 存储器的数据手册)。
SRAM/NOR-FLASH 数据建立时间预置寄存器(用于 BANK 1)(GMC_BTRPRE1)
该寄存器包含异步模式下每个存储器组的控制信息,用于 SRAM、PSRAM 和 NOR Flash 存储器。如果启用 EXMC 模式,则 datastpre 个 bus_clk 是数据在 NWE 下降沿之前的建立时间,而 datastpre+2 个 bus_clk 是数据在 NOE 上升沿之前的建立时间。如果禁用 EXMC 模式,则这些位无效。
地址偏移:0x28
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
DATASTPRE |
7:0 |
RW |
0xF |
数据在 NWE 下降沿之前的建立时间: datastpre × 总线时钟周期 |
保留 |
31:8 |
/ |
0x0 |
/ |
SRAM/NOR-FLASH 片选时序寄存器(用于 BANK 2)(GMC_BTR2)
该寄存器包含每个存储器组的控制信息,用于 SRAM、PSRAM 和 NOR Flash 存储器。如果 GMC_BCR2 寄存器中的 EXTMOD 位被置位,则该寄存器分为写访问和读访问两部分,即有两个寄存器可用:一个用于配置读访问(本寄存器),一个用于配置写访问(GMC_BWTR2 寄存器)。
地址偏移:0x14
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ADDSET |
3:0 |
RW |
0x4 |
地址建立阶段持续时间:ADDSET 阶段持续时间 = ADDSET × 总线时钟周期 |
ADDHLD |
7:4 |
RW |
0xF |
地址保持阶段持续时间:ADDHLD 阶段持续时间 = ADDHLD × 总线时钟周期(ADDHLD 不能设为 0 |
DATAST |
15:8 |
RW |
0x4 |
数据阶段持续时间:DATAST 阶段持续时间 = DATAST × 总线时钟周期(DATAST 不能设为 0) |
BUSTURN |
19:16 |
RW |
0xF |
总线周转阶段持续时间:BUSTURN 阶段持续时间 = BUSTURN × 总线时钟周期(BUSTURN 不能设为 0) |
CLKDIV |
23:20 |
RW |
0xF |
时钟分频比(用于 GMC_CLK 信号):GMC_CLK 周期 = (CLKDIV + 1) × bus_clk 周期(CLKDIV 不能设为 0) |
DATLAT |
27:24 |
RW |
0xF |
同步存储器的数据延迟:首次突发访问的数据延迟为 (DATLAT + 2) 个 GMC_CLK 时钟周期 |
ACCMOD |
29:28 |
RW |
0x0 |
|
EARLYTIME |
31:30 |
RW |
0x1 |
在异步模式下,NWE 的上升沿与 NE 的上升沿之间的总线时钟周期数。仅适用于写事务。 |
注意:
在同步访问中,DATAST 为无关项。
在同步访问中,ADDHLD 不使用,地址保持阶段始终为 1 个存储器时钟周期。
在同步访问中,ADDSET 为无关项。
在复用模式或模式 D 中,ADDSET 的最小值为 1。
在模式 1 和 PSRAM 存储器中,ADDSET 的最小值为 1。
PSRAM(CRAM)由于内部刷新而具有可变延迟。因此,这些存储器在整个延迟阶段发出 NWAIT 信号以根据需要延长延迟。 对于 PSRAM(CRAM),填充的 DATLAT 必须设置为 0,以便 GMC 尽快退出其延迟阶段并开始采样来自存储器的 NWAIT,然后在存储器准备就绪时开始读取或写入。 此方法也可用于支持发出 NWAIT 信号的最新同步 Flash 存储器,这与不发出 NWAIT 信号的旧式 Flash 存储器不同(请检查所使用的具体 Flash 存储器的数据手册)。
SRAM/NOR-FLASH 数据建立时间预置寄存器(用于 BANK 2)(GMC_BTRPRE2)
该寄存器包含异步模式下每个存储器组的控制信息,用于 SRAM、PSRAM 和 NOR Flash 存储器。如果启用 EXMC 模式,则 datastpre 个 bus_clk 是数据在 NWE 下降沿之前的建立时间,而 datastpre+2 个 bus_clk 是数据在 NOE 上升沿之前的建立时间。如果禁用 EXMC 模式,则这些位无效。
地址偏移:0x30
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
DATASTPRE |
7:0 |
RW |
0xF |
数据在 NWE 下降沿之前的建立时间: datastpre × 总线时钟周期 |
保留 |
31:8 |
/ |
0x0 |
/ |
SRAM/NOR-FLASH 片选时序寄存器(用于 BANK 3)(GMC_BTR3)
该寄存器包含每个存储器组的控制信息,用于 SRAM、PSRAM 和 NOR Flash 存储器。如果 GMC_BCR3 寄存器中的 EXTMOD 位被置位,则该寄存器分为写访问和读访问两部分,即有两个寄存器可用:一个用于配置读访问(本寄存器),一个用于配置写访问(GMC_BWTR3 寄存器)。
地址偏移:0x1C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ADDSET |
3:0 |
RW |
0x4 |
地址建立阶段持续时间:ADDSET 阶段持续时间 = ADDSET × 总线时钟周期 |
ADDHLD |
7:4 |
RW |
0xF |
地址保持阶段持续时间:ADDHLD 阶段持续时间 = ADDHLD × 总线时钟周期(ADDHLD 不能设为 0 |
DATAST |
15:8 |
RW |
0x4 |
数据阶段持续时间:DATAST 阶段持续时间 = DATAST × 总线时钟周期(DATAST 不能设为 0) |
BUSTURN |
19:16 |
RW |
0xF |
总线周转阶段持续时间:BUSTURN 阶段持续时间 = BUSTURN × 总线时钟周期(BUSTURN 不能设为 0) |
CLKDIV |
23:20 |
RW |
0xF |
时钟分频比(用于 GMC_CLK 信号):GMC_CLK 周期 = (CLKDIV + 1) × bus_clk 周期(CLKDIV 不能设为 0) |
DATLAT |
27:24 |
RW |
0xF |
同步存储器的数据延迟:首次突发访问的数据延迟为 (DATLAT + 2) 个 GMC_CLK 时钟周期 |
ACCMOD |
29:28 |
RW |
0x0 |
|
EARLYTIME |
31:30 |
RW |
0x1 |
在异步模式下,NWE 的上升沿与 NE 的上升沿之间的总线时钟周期数。仅适用于写事务。 |
注意:
在同步访问中,DATAST 为无关项。
在同步访问中,ADDHLD 不使用,地址保持阶段始终为 1 个存储器时钟周期。
在同步访问中,ADDSET 为无关项。
在复用模式或模式 D 中,ADDSET 的最小值为 1。
在模式 1 和 PSRAM 存储器中,ADDSET 的最小值为 1。
PSRAM(CRAM)由于内部刷新而具有可变延迟。因此,这些存储器在整个延迟阶段发出 NWAIT 信号以根据需要延长延迟。 对于 PSRAM(CRAM),填充的 DATLAT 必须设置为 0,以便 GMC 尽快退出其延迟阶段并开始采样来自存储器的 NWAIT,然后在存储器准备就绪时开始读取或写入。 此方法也可用于支持发出 NWAIT 信号的最新同步 Flash 存储器,这与不发出 NWAIT 信号的旧式 Flash 存储器不同(请检查所使用的具体 Flash 存储器的数据手册)。
SRAM/NOR-FLASH 数据建立时间预置寄存器(用于 BANK 3)(GMC_BTRPRE3)
该寄存器包含异步模式下每个存储器组的控制信息,用于 SRAM、PSRAM 和 NOR Flash 存储器。如果启用 EXMC 模式,则 datastpre 个 bus_clk 是数据在 NWE 下降沿之前的建立时间,而 datastpre+2 个 bus_clk 是数据在 NOE 上升沿之前的建立时间。如果禁用 EXMC 模式,则这些位无效。
地址偏移:0x38
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
DATASTPRE |
7:0 |
RW |
0xF |
数据在 NWE 下降沿之前的建立时间: datastpre × 总线时钟周期 |
保留 |
31:8 |
/ |
0x0 |
/ |
SRAM/NOR-FLASH 写时序寄存器(用于 BANK 0)(GMC_BWTR0)
该寄存器包含每个存储器组的控制信息。用于 SRAM、PSRAM 和 NOR Flash 存储器。当 GMC_BCR0 寄存器中的 EXTMOD 位置位时,此寄存器对写访问有效。
地址偏移:0x24
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ADDSET |
3:0 |
RW |
0x4 |
地址建立阶段持续时间:ADDSET 阶段持续时间 = ADDSET × 总线时钟周期 |
ADDHLD |
7:4 |
RW |
0xF |
地址保持阶段持续时间:ADDHLD 阶段持续时间 = ADDHLD × 总线时钟周期(ADDHLD 不能设为 0 |
DATAST |
15:8 |
RW |
0x4 |
数据阶段持续时间:DATAST 阶段持续时间 = DATAST × 总线时钟周期(DATAST 不能设为 0) |
BUSTURN |
19:16 |
RW |
0xF |
总线周转阶段持续时间:BUSTURN 阶段持续时间 = BUSTURN × 总线时钟周期(BUSTURN 不能设为 0) |
保留 |
27:20 |
/ |
0x0 |
/ |
ACCMOD |
29:28 |
RW |
0x0 |
|
保留 |
31:30 |
/ |
0x0 |
/ |
注意:
在同步 NOR Flash 访问中,ADDHLD 不使用,地址保持阶段始终为 1 个 Flash 时钟周期。
在同步访问中,ADDSET 不使用,地址建立阶段始终为 1 个 Flash 时钟周期。
在复用模式中,ADDSET 的最小值为 1。
SRAM/NOR-FLASH 写时序寄存器(用于 BANK 1)(GMC_BWTR1)
该寄存器包含每个存储器组的控制信息。用于 SRAM、PSRAM 和 NOR Flash 存储器。当 GMC_BCR1 寄存器中的 EXTMOD 位置位时,此寄存器对写访问有效。
地址偏移:0x2C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ADDSET |
3:0 |
RW |
0x4 |
地址建立阶段持续时间:ADDSET 阶段持续时间 = ADDSET × 总线时钟周期 |
ADDHLD |
7:4 |
RW |
0xF |
地址保持阶段持续时间:ADDHLD 阶段持续时间 = ADDHLD × 总线时钟周期(ADDHLD 不能设为 0 |
DATAST |
15:8 |
RW |
0x4 |
数据阶段持续时间:DATAST 阶段持续时间 = DATAST × 总线时钟周期(DATAST 不能设为 0) |
BUSTURN |
19:16 |
RW |
0xF |
总线周转阶段持续时间:BUSTURN 阶段持续时间 = BUSTURN × 总线时钟周期(BUSTURN 不能设为 0) |
保留 |
27:20 |
/ |
0x0 |
/ |
ACCMOD |
29:28 |
RW |
0x0 |
|
保留 |
31:30 |
/ |
0x0 |
/ |
注意:
在同步 NOR Flash 访问中,ADDHLD 不使用,地址保持阶段始终为 1 个 Flash 时钟周期。
在同步访问中,ADDSET 不使用,地址建立阶段始终为 1 个 Flash 时钟周期。
在复用模式中,ADDSET 的最小值为 1。
SRAM/NOR-FLASH 写时序寄存器(用于 BANK 2)(GMC_BWTR2)
该寄存器包含每个存储器组的控制信息。用于 SRAM、PSRAM 和 NOR Flash 存储器。当 GMC_BCR2 寄存器中的 EXTMOD 位置位时,此寄存器对写访问有效。
地址偏移:0x34
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ADDSET |
3:0 |
RW |
0x4 |
地址建立阶段持续时间:ADDSET 阶段持续时间 = ADDSET × 总线时钟周期 |
ADDHLD |
7:4 |
RW |
0xF |
地址保持阶段持续时间:ADDHLD 阶段持续时间 = ADDHLD × 总线时钟周期(ADDHLD 不能设为 0 |
DATAST |
15:8 |
RW |
0x4 |
数据阶段持续时间:DATAST 阶段持续时间 = DATAST × 总线时钟周期(DATAST 不能设为 0) |
BUSTURN |
19:16 |
RW |
0xF |
总线周转阶段持续时间:BUSTURN 阶段持续时间 = BUSTURN × 总线时钟周期(BUSTURN 不能设为 0) |
保留 |
27:20 |
/ |
0x0 |
/ |
ACCMOD |
29:28 |
RW |
0x0 |
|
保留 |
31:30 |
/ |
0x0 |
/ |
注意:
在同步 NOR Flash 访问中,ADDHLD 不使用,地址保持阶段始终为 1 个 Flash 时钟周期。
在同步访问中,ADDSET 不使用,地址建立阶段始终为 1 个 Flash 时钟周期。
在复用模式中,ADDSET 的最小值为 1。
SRAM/NOR-FLASH 写时序寄存器(用于 BANK 3)(GMC_BWTR3)
该寄存器包含每个存储器组的控制信息。用于 SRAM、PSRAM 和 NOR Flash 存储器。当 GMC_BCR3 寄存器中的 EXTMOD 位置位时,此寄存器对写访问有效。
地址偏移:0x3C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ADDSET |
3:0 |
RW |
0x4 |
地址建立阶段持续时间:ADDSET 阶段持续时间 = ADDSET × 总线时钟周期 |
ADDHLD |
7:4 |
RW |
0xF |
地址保持阶段持续时间:ADDHLD 阶段持续时间 = ADDHLD × 总线时钟周期(ADDHLD 不能设为 0 |
DATAST |
15:8 |
RW |
0x4 |
数据阶段持续时间:DATAST 阶段持续时间 = DATAST × 总线时钟周期(DATAST 不能设为 0) |
BUSTURN |
19:16 |
RW |
0xF |
总线周转阶段持续时间:BUSTURN 阶段持续时间 = BUSTURN × 总线时钟周期(BUSTURN 不能设为 0) |
保留 |
27:20 |
/ |
0x0 |
/ |
ACCMOD |
29:28 |
RW |
0x0 |
|
保留 |
31:30 |
/ |
0x0 |
/ |
注意:
在同步 NOR Flash 访问中,ADDHLD 不使用,地址保持阶段始终为 1 个 Flash 时钟周期。
在同步访问中,ADDSET 不使用,地址建立阶段始终为 1 个 Flash 时钟周期。
在复用模式中,ADDSET 的最小值为 1。
SRAM/NOR-FLASH 超时寄存器(用于 BANK0~3)(GMC_BTO)
SDRAM 控制器长时间占用总线。当其占用时间超过特定值时,NOR/PSRAM 控制器的事务会被强制结束。
地址偏移:0x50
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
TIME |
31:0 |
RW |
0x78 |
SDRAM 控制器长时间占用总线。当其占用时间超过特定值时,NOR/PSRAM 控制器的事务会被强制结束。 |
SDRAM 控制寄存器 (GMC_SDCR0)
地址偏移:0x60
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
NC |
1:0 |
RW |
0x2 |
|
NR |
3:2 |
RW |
0x2 |
|
MWID |
5:4 |
RW |
0x1 |
|
NB |
6 |
RW |
0x1 |
|
WE |
7 |
RW |
0x0 |
|
SDCLK |
10:8 |
RW |
0x1 |
|
Reserved |
31:11 |
/ |
0x0 |
/ |
SDRAM 时序寄存器 (GMC_SDTR0)
地址偏移:0x68
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
TMRD |
3:0 |
RW |
0x0 |
|
TXSR |
7:4 |
RW |
0x0 |
|
TRAS |
11:8 |
RW |
0x0 |
|
TRC |
15:12 |
RW |
0x8 |
|
TWR |
19:16 |
RW |
0x1 |
|
TRP |
23:20 |
RW |
0x1 |
|
TRCD |
27:24 |
RW |
0x1 |
|
TPWRUP |
31:28 |
RW |
0x0 |
|
SDRAM 命令模式寄存器 (GMC_SDCMR)
地址偏移:0x70
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
MODE |
3:0 |
RW |
0x0 |
|
CTB |
5:4 |
RW |
0x0 |
|
NRFS |
9:6 |
RW |
0x1 |
|
MRD |
22:10 |
RW |
0x0 |
|
保留 |
31:23 |
/ |
0x0 |
/ |
SDRAM 使能寄存器 (GMC_SDEN)
地址偏移:0x74
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
INIT_EN |
0 |
RW |
0x0 |
|
保留 |
31:1 |
/ |
0x0 |
/ |
SDRAM 刷新定时器控制寄存器 (GMC_SDRTR)
地址偏移:0x78
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
CRE |
0 |
RW |
0x0 |
|
TREF |
13:1 |
RW |
0xc35 |
刷新时间周期 |
保留 |
31:14 |
/ |
0x0 |
/ |
SDRAM 状态寄存器 (GMC_SDSR)
地址偏移:0x7C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
MODES0 |
1:0 |
RO |
0x0 |
|
MODES1 |
3:2 |
RO |
0x0 |
|
INIT_STAT |
4 |
RO |
0x0 |
|
保留 |
31:5 |
/ |
0x0 |
/ |
SDRAM 杂项寄存器 (GMC_MISC)
地址偏移:0x80
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
AREF_REQ |
7:0 |
RW |
0x80 |
|
PWD_ENT |
15:8 |
RW |
0x80 |
|
MAP_MODE |
16 |
RW |
0x0 |
|
XOP_STATE |
21:17 |
RO |
0x0 |
全局有限状态机状态,用于调试 |
AREF_ERROR |
22 |
RO |
0x0 |
自动刷新错误标志,用于调试。 |
保留 |
31:23 |
/ |
0x0 |
/ |
GMC 版本寄存器 (GMCVER)
地址偏移:0x84
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
IDVAL |
23:0 |
RO |
0X10301 |
GMC 版本 ID |