现在需要使用S3C2440驱动VPC3,基本的思想是将VPC3当做是S3C2440的SRAM,通过总线的方式来访问必定是最快并且稳定性高的方法,想要达到该目的,首先需要确定硬件的连接方式:
1.如果采用总线的话,其数据线和地址线是否需要复用?
根据S3C2440的手册可以看出,其地址线和数据线是分开的,其分别位于BANK B,BANK D等等..数据线则多位于BANKE,BANKF等,从高速通信来说,不复用的话读写速度会更高些,而VPC3不仅支持支持复用,也支持分开,其具体是选择通过23号引脚MODE,其低电平的话选择的是不复用的形式,高电平选择复用,因此该引脚需要拉低,选择80C165/166模式。vpc3
2.究竟是选择同步模式还是异步模式?
根据VPC3的手册介绍,在同步Intel模式时,VPC3将会在ALE的下降沿锁存地址,同时,内部片选信号由地址线的最高位产生,在XRD的下降沿和XWR的上升沿可以对VPC3进行访问。vpc3
在异步Intel模式时,VPC3更像是一个具有准备逻辑的存储器,访问时间取决于访问类型,同样,也是XRD的下降沿和XWR的上升沿开启对VPC3的访问。
在同步摩托罗拉模式中,如果CPU是由VPC3的时钟驱动的,那么VPC3输出的时钟必须要比E_CLOCK大至少4倍,也就是说VPC3的CLK引脚上面的时钟脉冲至少要是期待的系统时钟(E_CLOCK)的10倍,也就是说,如果分频引脚(DIVIDER)接地,即4分频的话,那么E_CLOCK就只能为3MHZ了。该模式中,读请求是由E_CLock的上升沿产生的,写请求的是由E_CLock的下降沿产生的
在异步摩托罗拉模式中,AS的下降沿开启读通信,AS的上升沿开启写请求。
根据S3C2440的手册,其是没有同步模式的,只有异步模式(坑爹啊!哥的板子都画了才注意到!X!)
选择intel模式即可。
那么如果使用4Kb模式的话,应该XCS(即引脚1)作为XCS,作为片选信号
2号引脚应该当做是XWR来使用,因为使用的是Intel模式
3号引脚可接可不接,因为不涉及到摩托罗拉模式,因此无所谓,为了保证可靠性,上拉或者下拉均可
4号引脚作为XRD使用
8号引脚应该通过1k的电阻下拉,选择Intel模
式
13号引脚可以接,也可以不接,一般通过一个电阻将其与LED相连,表征DP状态
14号引脚需要引出,因为使用的是异步模式
23号引脚应该通过1k电阻拉低,使得数据线和地址线分开
24号引脚需要将其作为AB11来使用
其余的则按照地址线和数据线来使用即可
3.VPC3如何与S3C2440相连?
虽然我们现在已经知道了要使用异步Intel模式,但是具体的如何相连需要考虑
异步Intel模式中,VPC3与CPU的接口主要有以下几个:
AB11:0
DB7:0
XRD
XWR
XCS
XREADY
之所以是AB11是因为启动了4Kb模式,该模式需要在寄存器里面进行设置
而S3C2440的外部存储器设置就不那么简单了,因为其是以字节为单位进行读写的,而VPC3的数据线正好也是8根,根据外部RAM的接线原则,RAM的AB0接S3C2440的ADDR?是由其位宽决定的,VPC3只有8位,因此可以直接将AB0连接ADDR0,至于XRD,XWR连接相应的nWE,nOE即可,另外是XCS则连接nGCSn,需要注意的是XREADY,这个引脚该如何连接呢?
从VPC3的时序图中可以看出,VPC将会产生一个和系统时钟同步的的准备信号,即XREADY信号,当读或者写信号失效的时候,该信号也失效,然后数据总线转而变为三态。
因此,从这里面可以看出,XREADY并不是必须得,在没有XREADY接口的S3C2440上暂时不将其接出,或者为了保险起见,将其引出至ARM的一个普通GPIO上。
3.时序的保证
VPC的手册上已经对读写的时序有了要求,最高的通信速率大概可以达到10M,因此需要加入一定的分频,使其能够正常的通信,另外配置相应的寄存器可以使得其延时相应的时间。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-42523-1.html
站坑里宋