外部设备连接接口包括外部存储器连接接口(EMIF)、主机接口(HPI)等。外部存储器接口主要用来同并行存储器连接,这些存储器包括SDRAM、SBSRAM、Flash、SRAM存储器等,外部存储器接口还可以同外部并行设备进行连接,这些设备包括并行A/D、D/A转换器、具有异步并行接口的专用芯片,并可以通过外部存储器接口同FPGA、CPLD等连接;主机接口主要用来为主控CPU和C55x处理器之间提供一条方便、快捷的并行连接接口,这个接口用来对DSP进行控制、程序加载、数据传输等工作。
       这里主要是EMIF。
EMIF输入输出信号图:
 
EMIF为3种类型的存储器提供了无缝接口:
1 异步存储器,包括ROM,FLASH,异步SRAM
2 同步突发静态存储器(SBSRAM
3 同步动态存储器(SDRAM
        异步存储器可以是静态随机存储器(SRAM)、只读存储器(ROM)和闪存存储器等存储器,在实际使用中还可以用异步接口连接并行A/D采样器件、并行显示接口等外围设备,但使用这些非标准设备时需要增加一些外部逻辑来保证设备的正常使用。
        在使用外部存储器接口时应区分字寻址和字节寻址之间的区别,当TMS320C55x访问数据时,CPU23位地址访问16位字,该方式下数据空间被分成128页,每页字长64KCPU访问程序代码时,用24位地址访问8位字节,DMA控制器访问存储器时也采用字节寻址方式。
        如果多个请求服务同时到达,EMIF会根据每个请求优先级来进行处理。最高为HOLD,最低为刷新。
        对EMIF编程时,必须了解外部存储器地址如何分配给片使能空间,即CE空间,每个CE空间可以同那些类型的存储器连接,以及用那些寄存器位来配置CE空间。
        TMS320C55x的外部存储器映射在存储空间的分布,相应于EMIF的片选使能信号,例如CE1空间的存储器,则必须将其片选引脚连接到EMIF的CE1引脚。当EMIF访问CE1空间时,驱动CE1变低。

数据页
字寻址方式地址范
16进制)
外部存储器
字节寻址方式地址范围
16进制)
2页后64K字节
3-31
02 8000-1F FFFF
CE0空间
4M-320K)字节
05 0000-3F FFFF
32-63 20 0000-3F FFFF
CE1空间
4M字节
40 0000-7F FFFF
64-95 40 0000-5F FFFF
CE2空间
4M字节
80 0000-BF FFFF
96-127 60 0000-7F FFFF
MP/MC=0
CE3空间长度为
4M-32K)字节

剩余地址空间被片上ROM

MP/MC=1
CE3空间长度为4M字节
C0 0000-FF FFFF
TMS320C5510外部存储器映射中的最高地址单独分配给CE3空间,或由CE3及内部的DSP ROM共享。这些地址的分配由CPU状态寄存器ST3_55中的MPNMC位来决定。在DSP复位期间,MPNMC值取决于DSP的NP/MC引脚的信号电平。
 
可以使用全局控制寄存器EGCR和每个CE空间控制寄存器来配置CE空间。
对于每个CE空间,必须设置控制寄存器1中的以下域:
MTYPE 指定存储器类型
MEMFREQ 决定存储器信号的频率
MEMCEN 决定CLKMEM引脚是输出存储器时钟信号,还是被拉成高电平
 
一定要对全局控制寄存器写如下控制位。
WPE 对所有CE空间,使能或者禁止
NOHOLD 对所有CE空间,使能或禁止HOLD请求
 
 
外部寄存器接口硬件连接与配置
 
        外部存储器接口所支持的异步存储器接口、同步突发静态存储器接口和同步动态存储器接口都支持程序代码访问以及32位宽、16位宽和8位宽数据访问。外部存储器的4个片选空间都可以单独进行设置,设置的内容包括存储器类型、存储器宽度、读写时序参数等内容。本节将分别给出不同接口的硬件连接以及参数的设置。

