打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DM642之EMIFA模块
首先,EMIFA模块引脚图如下:
上图中,ACE3,ACE2,ACE1,ACE0为片选信号,即存储空间使能信号,每个空间的大小为256MB。
CE0: 0X8000 0000 ~ 0X8FFF FFFF
CE1: 0X9000 0000 ~ 0X9FFF FFFF
CE2: 0XA000 0000 ~ 0XAFFF FFFF
CE3: 0XB000 0000 ~ 0XBFFF FFFF
大概先说这么多,看下实际编程时的寄存器设置:
EMIFA模块共需要设置12个寄存器,按顺序如下:
  1. EMIFA全局控制寄存器 GBLCTL
  2. CE0存储空间控制寄存器 CECTL0
  3. CE1存储空间控制寄存器 CECTL1
  4. CE2存储空间控制寄存器 CECTL2
  5. CE3存储空间控制寄存器 CECTL3
  6. SDRAM控制寄存器 SDCTL
  7. SDRAM时序寄存器 SDTIM
  8. SDRAM扩展寄存器 SDEXT
  9. CE0次级控制寄存器 CESEC0
  10. CE1次级控制寄存器 CESEC1
  11. CE2次级控制寄存器 CESEC2
  12. CE3次级控制寄存器 CESEC3
其中比较重要的是1,2,3
GBLCTL我设置的值为0x52078,实现以下配置:
  • 使能ECLKOUT2,设置ECLKOUT2(见上图)的频率为1/2 EMIF输入时钟频率(EMIF输入时钟频率可以是 ECLKIN,1/4CPU时钟,1/6CPU时钟
  • 使能ECLKOU1
  • 使能CLKOUT4,,该管脚与GP1混用
  • 使能CLKOUT6,该管脚与GP2混用
CECTLx寄存器组比较重要的是字段 MTYPE [7:4]
对于C64x系列DSP:
MTYPE字段如下(该字段用于设置对应存储空间的模式)
0000b8位宽异步接口
0001b16位宽异步接口
0010b32位宽异步接口
0011b32位宽SDRAM
0100b32位宽可编程同步存储器
1000b8位宽SDRAM
1001b16位宽SDRAM
1010b8位宽可编程同步存储器
1011b16位宽可编程同步存储器
1100b64位宽异步接口
1101b64位宽SDRAM
1110b64位宽可编程同步存储器
由于VPM642开发板的CE0对应的是64位SDRAM,故CECTL0设置为 0xFFFF FFD3
而由于串口使用的是8位异步模式,故将cectl1[7:4]设置为0,其他字段是用于指定地址形状以及访问该空间的控制信号,这部分比较复杂具体可见:《TMS320C6000系列的CPU与外设》
SDCTL,SDTIM以及SDEXT寄存器用于设置SDRAM空间的刷新,时序以及寻址特性,具体可见上面的参考书。
实际的设置代码如下:
1.初始化
/*SEEDDM642的emifa的设置结构*/
EMIFA_Config Seeddm642ConfigA ={
0x00052078,/*gblctl EMIFA(B)global control register value */
/*将CLK6、4、1使能;将MRMODE置1;使能EK2EN,EK2RATE*/
0xffffffd3,/*cectl0 CE0 space control register value*/
/*将CE0空间设为SDRAM*/
0x73a28e01,/*cectl1 CE1 space control register value*/
/*Read hold: 1 clock;
MTYPE : 0000,选择8位的异步接口
Read strobe :001110;14个clock宽度
TA:2 clock; Read setup 2 clock;
Write hold :2 clock; Write strobe: 14 clock
Write setup :7 clock
-- ---------------
\ 14c /1c
\----------------/ */

0x22a28a22, /*cectl2 CE2 space control register value*/
0x22a28a42, /*cectl3 CE3 space control register value*/
0x57115000, /*sdctl SDRAM control register value*/
0x0000081b, /*sdtim SDRAM timing register value*/
0x001faf4d, /*sdext SDRAM extension register value*/
0x00000002, /*cesec0 CE0 space secondary control register value*/
0x00000002, /*cesec1 CE1 space secondary control register value*/
0x00000002, /*cesec2 CE2 space secondary control register value*/
0x00000073 /*cesec3 CE3 space secondary control register value*/
};
2.设置:
/*EMIFA的初始化,将CE0设为SDRAM空间,CE1设为异步空间
注,DM642支持的是EMIFA,而非EMIF*/

EMIFA_config(&Seeddm642ConfigA);
再贴一张DM642与SDRAM的接线示意图
SDRAS:SDRAM行地址开关
SDCAS:SDRAM列地址开关
SDWE:可写
SDCKE:SDRAM 时钟使能信号
CEn :片选
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
高斯平滑和阈值在dm642的运用
DM642启动过程分析
DSP的EMIF接口通信FPGA
C6455 CSL
DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)之一...
一种CCD图像采集系统的设计和实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服