s3c2410的nand flash控制器
时间:2007-01-31 来源:基地小头目
s3c2410内部集成有内部sram(steppingstone),当选择从nand flash启动的时候,nand flash的前4k代码将会自动copy到内部sram中后运行。
(一)nand flash控制器的特性:
1、支持读/写/编程 NAND FLASH内存
2、系统复位后nand flash的前4k代码自动copy到内部sram,copy完 成后从sram启动,此时内部sram被映射为nGCS0。(当OM[1:0]= 00时使能NAND FLASH 启动模式)
3、支持硬件ECC校验
4、系统启动后内部sram可以用做其他的用途。
(二)操作nand flash方法
1、设置nand flash配置寄存器NFCONF
2、向命令寄存器NFCMD写入操作命令
3、向地址寄存器NFADDR写入地址
4、读/写数据前要读取状态寄存器NFSTAT来判断nand flash是否处于 忙状态。
(三)ECC
nand flash的页为512B。在读写的时候每页会产生3个B大小的ECC校验码。
24bot ECC校验码=18bit 线校验码+8位列校验码
(四)NAND FLASH特殊功能寄存器的详细说明
1、配置寄存器NFCONF(地址:0x4e000000)
NFCONF 功能 初始值
位
[15] nand flash使能位,
0:关闭控制器 0
1:使用控制器
[14:13] 保留
[12] 初始化ECC
0:不使用ECC 0
1:使用ECC
[11] 内存片选使能
[10:8] CLE和ALE持续时间设置(0-7) 0
持续时间=HCLK*(设定值+1)
[7] 保留
[6:4] TWRPH0持续时间设置(0-7) 0
持续时间=HCLK*(设定值+1)
[3] 保留
[2:0] TWRPH1持续时间设置(0-7) 0
持续时间=HCLK*(设定值+1)
2、命令寄存器NFCMD(地址:0x4e000004)
[15:8] 保留
[7:0] 命令寄存器 0x00
3、地址寄存器NFADDR
[15:8] 保留
[7:0] 地址寄存器 0x00
4、数据寄存器NFDATA
[15:8] 保留
[7:0] 数据寄存器 0x00
5、状态寄存器NFSTAT
[16:1] 保留
[0] nand flash忙判断位
0--忙
1--准备好
6、ECC寄存器NFECC
[23:16] ECC2
[15:7] ECC1
[7:0] ECC0
(一)nand flash控制器的特性:
1、支持读/写/编程 NAND FLASH内存
2、系统复位后nand flash的前4k代码自动copy到内部sram,copy完 成后从sram启动,此时内部sram被映射为nGCS0。(当OM[1:0]= 00时使能NAND FLASH 启动模式)
3、支持硬件ECC校验
4、系统启动后内部sram可以用做其他的用途。
(二)操作nand flash方法
1、设置nand flash配置寄存器NFCONF
2、向命令寄存器NFCMD写入操作命令
3、向地址寄存器NFADDR写入地址
4、读/写数据前要读取状态寄存器NFSTAT来判断nand flash是否处于 忙状态。
(三)ECC
nand flash的页为512B。在读写的时候每页会产生3个B大小的ECC校验码。
24bot ECC校验码=18bit 线校验码+8位列校验码
(四)NAND FLASH特殊功能寄存器的详细说明
1、配置寄存器NFCONF(地址:0x4e000000)
NFCONF 功能 初始值
位
[15] nand flash使能位,
0:关闭控制器 0
1:使用控制器
[14:13] 保留
[12] 初始化ECC
0:不使用ECC 0
1:使用ECC
[11] 内存片选使能
[10:8] CLE和ALE持续时间设置(0-7) 0
持续时间=HCLK*(设定值+1)
[7] 保留
[6:4] TWRPH0持续时间设置(0-7) 0
持续时间=HCLK*(设定值+1)
[3] 保留
[2:0] TWRPH1持续时间设置(0-7) 0
持续时间=HCLK*(设定值+1)
2、命令寄存器NFCMD(地址:0x4e000004)
[15:8] 保留
[7:0] 命令寄存器 0x00
3、地址寄存器NFADDR
[15:8] 保留
[7:0] 地址寄存器 0x00
4、数据寄存器NFDATA
[15:8] 保留
[7:0] 数据寄存器 0x00
5、状态寄存器NFSTAT
[16:1] 保留
[0] nand flash忙判断位
0--忙
1--准备好
6、ECC寄存器NFECC
[23:16] ECC2
[15:7] ECC1
[7:0] ECC0
相关阅读 更多 +
排行榜 更多 +