1.异步存储器接口    
         异步存储器的类型多种多样,它们既包括静态随机存储器、闪存存储器、只读存储器等,又有先入先出存储器、双端口存储器等,这些存储器有着不同的特点,可以根据需要灵活选用。
         外部存储器接口所支持的异步存储器接口、同步突发静态存储器接口和同步动态存储器接口都支持程序代码访问以及32位宽、16位宽和8位宽数据访问。外部存储器的4个片选空间都可以单独进行设置,设置的内容包括存储器类型、存储器宽度、读写时序参数等内容。
          AM29LV320D是一种大容量的闪存存储器,存储容量可以达到2M/4M字节,数据总线宽度可以是8位或16位,下面给出AM29LV320DDSP的连接关系示意图。 

 
 
      从图中可以看到C55x处理器与AM29LV320D的连接用了数据线D7-D0,在这种连接方式下AM29LV320DDQ15/A-1引脚应当作为地址线A-1来使用,处理器的地址总线A[21:0]接到AM29LV320DA[20:-1]AM29LV320DBYTE#号接地,RESET#接到系统复位信号,写保护/快速编程WP#/ACC引脚接高电平。   
      AM29LV320D的读写时序,如图5-5和图5-6所示,从时序图中可以看到该芯片的一个读写周期最短为90ns120ns,而数字信号处理器的CLKOUT时钟DSP主时钟的1/11/21/31/41/51/61/71/8,如果DSP运行在200MHz,则DSP一个时钟周期为5ns,如果不能让DSP的读写时序同AM29LV320D的读写时序相匹配,就无法实现正确的读写。调整DSP的读写时序有两种方法,一种是将AM29LV320DRY/BY信号接到DSPARDY信号上,通过硬件等待信号实现二者读写时序的同步,另外一种方法是通过软件设置外部存储器接口寄存器实现正确读写。方法1使用简单,但灵活性不强,如果DSP通过外部存储器接口连接多个芯片,这种方法就不能使用,软件设置的方法灵活、方便,推荐使用该种方法设置外部存储器接口的读写时序。
CLKOUT4分频时,设置建立时间为1个时钟周期,选通时间为4个时钟周期,保持时间为2个时钟周期就可以正确读取AM29LV320D存储器。
外部存储器接口为每个片选空间都提供了独立的片选控制寄存器,通过这些寄存器可以设置寄存器类型,读/写时序以及超时时钟周期数,具体可参见下表
片选控制寄存器1CEx_1
字段 数值 说明
15~13 Reserved 保留
14~12 MTYPE
000b
001b
010b
011b
100b
101b~111b
存储器类型
8位宽异步存储器
16位宽异步存储器
32位宽异步存储器
32位宽同步动态存储器(SDRAM)
32位宽同步静态突发存储器(SBSRAM)
保留
11~8 READ SETUP 1~15 读建立时间
7~2 READ STROBE 1~63 读选通时间
1~0 READ HOLD 0~3 读保持时间
片选控制寄存器2CEx_2
字段 数值 说明
15~14 EXTENED HOLD READ 0~3 读延长保持时间
13~12 EXTENED HOLD WRITE 0~3 写延长保持时间
11~8 WRITE SETUP 1~15 写建立时间
7~2 WRITE STROBE 1~63 写选通时间
1~0 WRITE HOLD 0~3 写保持时间
片选控制寄存器3CEx_3
字段 数值 说明
15~8 Reserved 保留
7~0 TIMEOUT
0
 N255
超时字段(同步存储器超时字段无效)
超时功能被禁止

ARDY信号为低超过N个时钟周期,则发生超时错误

 
因此,使用异步存储器要注意的问题是:
1 外部存储器连接信号
2 EMIF对异步存储器的配置
3 EMIF异步读操作
4 EMIF异步写操作
5 随就绪信号(ARDY)插入的额外周期
 
2.同步突发静态存储器(SBSRAM)       同步突发静态存储器是一种高密度、高速的存储器,同同步动态存储器相比,同步静态存储器不需要刷新,访问更加方便、快捷。TMS320C55x外部存储器接
支持32位宽无校验同步突发管道型静态存储器,同步突发静态存储器的工作频率在与CPU时钟同频或CPU时钟频率的1/2
        SBSRAM有流水和流通两种类型,但EMIF只支持流水型,在相同吞吐量的情况下,可以工作在更高的频率。
        同步突发静态存储器所使用的信号包括数据总线D[0..31]、地址总线A[21..0]、片选信号CE0-CE3、字节使能信号BE0-BE3,此外还有SBSRAM地址选通信号
