DSP28335的XINTF

                                               XINTF

(如有错误,请指正,谢谢)

28335的XINTF是一个并行非复用异步总线,与2812不同的是zone7非复用,数据总线地址总线宽度不同,而且支持DMA操作(2812没有DMA)。XINTF可以配置成16位数据模式和32位数据模式。

1.       XINTF各个引脚以及相关模式的说明

DSP28335的XINTF

 

                                                                                   图1

DSP28335的XINTF

                                                          图2

 

DSP28335的XINTF

XREADY: 外部输入,在完成访问后,外部的设备拉高此引脚通知DSP。可以配置忽略此引脚或使用次引脚,忽略与否会导致操作时序的时间有变化。具体可看数据手册的配置说明。

XD32):32位的数据数据总线,配置为16位时,只用0~15

XA20):20位地址线。比较特殊的是XA0:16位格式时,XA0为地址线的最低位,为0表示偶数地址,为1表示奇数地址。32位格式时,XA0被设置为写使能信号。如图2所示,由于外扩的存储设备都是16位的,所以需要两个存储设备分别存储32位的低16位,和高16位。当读操作时,相应的片选信号zone(0,6,7)拉低,两个16为存储器同时片选,读信号拉低,两个16位存储器将各自的数据放到32位数据总线上,dsp读取数据,操作完毕。当写操作发生时,XA0变为XWE1,控制高16位的写。如下表所示。

DSP28335的XINTF

 

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的设备,总线没有被释放。

DSP28335的XINTF

2.       DSP流水线的写跟随读保护

DSP28335的XINTF

 

以上是没有保护的读写顺序,由汇编程序可以看出,程序的顺序是写之后读,但实际执行起来变成了读之后写。在部分区域内,DSP28*系列通过硬件对以上操作进行了保护,XINTF0就属于被保护的区域,保护之后读写时序变为如下图所示,恢复正常。

DSP28335的XINTF

对相同地址的读写操作,28系列的DSP均有保护,保证读写顺序正常。上述的保护机制针对的是:读写操作地址不同,但地址都在同一个块区,且这个块区受读写保护。

当外设寄存器被映射到一个区域内,如果修改寄存器A值的会改变寄存器B的值,如果没有写跟随读保护,那按照默认的读写顺序,先读取了B的值,再更改A的值,这样结果就错了。因为期望的是先修改A,再读出因修改了A而改变的B的值。写跟随读保护会用硬件在写操作之后,增加等待时间,直到A写完成后,再去读取B的值。XINTF的zone0就有此保护机制,因此,zone0通常不被用作对外部memory的操作,而经常被用作对外部外设寄存器的操作。

注意:更改XINTF寄存器的程序不能在XINTF中执行。

 

 

 

 

3.       XINTF时钟的以及读写时序

DSP28335的XINTF

根据上图配置XINTF时钟,由上图可以看出,读写时序中的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。

 

如果配置了采样XREADY(高有效),则时序变化如下:

DSP28335的XINTF

DSP28335的XINTF

(实在懒得翻译)

DSP28335的XINTF

 

4.       XBANK

当访问从XINTF的zone变为XINTF的另一个zone,一个慢速设备需要额外的周期来释放总线。周期数在XBANK的寄存器中配置。

 

配置的注意事项如下:

DSP28335的XINTF

XBANK配置的时间必须小于前一个访问区域的周期数。由XBANK寄存器确定哪个区域需要配置延迟时间(只能配置0,6,7中的一个区域需要延迟时间)以及延迟多少时间,下面以配置zone7需要延迟时间为例:

DSP28335的XINTF

 

DSP28335的XINTF

5.       读写时序图

28335的数据手册最后部分有详细的图示

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值