裸板程序记录之nand初始化-s3c2440

需要配置的寄存器汇总

裸板程序记录之nand初始化-s3c2440_第1张图片
配置的寄存器
  • NFCONF

TACLS [13:12] CLE & ALE duration setting value (0~3) 从cpu手册CLE & ALE Timing图上看不是文字表达的意思,看起来像cle,ale的建立时间,多久之后才能发出we信号
Duration = HCLK x TACLS

从nand flash TACLS时序图可以看出红色间隔应该就是TACLS,因为要满足CLE和ALE的时序要求,取TCLS - TWP和TALS - TWP两者中较大的.

参阅nand flash 时间参数表,TCLS和TALS min是12ns,Twp min 也是12ns,表面上看是可以同时发出的.保险起见还是给出一个HCLK吧!
TACLS [13:12] = 01'b
裸板程序记录之nand初始化-s3c2440_第2张图片
nand flash TACLS时序图

裸板程序记录之nand初始化-s3c2440_第3张图片
cpu手册CLE & ALE Timing

TWRPH0
TWRPH0 [10:8] TWRPH0 duration setting value (0~7)
Duration = HCLK x ( TWRPH0 + 1 )

这个从cpu手册CLE & ALE Timing上看应该是TWP的时间,也就是写脉冲的宽度,12ns,TWRPH0应该设为1
TWRPH0 [10:8] = 001'b

TWRPH1这个应该是写脉冲之后,data线上的数据还要维持多久
TWRPH1 [6:4] TWRPH1 duration setting value (0~7)
Duration = HCLK x ( TWRPH1 + 1 )

从TWRPH1中可以看出,应该是tDH这段时间,min 5 ns,配置为0即可
裸板程序记录之nand初始化-s3c2440_第4张图片
TWRPH1
  • BusWidth (R/W) [0]

NAND Flash Memory I/O bus width for auto-booting and
general access.
0: 8-bit bus 1: 16-bit bus

这里使用的nand flash bus宽度是8bit
  • NFCONT
这个配置比较简单
这里[4] = 0x1 [1:0] = 0x01
裸板程序记录之nand初始化-s3c2440_第5张图片
需要配置的寄存器

裸板程序记录之nand初始化-s3c2440_第6张图片
nand flash 时间参数表

你可能感兴趣的:(裸板程序记录之nand初始化-s3c2440)