S3C2440A NAND FLASH控制器配置寄存器NFCONF TACLS、TWRPH0、TWRPH1值的设置

  在嵌入式设备中开发中,硬件设计上常常因为成本的原因,而选择NAND FLASH作为程序存储设备,在进行U-BOOT移植就需要对此设备进行驱动移植,而其中有一项就是对NAND FLASH配置寄存器NFCONF TACLS、TWRPH0、TWRPH1值的设置,这里将自己的理解记录下来。

 

一、硬件数据手册资料说明:

1. CPU:S3C2440A Revision 1.3

2. NAND Flash:K9F2G08U0C Rev. 0.2

 

二、时序分析

1. S3C2440A手册中的时序

 

2. NAND FLASH K9F2G08U0C手册中的时序

 

 

 3. NAND FLASH K9F2G08U0C手册中的时序要求

 

 

4. 因为在NAND FLASH中没有找到与S2C2440A 图6-4中读写时序图,所以这里以S3C2440A 图6-3来对比计算。因此可得如下公式

4.1 对于CLE

4.1.1 TACLS_d = tcls - twp = 12 -12 = 0ns

4.1.2 TWRPH0_d = twp = 12ns

4.1.3 TWRPH1_d = tclh = 5ns

 

4.2 对于ALE

4.2.1 TACLS_d = tals - twp = 12 -12 = 0ns

4.2.2 TWRPH0_d = twp = 12ns

4.2.3 TWRPH1_d = talh = 5ns

 

4.3 由以上得知,不管是CLE,还是ALE,TACLS_d  = 0ns、TWRPH0_d  = 12ns、TWRPH1_d  = 5ns

 

5. S3C2440A 配置寄存器NFCONF关于TACLS、TWRPH0、TWRPH1的描述

 

6. 如果FCLK = 400MHz,对于时钟分频系数FCLK:HCLK:PCLK = 1:4:8,则HCLK = 100MHz = 10ns;则根据步骤5的公式有

6.1 TACLS_d  = 0ns ≤ HCLK x TACLS = 10 * TACLS  ==> TACLS ≥ 0

6.2 TWRPH0_d  = 12ns ≤ HCLK x (TWRPH0 + 1)  = 10 * (TWRPH0 + 1)  ==> TWRPH0 ≥ 1

6.3 TWRPH1_d  = 5ns ≤ HCLK x (TWRPH1 + 1)  = 10 * (TWRPH1 + 1)  ==> TWRPH0 ≥ 0

 

7. 根据步骤6计算得出的值对S3C2440A的配置寄存器NFCONF TACLS、TWRPH0、TWRPH1进行初始化

 

posted @ 2021-07-25 17:59  秋水寒林  阅读(207)  评论(0编辑  收藏  举报