DSP课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

一、设计任务 (1)

二、实验目的 (1)

三、设计内容 (2)

4、实验原理 (2)

4.1DSP(2812)性能概述 (2)

4.2TMS320F2812的引脚图及功能 (4)

4.3DSP最小系统 (4)

5、程序设计 (7)

5.1流程图 (7)

5.2程序源代码 (8)

六、实验总结 (13)

七、参考资料 (14)

4.2TMS320F2812的引脚图及功能

如图4-2-1为TMS320F2812引脚图以及各个引脚的作用。

图4-2-1

4.3DSP最小系统

系统整体框图如下图4-3-1所示。

电源电路

复位电路

时钟电路JTAG接口电路DSP2812

LED流水灯

图4-3-1系统整体框图

1、电源转换

DSP最小系统仅有5V电源供电,由于DSP芯片供电电压只能是3.3V,所以在设计电路时,需要将5V电源转换为3.3V给CPU供电,因此使用了TI公司的5V/3V的

TPS7333Q高性能稳压芯片,并可提供上电复位信号,该信号/RS—DSP接到DSP的复位引脚上。该芯片最大输出电流500mA。TPS7333Q输出后的10μf和0.1μf的电容不能省略,否则得不到稳定的3.3V电压。图4-3-2为电源转换原理图。

图4-3-2电源转换原理图

2、复位电路

DSP系统的复位电路的设计对于系统性能有重要影响。DSP2812为低电平复位,由于内部有复位电路,所以直接在复位引脚/xrs接一个10K的上拉电阻即可;有些电源芯片有复位引脚,可用于DSP的直接复位。

复位电路原理图如图4-3-3所示:

图4-3-3复位电路原理图

3、时钟电路

TMS320F2812DSP的时钟可以有两种连接方式,即外部振荡器方式和谐振器方式。

有源晶振驱动能力较强,频率范围较宽,在1HZ—400MHZ之间。无源晶振驱动能

力差,价格便宜,频率范围较窄。

本文采用的是外部有源时钟方式,直接选择一个3.3V供电的30MHz有源晶振实现。晶振电路如图4-3-4所示。

图4-3-4时钟电路

4、JTAG仿真接口电路

几乎所有的高速控制器和可编程器件都配有标准仿真接口JTAG,F2812也不例外。JTAG扫描逻辑电路用于仿真和测试,采用JTAG可实现在线仿真,同时也.是调试过程

装载数据、代码的唯一通道。通过JTAG接口可将仿真器与目标系统相连接。为了与仿真器通信,DSP控制板必须带有14引脚的双排直插管座。F2812和14针仿真插座连接的电路如图4-3-5。

图4-3-5JTAG接口设计电路

5、流水灯控制系统电路

流水灯控制电路如下图4-3-6所示。

图4-3-6流水灯电路图

五、程序设计:

5.1程序流程图

这里用软件延时的方法来调整发光二极管的延时时间间隔。当发光二极管被点亮

之后,通过改变端口的数据输出,达到点亮不同的LED显示管的目的。

实验要求实现LED显示管的循环显示:先第1个LED亮,然后是第2个LED亮,

第3个LED显示管亮。第4个灯亮。如此循环显示。

首先给temp赋初值00000001(由于高八位都为00000000,这里只写低八位),

再给寄存器GPBCLEAR的值与temp的值相或,其相应位被写1,实现相应的端口输

出低电平,LED灯亮,通过寄存器GPBSET的值再与temp值相或,则相应的端口输

出高电平,LED等灭,通过tenp的值左移便可以完成00000001……10000000的改变,每改变一次就可以实现相应的LED灯的亮灭。当数据的最高位等于1的时候,temp重新赋初值,即给程序重新赋值为00000001,进行下一轮的循环。

如此即可以实现实验要求的功能。程序流程图如下图5-1-1所示。

开始

初始化设计

将temp的值与寄存器

GPBCLEAR值相或,则相

应引脚输出低电平,LED

灯亮

延时

temp值与寄存器GPBSET

的值相或,相应引脚输出

高电平,LED灯灭

temp左移一位

y

判断temp值是否为

0X0100

N

LED灯显示

结束

图5-1-1程序流程图

5.2程序源代码

(1)系统初始化子程序DSP28_sysctrl.c #include"DSP281x_Device.h"

#include"System.h"

#pragma CODE_SECTION(InitFlash,"ramfuncs");

/*------------------------------------------*/ /*形式参数:void*/ /*返回值:void*/

/*函数描述:初始化系统*/ /*------------------------------------------*/ void InitSysCtrl(void)

{

DisableDog();//禁止看门狗

InitPll(0x02);//设置系统时钟=XCLKIN*2/2

InitPeripheralClocks();//设置外设时钟

DINT;//关闭总中断

相关文档
最新文档