(1)初识TMS320C5410

第一讲 初识TMS320C5410

潮风工作室 吴宏伟 2012.11.10

 

本人今年大四,学校开设了DSP的课程,于是开始跨入DSP领域,学校配的设备是北京百科融创的实验箱RC-DSP-II+,里面即有C2000系列的TMS320LF2407,主要用在控制方面;也有TMS320C5410,主要用在音频处理和通讯。结合自身的兴趣爱好,于是决定学习C5000系列。

这里的DSPDigital Signal Processor数字信号处理器,它可以算是功能超强的单片机,然而学习起来却十分复杂,本人虽有较强的单片机功底,刚开始学的时候也是云里雾里,加之无导师指导,学习之路可谓十分艰苦,于是在图书馆借了N多书,看了网上的N多教程,摸爬滚打两个月之后,才渐渐有了些小领悟。

 

学习之前肯定要对芯片有一定的了解,可以网上介绍文章都是泛泛而谈,很少谈到重点,下面是我自己对这块芯片(TMS320C5410)的认识:

1) 16位定点DSP芯片,总线结构为改进的哈佛结构,内部有117X17位的乘法器;

(2) 外接晶振最大为40MHz,通过PLL倍频最高主频为160MHz

(3) 片内ROM大小为16K×16bit , DARAM大小为8K×16bit, SARAM大小为56K×16bit;

(4) 3组多通道缓冲串行口(McBSP),DMA,主机接口HPI

(5) 通用IO引脚(BIOXF),外部中断引脚INT0INT1INT2INT3NMI

 

有了以上基础知识,我们就可以来做我们的第一个实验:利用通用IO引脚XF来控制LED灯的亮与灭。拿到一块开发板,一般DSPXF引脚都会连接一个LED灯,方便我们程序调试时用作指示灯,我们查看原理图,就可以看到类似如下的图:

 

图1.XF引脚与LED灯相连

 

那么,我们只要把XF引脚电平置0,即可点亮LED灯;置1即可熄灭LED灯。那怎么控制它呢?查看芯片的参考手册[ TMS320C54x DSP参考1CPU and Peripherals) ],可以看到有这么一段:

 

图2. XF引脚的说明

 

大致意思是XF是状态寄存器ST1中的一位,而我们可以用SSBX指令来将XF1RSBX指令将XF0

 

下面就来建我们的第一个工程吧,我们的开发环境为CCS2.20,仿真器为XDS510,目标板为TMS320C5410,新建工程名为“1-LED_Control",并新建一个文件“main.c”,编写代码如下:

 

View Code
/** @file main.c

 * @brief 利用XF引脚控制LED灯

 *

 * @author 潮风工作室 吴宏伟

 * @date 2012-11-10

 */

 

void delay(unsigned int n)

{

while(n--);

}

 

void main()

{

int i;

while(1)

{

asm(" RSBX XF");

for(i=0;i<10;i++)delay(60000);

asm(" SSBX XF");

for(i=0;i<10;i++)delay(60000);

}

}

 

写好之后,连同“vector.asm"(即中断向量表),"5410.cmd" (存储器配置文件),"rts.lib"C语言运行时库)文件一直添加到工程中去,编译,下载,运行,即可看到开发板上的LED开始一闪一闪的效果。置于中断向量表的编写与存储器如何配置,我将在第二讲详细介绍。

 

图3.总体工程图

 

 

4.效果图1(灯亮)

 

5.效果图2(灯灭)

 

参考资料:

1.TMS320C54x DSP 参考1CPU and Peripherals.pdf

2.TMS320VC5410 Fixed-Point DSP (Rev. E).PDF

 

工程文件:1-LED_Control.zip

 

原文地址:https://www.cnblogs.com/chaofeng/p/2764156.html