欢迎光临散文网 会员登陆 & 注册

12.3内存控制器与SDRAM_时序图分析示例

2020-08-19 19:05 作者:韦东山  | 我要投稿

视频教程👇

韦东山升级版全系列嵌入式免费视频_快速入门篇


这节我们分析一下我们了解时序图,信号之间是怎样一起工作的,以Nor Flash 为例。

2440和Nor Flash 之间有地址线,数据线,还有各种数据线连接。

Chapter12 lesson3 001.jpg


以Nor Flash为例,分析下如何设置它的时序。

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

Chapter12 lesson3 002.png

如图是Nor Flash芯片的读时序。

Chapter12 lesson3 003.png


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

Chapter12 lesson3 004.png

结合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即可。

Chapter12 lesson3 005.png


可以看到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即可。

在前面uart实验的源码基础上,新建init.c和init.h两个文件。

在init.c里面只需要设置BANKCON0寄存器即可。 

init.h进行函数声明。 

最后在主函数里面,通过串口获取输入的值,传入bank0_tacc_set()函数里,设置Tacc,然后再读取Nor Flash上的闪灯程序。 

实验效果:

输入0~4,Tacc小于70ns,无法读取Nor Flash上数据,LED不能闪烁。

输入4~7,Tacc大于70ns,可以读取Nor Flash上数据,LED不断闪烁,且值越小越快(区别不明显)。 


视频教程👇

韦东山升级版全系列嵌入式免费视频_快速入门篇


12.3内存控制器与SDRAM_时序图分析示例的评论 (共 条)

分享到微博请遵守国家法律