一、EMIF 接口上的I/O接口扩展
一.实验原理
1.TMS320VC5509DSP 的EMIF 接口:
存储器扩展接口(EMIF)是DSP 扩展片外资源的主要接口,它提供了一组控制信号和地址、
数据线,可以扩展各类存储器和寄存器映射的外设。
-ICETEK-VC5509-A 评估板在EMIF 接口上除了扩展了片外SDRAM 外,还扩展了指示灯、
DIP 开关和D/A 设备。具体扩展地址如下:
400800-400802h: D/A 转换控制寄存器
400000-400000h: 板上DIP 开关控制寄存器
400001-400001h: 板上指示灯控制寄存器
-与ICETEK-VC5509-A 评估板连接的ICETEK-CTR 显示控制模块也使用扩展空间控制主要
设备:
602800-602800h: 读-键盘扫描值,写-液晶控制寄存器
600801-600801h: 液晶辅助控制寄存器
602801h 、600802h: 液晶显示数据寄存器
602802-602802h: 发光二极管显示阵列控制寄存器
2.指示灯扩展原理
3.实验程序流程图:
二.实验步骤
1.实验准备:
关闭实验箱上扩展模块和信号源电源开关。
2.设置Code Composer Studio 2.21 在硬件仿真(Emulator)方式下运行。
3.启动Code Composer Studio 2.21:
选择菜单Debug→Reset CPU。
4.打开工程文件:
工程文件为:C:\ICETEK-VC5509-EDULab\Lab0301-LED\LED.pjt。
打开源程序LED.c。
5.编译、下载程序。
6.运行程序,观察结果。
7.退出CCS:
三.部分程序代码
// 定义指示灯寄存器地址和寄存器类型
#define LBDS (*((unsigned int *)0x400001))
// 子程序接口
void Delay(unsigned int nDelay);// 延时子程序
int i;
main()
{
unsigned int uLED[4]={1,2,4,8};// 控制字,逐位置1: 0001B 0010B 0100B 1000B
CLK_init();// 初始化DSP运行时钟
SDRAM_init();// 初始化EMIF接口
while ( 1 )
{
for ( i=0;i<4;i++ )
{
LBDS=uLED[i];// 正向顺序送控制字
Delay(256);// 延时
}
for ( i=3;i>=0;i-- )
{
LBDS=uLED[i];// 反向顺序送控制字
Delay(32);// 延时 【延时256->32】
}
}
}
四.实验结果
映射在扩展存储器空间地址上的指示灯寄存器在设置时是低4位有效的,数据的最
低位对应指示灯D1,次低位对应D2,...依次类推。LED指示灯由D1→D2→D3→D4→D3→D2→D1循环依次点亮。
五.实验体会
了解ICETEK-VC5509-A 板在TMS320VC5509DSP 外部扩展存储空间上的扩展。
了解ICETEK-VC5509-A 板上指示灯扩展原理。
学习在C 语言中使用扩展的控制寄存器的方法。
二、定时器的使用
一.实验原理
1.通用定时器介绍及其控制方法
TMS320VC5509A 内部有两个20 位通用定时器(GP):
*每个通用定时器包括:
-一个16 位的减计数的计数器TIM;
-一个16 位的定时器周期寄存器PRD;
-一个16 位的定时器控制寄存器TCR;
-一个16 位的定时器预定标寄存器PSCR;
*PSCR 寄存器说明:
15 10 9 6 5 4 3 0
Reserved PSC Reserved TDDR
PSC: 4 位的预定标值,与TIM 共同组成20 位的定时计数器.
TDDR: 预定标周期寄存器(在需要时重装入PSC 的值)
TCR 寄存器说明
2.中断响应过程
外设事件要引起CPU 中断,必须保证:IER 中相应使能位被使能,IFR 相应中断也被使能。
在软件中,当设置好相应中断标志后,开中断,进入等待中断发生的状态;外设(如定时器)
中断发生时,首先跳转到相应中断高级的服务程序中(如:定时器1 会引起TINT 中断),
程序在进行服务操作之后,应将本外设的中断标志位清除以便能继续中断,然后返回。
3.中断程序设计:
-程序中应包含中断向量表,VC5509A 默认向量表从程序区0 地址开始存放,根据IPVD 和
IPVH 的值确定向量表的实际地址。
-注意观察程序中INTR_init()
如果觉得《南邮 Android 课程设计 南邮大四课程设计.doc》对你有帮助,请点赞、收藏,并留下你的观点哦!