NorFlash时序图分析

文章目录

    • 1 s3c2440和NorFlash之间的连接
    • 2 设置NorFlash的时序
      • 2.1 时序分析
      • 2.2 代码编写

本文摘抄自百问网, 原文地址。

1 s3c2440和NorFlash之间的连接

2440和Nor Flash 之间有地址线,数据线,还有各种控制线线连接。
NorFlash时序图分析_第1张图片
NorFlash时序图分析_第2张图片


2 设置NorFlash的时序

2.1 时序分析

下图是S3C2440的Nor Flash控制器的读时序图,里面很多参数都需要根据外接芯片的性能进行设置,有的芯片性能好、响应时间快,就可以把参数时间设置小一点,释放更好的性能。

NorFlash时序图分析_第3张图片
下图是Nor Flash芯片的读时序。

NorFlash时序图分析_第4张图片
我们需要做的就是设置S3C2440的Nor Flash控制器时序去满足Nor Flash芯片的时序。每个参数的参考范围可以通过AC CHARACTERISTICS得到。

NorFlash时序图分析_第5张图片

结合Nor Flash芯片的两张图,可以得到如下信息:

  • 发出地址数据(Addresses)后,要等待Taa(要求大于等于70ns)时间,地址数据才有效;
  • 发出片选信号(CE#)后,要等待Tce(要求大于等于70ns)时间,片选信号才有效;
  • 发出读信号(OE#)后要等待Toe(要求大于等于30ns)时间,读信号才有效。

为了简单我们把地址数据(Addresses),片选信号(CE#),读信号(OE#),同时发出,然后让它们都等待70ns(等待信号有效)。对应S3C2440的Nor Flash控制器的读时序图,需要让地址信号A[24:0]、片选信号nGCS、读信号nOE同时发出,保持Tacc大于等于70ns。

查阅S3C2240的参考手册,Nor Flash是接在BANKCON0上的,因此只需要设置BANKCON0即可。
NorFlash时序图分析_第6张图片
可以看到Tacc上电初始值是111,对应14个clocks。系统上电采用12MHz的晶振,HCLK=12MHz,Tacc=(1000/12*14)≈1166ns,这个值很大,几乎可以满足所有Nor Flash的要求。

启动后,将HCLK设置为100MHz,T=1000/100=10ns,Tacc需要大于等于70ns,因此设置Tacc等于101,8个clocks即可。

2.2 代码编写

设置tacc的函数:

void bank0_tacc_set(int val)
{
	BANKCON0 = val << 8;	// 注意这里只能直接赋值,而不能采取先清空再赋值的操作
}

实验结论:

  • 输入0~4,Tacc小于70ns,无法读取Nor Flash上数据;
  • 输入4~7,Tacc大于70ns,可以读取Nor Flash上数据。

你可能感兴趣的:(Linux)