SSADS、输出使能信号SSOE、写使能信号SSWE和存储器接口时钟CLKMEM

       接下来给出C55x外部存储器接口同32位无校验管道型SBSRAM的连接图。图中SBSRAM占用CE0空间,SBSRAMMODE信号接到低电平使SBSRAM工作在线性突发模式,其他未用的SBSRAM信号如ZZADVADSPGW信号都接成非活动状态。
       如果所用的SBSRAM是有校验型存储器,连接时则应注意SBSRAM的校验信号DQP[d:a]应当接地以减少功率消耗。
      如果要使用SBSRAM的电源关闭模式,可以将SBSRAMZZ引脚C55x的通用输入输出引脚相连接,通过通用输入输出引脚控制SBSRAM是否进入电源关闭模式。
        控制SBSRAM接口的寄存器包括EMIF全局控制寄存器和片选控制寄存器CEx_1,接下来给出SBSRAM所需设置字段表。
SBSRAM需要设置字段
所在寄存器 字段名称 数值 说明
片选控制寄存器 14~12 MTYPE 100b 32位宽SBSRAM
全局控制寄存器 11~9 MEMFREQ
000b
001b
CLKMEM频率
CLKOUT频率
CLKOUT频率除2
全局控制寄存器 7 WPE
0
1
后写使能
禁止后写
后写使能
全局控制寄存器 5 MEMCEN
0
1
存储器时钟使能
CLKMEM保持高电平
CLKMEM输出使能
全局控制寄存器 0 NOHOLD
0
1
外部保持控制
允许外部保持
禁止外部保持
 
3.同步突发动态存储器(SDRAM)
 
