对XINTF进行操作实际就是根据时序表配置时序!!。
http://blog.sina.com.cn/s/blog_6fd043150102y3d0.html先看这个
外部接口XINTF采用非复用异步总线,可用于扩展SRAM、FLASH、ADC、DAC模块等。XINTF接口分别映射到3个固定的存储器映射区域,模块的信号如图所示。
XREADY:外部输入,在完成访问后,外部的设备拉高此引脚通知DSP。可以配置忽略此引脚或使用次引脚,忽略与否会导致操作时序的时间有变化。具体可看数据手册的配置说明。
XD(32):32位的数据数据总线,配置为16位时,只用0~15
XA(20):20位地址线。比较特殊的是XA0:16位格式时,XA0为地址线的最低位,为0表示偶数地址,为1表示奇数地址。32位格式时,XA0被设置为写使能信号。如图2所示,由于外扩的存储设备都是16位的,所以需要两个存储设备分别存储32位的低16位,和高16位。当读操作时,相应的片选信号zone(0,6,7)拉低,两个16为存储器同时片选,读信号拉低,两个16位存储器将各自的数据放到32位数据总线上,dsp读取数据,操作完毕。当写操作发生时,XA0变为XWE1,控制高16位的写。
XHOLD(输入)与XHOLDA(输出):其它访问memory的设备通过XHOLD引脚与dsp通信,为低表示要方为memory,希望DSP释放总线,为高则不影响DSP。DSP通过XHOLDA告诉外部设备是否已经释放了总线,为低表示响应外部设备的要求,释放了总线。为高则表示没有释放总线。
XINTCNF2寄存器的HOLD位为0时,外部其它设备通过拉低XHOLD引脚通知cpu放弃总线,当cpu释放总线后(总线为高阻态),cpu通过拉低XHOLDA告诉外部设备总线已经释放,外部设备可以访问外部的memory。
XINTCNF2寄存器的HOLD位为1时,无论引脚XHOLD是高还是低,都不会释放总线,而且会始终拉高引脚XHOLDA,告诉外部其它要访问memory的设备,总线没有被释放。
XINTF每个区域都有一个片选信号线,当对某个区域进行读/写访问时,就要将信号线置低。
XINTF的存储器的3个区域中的任何一个都可通过编程设定独立的等待时间,选通信号建立时间,及保持时间,每个区域的读写操作都可以配置成不同的等待时间。
读写时序中的LEAD/ACTIVE/TRAIL均以时钟XTIMCLK为基准。
XINTF的读写时序可以分为三个部分:LEAD/ACTIVE/TRAIL
LEAD:片选信号拉低,访问地址放置到地址总线上,最高可设置为6个XTIMCLK时钟周期。
ACTIVE:(1)读操作:读使能信号拉低,把数据总线上的数据所存到DSP。
(2)写操作:写使能信号拉低,并将数据放置到数据总线上。
如果XINTF区域被配置为采样XREADY信号,外部设备会通过控制XREADY信号,在XINTF通过寄存器已经配置好的ACTIVE等待时间的基础上,进一步扩展XINTF的ACTIVE等待时间。如果不采样XREADY信号,实际的ACTIVE周期也比配置的多1个XTIMCLK。默认情况下,ACTIVE被配置为14个XTIMCLK。
TRAIL:片选信号依然为低,但读/写使能信号已经恢复为高。默认情况下,此阶段倍配置为6个XTIMCLK。
当访问从XINTF的zone变为XINTF的另一个zone,一个慢速设备需要额外的周期来释放总线。周期数在XBANK的寄存器中配置。
另外可以通过XREADY信号线延长等待时间,XINTF接口的这些特性允许其访问不同速率的外部存储器设备。
通过XTIMINGx寄存器可配置每个区域的等待时间及选通信号的建立和保持时间。
XINTF接口的访问时序是以内部时钟XTIMCLK为基准的,XTIMCLK信号频率可配置为系统时钟SYSCLKOUT的频率或其一半。
CPU和CCS通过仿真器直接访问XINTF连接的外部存储器。XINTF的3个区域都有独立的片选信号线,并且各区域的读/写时序可以单独配置,当相应的片选信号线被选中(低电平有效)时,该区域可以被访问。
F28335的地址总线为20位,采用统一寻址,被所有区域共用,总线上的地址由所要访问的具体区域决定:
1.区域0使用的外部地址范围为0x00000~0x00FFF,也就是说,如果要对区域0的第一个存储单元进行操作,需要将0x00000送到地址线,并将片选信号XZCS0(低电平有效)拉低,如果要对区域0的最后一个存储单元进行操作,则将0x00FFF送到地址总线,同样区域0的片选信号线要选中。
2.区域6和区域7的地址范围为0x00000~0xFFFFF,其余同上。
在实际使用XINTF时,需要根据3点:(1)F28335的实际工作频率、(2)XINTF的时序特性以及(3)外部设备或存储器的时序要求来进行配置。因为XINTF配置参数的改变会影响相关的访问时序,所以配置代码不能从XINTF扩展的区域执行。
1)XINTF的配置程序
在XINTF配置或修改时钟寄存器的值期间,不允许程序中访问XINTF相关区域。这包括CPU流水线上的指令,XINTF写缓冲区域的写访问,数据的读/写,预取指令操作与DMA访问。为了确定以上这些操作可遵循以下步骤:
确认DMA没有访问XINTF
按照图4中流程修改配置寄存器的值
2)时钟信号
XINTF模块使用两路时钟信号,XTIMCLK和XCLOUT,图5给出了这两路时钟信号与系统时钟信号SYSCLKOUT的关系。
XINTF区域的所有访问操作都是基于XTIMCLK时钟为基准的,因此配置XINTF时,需要配置XTIMCLK与系统时钟SYSCLKOUT的关系。通过XINTFCN2寄存器中的XTIMCLK控制位可将XTIMCLK时钟频率设定为与SYSCLKOUT时钟频率相同或为其一半,默认情况为其一半。
所有的XINTF操作都由XCLKOUT的上升沿开始(XTIMCLK不输出,XCLKOUT输出),通过XINTFCN2寄存器中的CLKMODE控制位可将XCLKOUT的时钟频率设定为与XTIMCLK时钟频率相同,或为其一半;为减小系统噪声,通过将XINTCN2[CLKOFF]置1可禁止XCLKOUT从引脚输出。
3)写缓冲器
XINTCNF2配置
4)XINTF访问的建立、有效、跟踪等待时间
XINTF区域的读写访问时序可分为3个部分:建立时间、有效时间及跟踪时间。
通过配置每个区域的XTIMING寄存器可为该区域访问时序的3个部分设定相应值即各个部分的等待时间,等待时间以XTIMCLK周期为最小单位,每个区域的读访问时序和写访问时序可以独立配置。
根据系统需要,可配置合适的建立、有效、跟踪时间,以满足不同外设需要。在配置过程中,需要考虑如下因素:
1.读写访问3个阶段的最小等待时间要求
2.XINTF的读/写时序
3.外部存储器或设备的时序要求
4.DSP器件与外部器件之间的附加延时。
5)区域的XREADY采样
如果XINTF模块采用XREADY采样功能,那么外设可扩展XINTF访问有效期间的时间。XINTF的所有区域共用一个XREADY输入信号线,但每个区域可单独配置为使用或不使用XREADY采样功能。每个区域的采样方式有两种:
1.同步采样:XREADY信号在总的有效时间结束前将保持1个XTIMCLK周期时间的有效电平
2.异步采样:XREADY信号在总的有效时间结束前将保持3个XTIMCLK周期时间的有效电平
无论同步还是异步,如果采样到的XREADY信号为低电平,那么访问时间将增加一个XTIMCLK周期,并且在下一个XTIMCLK周期会对XREDAY信号重新采样。以上过程反复进行。
6)带宽
可配置为16/32位
7)XBANK区域切换配置
当访问操作从一个区域跨域到另一个区域,为了及时释放总线,并让其他设备获得访问权,低速设备需要额外的几个周期,通过XBANK寄存器配置。
XINTF支持以DMA方式访问片外程序或数据。这个过程由输入信号XHOLD(加横杠)与输出信号XOHLDA(加横杠)完成。