社区导航

 

搜索
查看: 572|回复: 0

[分享] DSP28335的XINTF

[复制链接]

3420

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2020-1-6 18:19 | 显示全部楼层 |阅读模式

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

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

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

DSP28335的XINTF

image.png

                                                                                   图1

DSP28335的XINTF

              image.png                                             图2

image.png

DSP28335的XINTF

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位的写。如下表所示。

image.png

 

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

image.png

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

image.png

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

image.png

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

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

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

 

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

image.png

根据上图配置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(高有效),则时序变化如下:

image.png

 

image.png

 

4.       XBANK

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

 

配置的注意事项如下:

image.png

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

image.png

 

image.png

5.       读写时序图

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


 



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/3 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-6-5 03:39 , Processed in 0.089078 second(s), 22 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表