TMS320C55x外部存储器接口支持16位、32位宽,64M位和128MSDRAMSDRAM可以工作在C55x频率的1/21/1
SDRAM的引脚映射和寄存器配置表
SDRAM
及排列方式
使用芯
数量
配置位
占用CE
空间数
边界/行地址 列地址
SDACC SDSIZE SDWID SDRAM EMIF SDRAM EMIF
64M
4M x16
1 0             0              0 2 BA[1:0][11:0]
A[14:12]
SDA10A[10:1]
A[7:0] A[8:1]
64M
4M x16
2     1              0              0 4 BA[1:0][11:0]
A[15:13]
SDA10A[11:2]
A[7:0] A[9:2]
64M
2M x32
1     1              0              1 2 BA[1:0[10:0]
A[14:13]
SDA10A[11:2]
A[7:0] A[9:2]
64M
2M x32
2     1              0              1 4 BA[1:0[10:0]
A[14:13]
SDA10A[11:2]
A[7:0] A[9:2]
128M
8M x16
1     0              1              0 4 BA[1:0][11:0]
A[14:12]
SDA10A[10:1]
A[8:0] A[9:1]
128M
4M x32
1     1              1              1 4 BA[1:0][11:0]
A[15:13]
SDA10A[11:2]
A[7:0] A[9:2]
 
SDRAM接口专用信号包括SDRAM行选通信号SDRAS、列选通信SDCAS和写使能信号SDWESDA10信号在ACTV命令时作为行地址信号,
在读写操作时作为预加电使能信号,在DCAB命令下为高,保持模式下为高阻态。
        SDRAM操作时需要一系列命令来支持其运行,下面给出命令列表 
C55x EMIF接口SDRAM命令
命令 说明
DCAB 关闭所有边界
ACTV 打开所选择边界和所选择行
READ 输入起始列地址开始读操作
WRT 输入起始列地址开始写操作
MRS 配置SDRAM模式寄存器
REFR 自动循环刷新地址
NOP 不进行操作
 
在进行SDRAM操作时需要修改EMIF全局控制寄存器和片选控制寄存器1,接下来给出SDRAM所需设置字段表。
 
所在寄存器 字段名称 数值 说明
全局控制寄存器 11~9 MEMFREQ
000b
001b
CLKMEM频率
CLKOUT频率
CLKOUT频率除2
全局控制寄存器 7 WPE
0
1
后写使能
禁止后写
后写使能
全局控制寄存器 5 MEMCEN
0
1
存储器时钟使能
CLKMEM保持高电平
CLKMEM输出使能
全局控制寄存器 0 NOHOLD
0
1
外部保持控制
允许外部保持
禁止外部保持
片选控制寄存器1 14~12 MTYPE 011b 32位宽或16位宽SDRAM
 
除了设置以上寄存器以外还需要设置SDRAM控制寄存器 
SDRAM控制寄存器1
字段 初始值 说明
15~11 TRC 1111b 从刷新命令REFRREFR/MRS/ACTV命令间CLKMEM周期数
10 SDSIZE 0
SDRAM宽度
016位宽  132位宽
9 SDWID 0
SDRAM容量
064M  1128M
8 RFEN 1
刷新使能
0:禁止刷新  1:允许刷新
7~4 TRCD 0100 ACTV命令到READ/WRITE命令CLKMEM周期数
3~0 TRP 100 DCAB命令到REFR/ACTV/MRS命令CLKMEM周期数
SDRAM控制寄存器2
字段 初始值 说明
10 SDACC 0
0: SDRAM数据总线接口为16位宽
1: SDRAM数据总线接口为32位宽
9~8 TMRD 11b ACTV/DCAB/REFR延迟CLKMEM周期数
7~4 TRAS 1111b SDRAS信号有效时持续CLKMEM周期数
3~0 TACTV2ACTV 1111b SDRASSDRAS有效延迟CLKMEM周期数
 
SDRAM周期寄存器和计数寄存器用来设置SDRAM的刷新周期,其中周期寄存器存放刷新所需CLKMEM时钟周期数,计数寄存器存放刷新计数器当前计数值。
 
 
外部寄存器接口的软件设置
 
应用芯片支持库函数对外部寄存器接口进行设置首先要在头文件中包含csl_emif.h,接下来声明EMIF配置结构:
EMIF_Config Config_EMIF = {
0x0281,  /* EMIF全局控制寄存器*/
               /* CLKMEM=OFF */
               /*HOLD_disabled */
0xFFFF, /* EMIF初始化寄存器*/
0x100c, /* ce01 */
/*MTYPE=001B 16 位异步存储器
  READ START=0000b 读建立周期为0
  READ STROBE=000011b 读选通周期为3
  READ HOLD=01b 读保持周期为1
*/
0x0FFF, /* ce02 */
/*READ EXT HOLD=00b
  WRITE EXT HOLD=00b
  WRITE SETUP=1111b 写建立周期为=15
  WRITE STROBE=111111b 写选通周期为=63
  WRITE HOLD=11b 写保持周期为=3
*/
0x00FF, /* ce03 */
/*TIMEOUT=0XFF,timeout=255*/
0x013E, /* ce11 */
/*MTYPE=000B 8 位异步存储器
  READ START=0001b读建立周期为1
  READ STROBE=001111b读选通周期为15
  READ HOLD=10b读保持周期为2
*/
0x0FFF, /* ce12 */
/*READ EXT HOLD=00b
  WRITE EXT HOLD=00b
  WRITE SETUP=1111b写建立周期为15
  WRITE STROBE=111111b写选通周期为63
  WRITE HOLD=11b写保持周期为3
*/
0x00FF, /* ce13 */
0x1105, /* ce21 */
/*MTYPE=001B 16位异步存储器
  READ START=0001b 读建立周期为1
  READ STROBE=000001b 读选通周期为1
  READ HOLD=01b 读保持周期为1
*/
0x0105, /* ce22 */
/*READ EXT HOLD=00b
  WRITE EXT HOLD=00b
  WRITE SETUP=0001b 写建立周期为1
WRITE STROBE=000001b写选通周期为1
  WRITE HOLD=01b写保持周期为3
0x00FF, /* ce23 */
0x110D, /* ce31 */
/*MTYPE=001B 16位异步存储器
  READ START=0001b读建立周期为1
  READ STROBE=000011b读选通周期为3
  READ HOLD=01b读保持周期为1
*/
0x010D, /* ce32 */
/*READ EXT HOLD=00b
  WRITE EXT HOLD=00b
  WRITE SETUP=0001b写建立周期为1
  WRITE STROBE=000011b 写选通周期为3
  WRITE HOLD=01b 写保持周期为1
*/
0x00FF, /* ce33 */
0x07FF, /* sdc1 */
0x0FFF, /* sdper */
0x07FF, /* init */
0x03FF /* sdc2 */
/*没有SDRAM*/
};
接下来调用EMIF配置函数完成配置过程:
EMIF_config(&Config_EMIF);

【DSP开发】6455EMIF的更多相关文章

  1. DSP开发资源总结,经典书籍,论坛

    OMAP4开发资源总结: 一.TI OMAP4官网介绍: http://www.ti.com.cn/general/cn/docs/wtbu/wtbuproductcontent.tsp?templa ...

  2. Davinci DM6446开发攻略——DSP开发工程建立

    前段时间一直忙一个项目,同时在生活上时时提防和抵抗中国地沟油.国外核心转基因调和油.大豆油.色拉油.大米玉米.可怕的喂药鱼.药水泡农药喷无虫咬的青菜,所以没时间打理自己的博客,让开发攻略停顿了一段时间 ...

  3. 你应该知道的4个DSP开发支持库

    引言 在dsp开发中,为了节省开发时间和难度,TI将一些成熟的算法封装为模块,供开发者使用.如果能充分利用这些算法支持库,对于加快dsp开发进程与提高代码质量.稳定性有非常大的帮助. Digital ...

  4. 【DSP开发】利用CCS5.4开发基于DSP6455的JPEG2000图像解压缩过程

    [DSP开发]利用CCS5.4开发基于DSP6455的JPEG2000图像解压缩过程 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:前端是时间基于VS ...

  5. 【DSP开发】DSP能用VS2010生成的链接库文件吗?

    [DSP开发]DSP能用VS2010生成的链接库文件吗? 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:可能这个问题让行家看上去就会莞尔一笑,但是很多 ...

  6. 【DSP开发】如何获得浮点型的数据的IEEE的表示

    [DSP开发]如何获得浮点型的数据的IEEE的表示 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 浮点数的存储规范,由IEEE指定的,具体的规范文件是:IE ...

  7. 【DSP开发】CCS数据格式 load

    CCS支持的.dat文件详解(转载于hellodsp) CCS支持的.dat文件的格式为: 定数 数据格式 起始地址 页类型 数据块大小 1651 其后是文件内容,每行表示一个数据. 定数固定为&qu ...

  8. 【DSP开发】gel文件编写

    以下转载自:http://blog.csdn.net/henhen2002/article/details/4573447 GEL--通用扩展语言,无类型语言,只有int类型,当CCS运行时首先执行这 ...

  9. 【Linux开发】【DSP开发】利用CCS6.1生成out文件的同时生成bin文件

    [Linux开发][DSP开发]利用CCS6.1生成out文件的同时生成bin文件 标签:[DSP开发] [Linux开发] 尝试在windows上安装的CCS6.1开发AM4378-Linux下的应 ...

  10. 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发

    针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...

随机推荐

  1. JSON 初探

    Json是什么? JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小 ...

  2. 「数据结构与算法(Python)」(三)

    栈结构实现 栈可以用顺序表实现,也可以用链表实现. 栈的操作 Stack() 创建一个新的空栈 push(item) 添加一个新的元素item到栈顶 pop() 弹出栈顶元素 peek() 返回栈顶元 ...

  3. UPS电源运用在数据中心,有什么优势?

    UPS电源是每个数据中心为了保证服务器与计算设备不被电力线干扰与电能质量问题所影响的设备. 1.电源选择 运用在线式或是后备式UPS电源,均需依照微机设备的需求与经济条件所决定.若是经济条件相对较好, ...

  4. mysql查看当前所有数据库中的表大小和元信息information_schema

    查看所有mysql数据库表和索引大小 mysql查看当前所有的数据库和索引大小 ,),' mb') as data_size, concat(,),'mb') as index_size from i ...

  5. jQuery 操作一览表

    js获取方法要比jq的方法麻烦的多,主要是因为FF浏览器,因为FF浏览器也会把换行当作dom元素,下面跟着小编一起来学习js jquery获取当前元素的兄弟级 上一个 下一个元素的,需要的朋友一起来学 ...

  6. mysql自增id的下一个值

    SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name='nst_t_department' AND table_s ...

  7. Material icons 全图标一览

    Material icons 全图标一览 2018年12月17日 16:52:55 boywcx 阅读数 3090   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  8. Fltiss项目的架构、包名的定义和类的划分

    这是项目的一览 首先Web根目录. 除了WEB-INF以外,还有css,img,js,lib目录,这四者都是静态资源. 由于客户端无法访问WEB-INF下的内容,所以将它们放置在了Web根目录下. 而 ...

  9. uiautomatorviewer真机使用报错Error obtaining UI hierarchy

    Mac OS+Android真机 8.0在使用uiautomatorviewer获取界面时报Error obtaining UI hierarchy Reason: Error while obtai ...

  10. 用docker 下载NGINX nginx安装错误:No package nginx available

    docker 内安装 nginx,提示 解决方案: 1,备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.rep ...