关于dsp心得体会

时间:2019-05-12 04:59:42下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《关于dsp心得体会》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《关于dsp心得体会》。

第一篇:关于dsp心得体会

关于dsp心得体会

篇一:dsp实验报告心得体会

TMS320F2812x DSP原理及应用技术实验心得体会

1.设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是软件仿真,可以不设置硬件,但是要为日后的实验做准备,还是要学习和熟悉硬件设置的过程。

2.在设置硬件时,不是按实验书上的型号选择,而是应该按照实验设备上的型号去添加。

3.不管是硬件还是软件的设置,都应该将之前设置好的删去,重新添加。设置好的配置中只能有一项。

4.CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。但是一般无法构造DSP中的外设,所以软件仿真通常用于调试纯软件算法和进行效率分析等。

5.这次实验采用软件仿真,不需要打开电源箱的电源。

6.在软件仿真工作时,无需连接板卡和仿真器等硬件。

7.执行write_buffer一行时。如果按F10执行程序,则程序在mian主函数中运行,如果按F11,则程序进入write_buffe函数内部的程序运行。

8.把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,就可以看到结构体变量中的每个元素了。

9.在实验时,显示图形出现问题,不能显示,后来在Graph Title 把Input的大写改为input,在对volume进行编译执行后,就可以看到显示的正弦波图形了。

10.在修改了实验2-1的程序后,要重新编译、连接执行程序,并且必须对.OUT文件进行重新加载,因为此时.OUT文件已经改变了。如果不重新加载,那么修改执行程序后,其结果将不会改变。

11.再观察结果时,可将data和data1的窗口同时打开,这样可以便于比较,观察结果。

12.通过这次实验,对TMS320F2812x DSP软件仿真及调试有了初步的了解与认识,因为做实验的时候都是按照实验指导书按部就班的,与真正的理解和掌握还是有些距离的。但是这也为我们日后运用这些知识打下了基础,我觉得实验中遇到的问题,不要急于问老师或者同学,先自己想办法分析原因,想办法解决,这样对自身的提高更多吧。通过做实验,把学习的知识利用起来,也对这门课程更加有兴趣了。

组员:叶孝璐 冯焕芬 郑玮仪 庞露露

20xx年4月10号

篇二:DSP实验报告+心得体会

龙 岩 学 院

实 验 报 告

班 级 07电本(1)班 学号 2007050344 姓 名 杨宝辉 同组人 独立 实验日期 2010-5-18 室温 大气压 成 绩

基础实验

一、实验目的二、实验设备

三、实验原理

浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理1.一台装有CCS软件的计算机; 2.DSP实验箱的TMS320F2812主控板; 3.DSP硬件仿真器。1.掌握CCS实验环境的使用; 2.掌握用C语言编写DSP程序的方法。中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。

四、实验步骤

1.打开CCS 并熟悉其界面;

2.在CCS环境中打开本实验的工程(Example_base.pjt),编译并重建.out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;

3. 把X0 , Y0 和Z0添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“Add Watch Window”命令);

4. 选择view->graph->time/frequency…。设置对话框中的参数: 其中“Start Address”

设为“sin_value”,“Acquisition buffer size”和“Display Data size”都设为“100”,并且把“DSP Data Type”设为“32-bit floating point”,设置好后观察信号序列的波形(sin函数,如图);

5. 单击运行;

6. 观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化;

7. 修改输入序列的长度或初始值,重复上述过程。

五、实验心得体会

通过本次实验,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。

从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。

附录实验程序:

#include “math.h”

#include “stdio.h”

#define N 100

#define pi 3.14159

float sin_value[100];

float X0,Y0,Z0;

void main(void)

{

int i;for(i=0;i担保埃眨樱?仿真器驱动程序的安装以及相应的配置流程也有了一定的了解。仿真环境的配置,到工程的建立,文件的加载,到程序的仿真,与目标板的链接与调试,整个过程在摸索中逐渐熟悉。对已有程序进行修改,重复相应的过程也能实现预定的功能,在短短的时间里能掌握这些基本就差不多了,由于有的需要配置的文件的缺失,无法完成对相应工程的配置设置,所以采用的参考例程里的程序,完成整个过程,这也是一个学习的过程。做项目不是一个人的事,每个成员都应积极的参与,为整个项目的完成提供保障,团队的协作,尽可能的去发挥每个成员的专长,在整个项目的完成都能有所收获,这才应该是做项目的真正目的,加强同学之间的交流,用心付出,共同享受带给大家的成功的喜悦。相关课程的学习只是个基础,在此基础之上对相应的硬件与软件结合,切实去体验一个芯片所能实现的各种功能,去发现所学的知识会在哪些方面用到,是如何应用,有怎样可以改进的方法,更深层次去掌握跟其他相关课程的交叉点,提升学习能力,从近期来看,可以为我们将要开始的毕业设计做准备,当做是一次练手,争取出色完成毕业设计,为四年的大学交出一份完美的答卷。从长远看,为自己以后的工作也在一定程度的奠定基础,学习能力强了,自己就能比较快的接受新知识,更能适应社会对人的要求。

相信团队的力量,同时也要提高个人解决问题的能力,让自己在团队中发挥的作用,将个人融入团队中,才能让自己有更大的收获。好好珍惜每次锻炼学习的机会,不断提升自己,不断超越自己,成就人生美好的梦想!

专业班级:微电子学

姓 名

学 号:

[关于dsp心得体会]

第二篇:DSP实验报告+心得体会

实 验 报 告

07电本(1)班

学号

2007050344 姓

名 杨宝辉

同组人

独立

实验日期

2010-5-18

室温

大气压

成 绩

基础实验

一、实验目的二、实验设备

三、实验原理 浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理1.一台装有CCS软件的计算机; 2.DSP实验箱的TMS320F2812主控板; 3.DSP硬件仿真器。1.掌握CCS实验环境的使用;

2.掌握用C语言编写DSP程序的方法。

中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。

四、实验步骤

1.打开CCS 并熟悉其界面;

2.在CCS环境中打开本实验的工程(Example_base.pjt),编译并重建.out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;

3. 把X0 , Y0 和Z0添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“Add Watch Window”命令);

4. 选择view->graph->time/frequency…。设置对话框中的参数: 其中“Start Address”设为“sin_value”,“Acquisition buffer size”和“Display Data size”都设为“100”,并且把“DSP Data Type”设为“32-bit floating point”,设置好后观察信号序列的波形(sin函数,如图);

5. 单击运行;

6. 观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化;

7. 修改输入序列的长度或初始值,重复上述过程。

五、实验心得体会

通过本次实验,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。

附录实验程序: #include “math.h” #include “stdio.h” #define N 100 #define pi 3.14159

float sin_value[100];float X0,Y0,Z0;

void main(void){

int i;

for(i=0;i

sin_value[i]=0;

X0=0.5;

/* 0.100 0000 0000 0000 */

Y0=0.5;

/* 0.100 0000 0000 0000 */

Z0=X0*Y0;

/* 00.01 0000 0000 0000 0000 0000 0000 0000 */

for(i=0;i

sin_value[i]=100*(sin(2*pi*i/N));}

实 验 报 告

07电本(1)班

学号

2007050344姓

名 杨宝辉 同组人

独立

实验日期

2010-5-20

室温

大气压

成 绩

数码管控制实验

一、实验目的 1.2.3.熟悉2812的指令系统; 熟悉74HC573的使用方法。熟悉DSP的IO操作使用方法。

二、实验设备

1.一台装有CCS2000软件的计算机;

2.插上2812主控板的DSP实验箱; 3.DSP硬件仿真器。

三、实验原理 此模块由数码管和四个锁存器组成。数码管为共阴极型的。数据由2812模块的低八位输入,锁存器的控制信号由2812模块输出,但经由CPLD模块译码后再控制对应的八个

四、实验步骤 1.把2812模块小板插到大板上;

2.在CCS2000环境中打开本实验的工程编译Example_7segled.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片;

3.运行程序;数码管会显示1~8的数字。

4.参考源代码自行修改程序改变显示样式。

五、实验心得体会

通过本次实验中,基本掌握了2812的指令系统的特点,并能够了解并熟悉74HC573的使用方法,进一步加深了对DSP的认识。同时,通过实验操作DSP的IO操作使用方法,对于DSP的IO操作可以熟悉的运用,学到更多的知识。

程序见附录:

#include “include/DSP281x_Device.h”

// DSP281x Headerfile Include File #include “include/DSP281x_Examples.h”

// DSP281x Examples Include File // Prototype statements for functions found within this file.void delay_loop(void);void Gpio_select(void);// Global variable for this example short codetab[17]= {0x4020,0x6cc0,0x5800,0x4840,0x6440,0xC040,0xC000,0x4cc0, 0x4000,0x4040,0x4400,0xE000,0xD080,0xE800,0xD000,0xD400,0xffff};main(){

short i;

// Step 1.Initialize System Control: // PLL, WatchDog, enable Peripheral Clocks // This example function is found in the DSP281x_SysCtrl.c file.InitSysCtrl();

// Specific clock setting for this example:

EALLOW;

EDIS;// Step 2.Initalize GPIO:

// This example function is found in the DSP281x_Gpio.c file and // illustrates how to set the GPIO to it's default state.// InitGpio();// Skipped for this example // For this example use the following configuration:

Gpio_select();// Step 3.Clear all interrupts and initialize PIE vector table: // Disable CPU interrupts

DINT;// Initialize the PIE control registers to their default state.// The default state is all PIE interrupts disabled and flags // are cleared.// This function is found in the DSP281x_PieCtrl.c file.InitPieCtrl();// Disable CPU interrupts and clear all CPU interrupt flags:

IER = 0x0000;

IFR = 0x0000;// Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines(ISR).// This will populate the entire table, even if the interrupt // is not used in this example.This is useful for debug purposes.// The shell ISR routines are found in DSP281x_DefaultIsr.c.// This function is found in DSP281x_PieVect.c.InitPieVectTable();// Step 4.Initialize all the Device Peripherals: // This function is found in DSP281x_InitPeripherals.c // InitPeripherals();// Not required for this example

InitXintf();// For this example, init the Xintf // Step 5.User specific code, enable interrupts:

GpioDataRegs.GPADAT.all=0;

Reg01=0x00;

GpioDataRegs.GPADAT.all=0;

Reg02=0x00;

GpioDataRegs.GPADAT.all=0;

Reg03=0x00;

GpioDataRegs.GPADAT.all=0;

Reg04=0x00;

while(1)

{

for(i=0;i<17;i++)

{

GpioDataRegs.GPADAT.all

Reg01=0x00;

delay_loop();

}

for(i=0;i<17;i++)

{

GpioDataRegs.GPADAT.all

Reg02=0x00;

delay_loop();

}

for(i=0;i<17;i++)

{

GpioDataRegs.GPADAT.all

Reg03=0x00;

delay_loop();

}

for(i=0;i<17;i++)

{

GpioDataRegs.GPADAT.all

Reg04=0x00;

delay_loop();

}

} }

void delay_loop(){

=~codetab[i];=~codetab[i];=~codetab[i];=~codetab[i];

short

i,j;

for(i = 0;i < 32767;i++)

{for(j = 0;j < 10;j++);} }

void Gpio_select(void){

Uint16 var1;

Uint16 var2;

Uint16 var3;

var1= 0x0000;

var2= 0xFFFF;

var3= 0x0000;

EALLOW;GpioMuxRegs.GPAMUX.all=var1;

// sets GPIO Muxs as I/Os

// sets GPIO DIR as outputs

// sets the Input qualifier values

GpioMuxRegs.GPBMUX.all=var1;

GpioMuxRegs.GPDMUX.all=var1;

GpioMuxRegs.GPFMUX.all=var1;

GpioMuxRegs.GPEMUX.all=var1;

GpioMuxRegs.GPGMUX.all=var1;

GpioMuxRegs.GPADIR.all=var2;

// GPIO PORTs as output

// GPIO DIR select GPIOs as output

GpioMuxRegs.GPBDIR.all=var2;

GpioMuxRegs.GPDDIR.all=var2;

GpioMuxRegs.GPEDIR.all=var2;

GpioMuxRegs.GPFDIR.all=var2;

GpioMuxRegs.GPGDIR.all=var2;

GpioMuxRegs.GPAQUAL.all=var3;

GpioMuxRegs.GPBQUAL.all=var3;

GpioMuxRegs.GPDQUAL.all=var3;

GpioMuxRegs.GPEQUAL.all=var3;

EDIS;} // No more.// Set GPIO input qualifier values 龙

实 验 报 告

07电本(1)班

学号

2007050344 姓

名 杨宝辉

同组人

独立

实验日期

2010-5-25

室温

大气压

成 绩

交通灯控制实验

一、实验目的

1.熟悉2812的指令系统; 2.熟悉74HC573的使用方法。3.熟悉DSP的IO操作使用方法。

二、实验设备

1.一台装有CCS2000软件的计算机;

2.插上2812主控板的DSP实验箱; 3.DSP硬件仿真器。

三、实验原理

此模块由发光二极管和一个锁存器组成。

数据由2812模块的低八位输入,锁存器的控制信号由2812模块输出,但经由CPLD模块译码后再控制锁存器。

四、实验步骤

1.把2812模块小板插到大板上;

2.在CCS2000环境中打开本实验的工程编译Example_crossled.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片; 3.运行程序,发光二极管按交通灯方式点亮熄灭。

4.参考源代码,自行修改程序,实现不同的交通灯控制方式。

五、实验心得体会

通过次实验中,使我掌握了 2812的指令系统和74HC573的使用方法。同时,使我掌握了DSP的IO操作使用方法。

实验程序见附录: 附录:

#include “include/DSP281x_Device.h”

// DSP281x Headerfile Include File #include “include/DSP281x_Examples.h”

// DSP281x Examples Include File // Prototype statements for functions found within this file.void delay_loop(void);void Gpio_select(void);// Global variable for this example main(){ // Step 1.Initialize System Control: // PLL, WatchDog, enable Peripheral Clocks // This example function is found in the DSP281x_SysCtrl.c file.InitSysCtrl();

// Specific clock setting for this example:

EALLOW;

EDIS;// Step 2.Initalize GPIO:

// This example function is found in the DSP281x_Gpio.c file and // illustrates how to set the GPIO to it's default state.// InitGpio();// Skipped for this example

// For this example use the following configuration:

Gpio_select();

// Step 3.Clear all interrupts and initialize PIE vector table: // Disable CPU interrupts

DINT;// Initialize the PIE control registers to their default state.// The default state is all PIE interrupts disabled and flags // are cleared.// This function is found in the DSP281x_PieCtrl.c file.InitPieCtrl();// Disable CPU interrupts and clear all CPU interrupt flags:

IER = 0x0000;

IFR = 0x0000;// Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines(ISR).// This will populate the entire table, even if the interrupt // is not used in this example.This is useful for debug purposes.// The shell ISR routines are found in DSP281x_DefaultIsr.c.// This function is found in DSP281x_PieVect.c.InitPieVectTable();// Step 4.Initialize all the Device Peripherals: // This function is found in DSP281x_InitPeripherals.c // InitPeripherals();// Not required for this example

InitXintf();// For this example, init the Xintf // Step 5.User specific code, enable interrupts:

while(1)

{

GpioDataRegs.GPADAT.all

=0xdc80;

Reg00=0x00;

delay_loop();

GpioDataRegs.GPADAT.all

=0xec40;

Reg00=0x00;

delay_loop();

GpioDataRegs.GPADAT.all

=0xf0c0;

Reg00=0x00;

delay_loop();

GpioDataRegs.GPADAT.all

=0xec40;

Reg00=0x00;

delay_loop();

} }

void delay_loop(){

short

i,j;

for(i = 0;i < 32767;i++)

{for(j = 0;j < 50;j++);} } void Gpio_select(void){

Uint16 var1;

Uint16 var2;

Uint16 var3;

var1= 0x0000;

var2= 0xFFFF;

var3= 0x0000;

EALLOW;GpioMuxRegs.GPAMUX.all=var1;

// sets GPIO Muxs as I/Os // sets GPIO DIR as outputs // sets the Input qualifier values

GpioMuxRegs.GPBMUX.all=var1;

GpioMuxRegs.GPDMUX.all=var1;

GpioMuxRegs.GPFMUX.all=var1;

GpioMuxRegs.GPEMUX.all=var1;

GpioMuxRegs.GPGMUX.all=var1;

GpioMuxRegs.GPADIR.all=var2;// GPIO PORTs as output

// GPIO DIR select GPIOs as output

GpioMuxRegs.GPBDIR.all=var2;

GpioMuxRegs.GPDDIR.all=var2;

GpioMuxRegs.GPEDIR.all=var2;

GpioMuxRegs.GPFDIR.all=var2;

GpioMuxRegs.GPGDIR.all=var2;

GpioMuxRegs.GPAQUAL.all=var3;

GpioMuxRegs.GPBQUAL.all=var3;

GpioMuxRegs.GPDQUAL.all=var3;

GpioMuxRegs.GPEQUAL.all=var3;

EDIS;

}

// Set GPIO input qualifier values //============================= // No more.//=============================

实 验 报 告

07电本(1)班

学号

2007050344 姓

名 杨宝辉

同组人

独立

实验日期

2010-05-27

室温

大气压

成 绩

步进电机控制实验

一、实验目的 1.2.二、实验设备

1.一台装有CCS软件的计算机; 2.DSP实验箱(插上电机模块);

3.DSP硬件仿真器; 4.示波器。

三、实验原理

步进电机工作原理,给步进脉冲电机就转,不给脉冲电机就不转,步进脉冲的频率越高,步进控制电机就转的越快;改变各相的通电方式可以改变电机的运行方式;改变通电顺序可以控制步进电机的运行方式;改变通电顺序可以控制步进电机的正反转。

步进电机的控制问题可以总结为两点: 1.产生工作方式需要的时序脉冲;

2.控制步进电机的速度使它始终遵循加速-匀速-减速的规律工作。掌握2812通用IO口的使用方法; 掌握2812对步进电机的控制。

对于I/O口有二类寄存器:

1.控制寄存器和数据方向寄存器,使用方法如下:首先确定引脚的功能,即IO控制器寄存器,为1表示引脚功能是原模块的功能,否则为IO功能。

2.如果引脚被配置为IO功能,就需要确定它的方向:输入还是输出。为1表示是输出引脚,否则是输入引脚。对于IO功能的输入或输出是通过读写相应的数据方向寄存器来实现。输入引脚对应读操作;输出引脚对应写操作。

四、实验步骤

1.连接好DSP开发系统;

2.本实验工程文件(Example_stepmotor.pjt),编译,下载程序到DSP; 运行程序,用观察步进电机运行方向和速度的变化;

五、实验心得体会

通过本次实验对于2812通用的IO口进一步熟悉实验,使我基本掌握了2812通用的IO口的使用方法,加深了对IO口的认识。本次实验的主要目的是通过2812对步进机的的控制,开始对于程序的设计没有头绪,通过查阅步进机控制的原理,结合有关资料才正式设计出程序,基本掌握了2812对步进机的控制,也更加熟悉了对DSP程序的设计,受益匪浅。

程序:

#include “include/DSP281x_Device.h”

// DSP281x Headerfile Include File #include “include/DSP281x_Examples.h”

// DSP281x Examples Include File // Prototype statements for functions found within this file.void delay_loop(void);void Gpio_select(void);// Global variable for this example short codetab[17]= {0x0001,0x0002,0x0004,0x0008,0x0008,0x0004,0x0002,0x0001, 0x0001,0x0002,0x0004,0x0008,0x0001,0x0002,0x0004,0x0008,0x0000};main(){

short i,j;// Step 1.Initialize System Control: // PLL, WatchDog, enable Peripheral Clocks // This example function is found in the DSP281x_SysCtrl.c file.InitSysCtrl();// Specific clock setting for this example:

EALLOW;

EDIS;// Step 2.Initalize GPIO:

// This example function is found in the DSP281x_Gpio.c file and // illustrates how to set the GPIO to it's default state.// InitGpio();// Skipped for this example // For this example use the following configuration:

Gpio_select();// Step 3.Clear all interrupts and initialize PIE vector table: // Disable CPU interrupts

DINT;// Initialize the PIE control registers to their default state.// The default state is all PIE interrupts disabled and flags // are cleared.// This function is found in the DSP281x_PieCtrl.c file.InitPieCtrl();// Disable CPU interrupts and clear all CPU interrupt flags:

IER = 0x0000;

IFR = 0x0000;// Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines(ISR).// This will populate the entire table, even if the interrupt // is not used in this example.This is useful for debug purposes.// The shell ISR routines are found in DSP281x_DefaultIsr.c.// This function is found in DSP281x_PieVect.c.InitPieVectTable();// Step 4.Initialize all the Device Peripherals: // This function is found in DSP281x_InitPeripherals.c // InitPeripherals();// Not required for this example

InitXintf();// For this example, init the Xintf // Step 5.User specific code, enable interrupts:

GpioDataRegs.GPADAT.all=0;

Reg06=0x00;

while(1)

{

for(j=0;j<400;j++)

{

for(i=0;i<4;i++)

{

GpioDataRegs.GPADAT.all

Reg06=0x00;

delay_loop();

}

}

for(j=0;j<400;j++)

{

for(i=4;i<8;i++)

{

GpioDataRegs.GPADAT.all

Reg06=0x00;

delay_loop();

}

}

} } void delay_loop(){

short

i,j;

for(i = 0;i < 1000;i++)

{for(j = 0;j < 10;j++);} } void Gpio_select(void){

Uint16 var1;

Uint16 var2;

=codetab[i];=codetab[i];

Uint16 var3;

var1= 0x0000;

var2= 0xFFFF;

var3= 0x0000;

EALLOW;GpioMuxRegs.GPAMUX.all=var1;

// sets GPIO Muxs as I/Os

// sets GPIO DIR as outputs

// sets the Input qualifier values

GpioMuxRegs.GPBMUX.all=var1;

GpioMuxRegs.GPDMUX.all=var1;

GpioMuxRegs.GPFMUX.all=var1;

GpioMuxRegs.GPEMUX.all=var1;

GpioMuxRegs.GPGMUX.all=var1;GpioMuxRegs.GPADIR.all=var2;

// GPIO PORTs as output

// GPIO DIR select GPIOs as output

GpioMuxRegs.GPBDIR.all=var2;

GpioMuxRegs.GPDDIR.all=var2;

GpioMuxRegs.GPEDIR.all=var2;

GpioMuxRegs.GPFDIR.all=var2;

GpioMuxRegs.GPGDIR.all=var2;

GpioMuxRegs.GPAQUAL.all=var3;

GpioMuxRegs.GPBQUAL.all=var3;

GpioMuxRegs.GPDQUAL.all=var3;

GpioMuxRegs.GPEQUAL.all=var3;

EDIS;

}

// Set GPIO input qualifier values //============================= // No more.//=============================

实 验 报 告

07电本(1)班

学号

2007050344 姓

名 杨宝辉

同组人 独立

实验日期

2010-6-1

室温

大气压

成 绩

直流电机控制实验

一、实验目的 1.2.二、实验设备 1.一台装有CCS软件的计算机; 2.DSP实验箱;

要求学生掌握2812 PWM的使用方法; 掌握2812对直流电机的控制。

3.DSP硬件仿真器; 4.示波器。

三、实验原理

电机模块的原理图如下

四、实验步骤

3.连接好DSP开发系统;

4.本实验工程文件(Example_dcmotor.pjt),编译,下载程序到DSP; 5.运行程序,用观察直流电机运行方向和速度的变化;

五、实验心得体会

通过本次实验,认识了PWM的使用方法,通过亲身体验,初步掌握了2812对PWM的控制使用方法,加深了对PWM的认识。本次实验的主要目的是通过2812对直流电机的控制,开始对于程序的设计没有头绪,通过查阅直流电机的原理,结合有关资料才正式设计出程序,基本掌握了2812对直流电机的控制,也更加熟悉了对DSP程序的设计,受益匪浅。

附:实验程序:

#include “include/DSP281x_Device.h”

// DSP281x Headerfile Include File #include “include/DSP281x_Examples.h”

// DSP281x Examples Include File // Prototype statements for functions found within this file.void init_eva(void);void init_evb(void);void delay_loop();// Global variable for this example main()

{ unsigned short i;// Step 1.Initialize System Control: // PLL, WatchDog, enable Peripheral Clocks // This example function is found in the DSP281x_SysCtrl.c file.InitSysCtrl();// Specific clock setting for this example:

EALLOW;

EDIS;// Step 2.Initalize GPIO:

// This example function is found in the DSP281x_Gpio.c file and // illustrates how to set the GPIO to it's default state.// InitGpio();// Skipped for this example // Initialize only GPAMUX and GPBMUX for this test

EALLOW;

// Enable PWM pins

GpioMuxRegs.GPAMUX.all = 0x00FF;// EVA PWM 1-6 pins

GpioMuxRegs.GPBMUX.all = 0x00FF;// EVB PWM 7-12 pins

EDIS;// Step 3.Clear all interrupts and initialize PIE vector table: // Disable CPU interrupts

DINT;// Initialize the PIE control registers to their default state.// The default state is all PIE interrupts disabled and flags // are cleared.// This function is found in the DSP281x_PieCtrl.c file.InitPieCtrl();// Disable CPU interrupts and clear all CPU interrupt flags:

IER = 0x0000;

IFR = 0x0000;// Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines(ISR).// This will populate the entire table, even if the interrupt // is not used in this example.This is useful for debug purposes.// The shell ISR routines are found in DSP281x_DefaultIsr.c.// This function is found in DSP281x_PieVect.c.InitPieVectTable();// Step 4.Initialize all the Device Peripherals: // This function is found in DSP281x_InitPeripherals.c // InitPeripherals();// Not required for this example

InitXintf();// For this example, init the Xintf // Step 5.User specific code, enable interrupts:

init_eva();

//init_evb();

while(1)

{

for(i=0;i<65535;i+=1000)

{

Reg06=0;

EvbRegs.CMPR6 = i;

delay_loop();

}

} } void delay_loop(){

short

i,j;

for(i = 0;i < 1000;i++)

{for(j = 0;j < 10;j++);} } void init_eva(){ // EVA Configure T1PWM, T2PWM, PWM1-PWM6 // Initalize the timers

// Initalize EVA Timer1

EvaRegs.T1PR = 0xFFFF;

// Timer1 period

EvaRegs.T1CMPR = 0x3C00;

// Timer1 compare

EvaRegs.T1CNT = 0x0000;

// Timer1 counter

// TMODE = continuous up/down

// Timer enable

// Timer compare enable

EvaRegs.T1CON.all = 0x1042;

// Initalize EVA Timer2

EvaRegs.T2PR = 0x0FFF;

// Timer2 period

EvaRegs.T2CMPR = 0x03C0;

// Timer2 compare

EvaRegs.T2CNT = 0x0000;

// Timer2 counter

// TMODE = continuous up/down

// Timer enable

// Timer compare enable

EvaRegs.T2CON.all = 0x1042;

// Setup T1PWM and T2PWM

// Drive T1/T2 PWM by compare logic

EvaRegs.GPTCONA.bit.TCMPOE = 1;

// Polarity of GP Timer 1 Compare = Active low

EvaRegs.GPTCONA.bit.T1PIN = 1;

// Polarity of GP Timer 2 Compare = Active high

EvaRegs.GPTCONA.bit.T2PIN = 2;

// Enable compare for PWM1-PWM6

//EvaRegs.CMPR1 = 0x0C00;

//EvaRegs.CMPR2 = 0x3C00;

EvaRegs.CMPR3 = 0xFC00;

// Compare action control.Action that takes place

// on a cmpare event

// output pin 1 CMPR1active low

// output pin 3 CMPR2active low

// output pin 5 CMPR3active low

EvaRegs.ACTRA.all = 0x0666;

EvaRegs.DBTCONA.all = 0x0000;// Disable deadband

EvaRegs.COMCONA.all = 0xA600;}

void init_evb(){ // EVB Configure T3PWM, T4PWM and PWM7-PWM12 // Step 1active high

// output pin 2 CMPR4active high

// output pin 4 CMPR5active high

// output pin 6 CMPR6x000 0000 0011 0000

EDIS;// Step 3.Initialize PIE vector table:

// The PIE vector table is initialized with pointers to shell Interrupt

// Service Routines(ISR).The shell routines are found in DSP281x_DefaultIsr.c.// Insert user specific ISR code in the appropriate shell ISR routine in

// the DSP28_DefaultIsr.c file.// Disable and clear all CPU interrupts:

DINT;IER = 0x0000;IFR = 0x0000;

// Initialize Pie Control Registers To Default State:

// This function is found in the DSP281x_PieCtrl.c file.// InitPieCtrl();PIE is not used for this example

// Initialize the PIE Vector Table To a Known State:

// This function is found in DSP281x_PieVect.c.// This function populates the PIE vector table with pointers

// to the shell ISR functions found in DSP281x_DefaultIsr.c.InitPieVectTable();

// Enable CPU and PIE interrupts

// This example function is found in the DSP281x_PieCtrl.c file.EnableInterrupts();// Step 4.Initialize all the Device Peripherals to a known state:

// This function is found in DSP281x_InitPeripherals.c

// InitPeripherals();skip this for SCI tests

// Step 5.User specific functions, Reassign vectors(optional), Enable Interrupts:

LoopCount = 0;

ErrorCount = 0;

scia_fifo_init();

// Initialize the SCI FIFO

scia_loopback_init();// Initalize SCI for digital loop back

// Note: Autobaud lock is not required for this example

// Send a character starting with 0

SendChar = 0;

// Step 6.Send Characters forever starting with 0x00 and going through // 0xFF.After sending each, check the recieve buffer for the correct value for(;;)

{ scia_xmit(SendChar);

while(SciaRegs.SCIFFRX.bit.RXFIFST!=1){ } // wait for XRDY =1 for empty state

// Check received character

ReceivedChar = SciaRegs.SCIRXBUF.all;

if(ReceivedChar!= SendChar)error(1);

// Move to the next character and repeat the test

SendChar++;

// Limit the character to 8-bits

SendChar &= 0x00FF;

LoopCount++;

if(LoopCount==256)

{

LoopCount=0;

SciaRegs.SCICCR.bit.LOOPBKENA =0;// Disable loop back

SciaRegs.SCICTL1.all =0x0023;

// Relinquish SCI from Reset while((ReceivedChar = SciaRegs.SCIRXBUF.all)!=0x0d);scia_loopback_init();// Initalize SCI for digital loop back

}

} }

// Step 7.Insert all local Interrupt Service Routines(ISRs)and functions here: void error(int ErrorFlag){

ErrorCount++;//

asm(“

ESTOP0”);// Uncomment to stop the test here //

for(;;);} // Test 1,SCIA DLB, 8-bit word, baud rate 0x000F, default, 1 STOP bit, no parity void scia_loopback_init(){

// Note: Clocks were turned on to the SCIA peripheral

// in the InitSysCtrl()function

SciaRegs.SCICCR.all =0x0007;

// 1 stop bit, No loopback

// No parity,8 char bits,// async mode, idle-line protocol SciaRegs.SCICTL1.all =0x0003;// enable TX, RX, internal SCICLK,// Disable RX ERR, SLEEP, TXWAKE

SciaRegs.SCICTL2.all =0x0003;SciaRegs.SCICTL2.bit.TXINTENA =1;SciaRegs.SCICTL2.bit.RXBKINTENA =1;

SciaRegs.SCIHBAUD

=0x0001;

SciaRegs.SCILBAUD

=0x00e7;

} // Transmit a character from the SCI' void scia_xmit(int a){

SciaRegs.SCITXBUF=a;}

// Initalize the SCI FIFO void scia_fifo_init()

SciaRegs.SCICCR.bit.LOOPBKENA =1;// Enable loop back

SciaRegs.SCICTL1.all =0x0023;

// Relinquish SCI from Reset

{

SciaRegs.SCIFFTX.all=0xE040;

SciaRegs.SCIFFRX.all=0x204f;

SciaRegs.SCIFFCT.all=0x0;}

//============================= // No more.//=============================

第三篇:dsp实验报告心得体会

TMS320F2812x DSP原理及应用技术实验心得体会

1.设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是软件仿真,可以不设置硬件,但是要为日后的实验做准备,还是要学习和熟悉硬件设置的过程。

2.在设置硬件时,不是按实验书上的型号选择,而是应该按照实验设备上的型号去添加。

3.不管是硬件还是软件的设置,都应该将之前设置好的删去,重新添加。设置好的配置中只能有一项。

4.CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。但是一般无法构造DSP中的外设,所以软件仿真通常用于调试纯软件算法和进行效率分析等。5.这次实验采用软件仿真,不需要打开电源箱的电源。

6.在软件仿真工作时,无需连接板卡和仿真器等硬件。

7.执行write_buffer一行时。如果按F10执行程序,则程序在mian主函数中运行,如果按F11,则程序进入write_buffe函数内部的程序运行。8.把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,就可以看到结构体变量中的每个元素了。

9.在实验时,显示图形出现问题,不能显示,后来在Graph Title 把Input的大写改为input,在对volume进行编译执行后,就可以看到显示的正弦波图形了。10.在修改了实验2-1的程序后,要重新编译、连接执行程序,并且必须对.OUT文件进行重新加载,因为此时.OUT文件已经改变了。如果不重新加载,那么修改执行程序后,其结果将不会改变。

11.再观察结果时,可将data和data1的窗口同时打开,这样可以便于比较,观察结果。

12.通过这次实验,对TMS320F2812x DSP软件仿真及调试有了初步的了解与认识,因为做实验的时候都是按照实验指导书按部就班的,与真正的理解和掌握还是有些距离的。但是这也为我们日后运用这些知识打下了基础,我觉得实验中遇到的问题,不要急于问老师或者同学,先自己想办法分析原因,想办法解决,这样对自身的提高更多吧。通过做实验,把学习的知识利用起来,也对这门课程更加有兴趣了。

组员:叶孝璐 冯焕芬 郑玮仪 庞露露

2012年4月10号

第四篇:DSP实验心得体会

篇一:dsp实验报告心得体会

tms320f2812x dsp原理及应用技术实验心得体会

1.设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是

软件仿真,可以不设置硬件,但是要为日后的实验做准备,还是要学习和熟悉硬件设置的过程。

2.在设置硬件时,不是按实验书上的型号选择,而是应该按照实验设备上的型

号去添加。

3.不管是硬件还是软件的设置,都应该将之前设置好的删去,重新添加。设置好的配置中

只能有一项。4.ccs可以工作在纯软件仿真环境中,就是由软件在pc机内存中构造一个虚拟的

dsp环境,可以调试、运行程序。但是一般无法构造dsp中的外设,所以软件仿真通常用于调试纯软件算法和进行效率分析等。

5.这次实验采用软件仿真,不需要打开电源箱的电源。

6.在软件仿真工作时,无需连接板卡和仿真器等硬件。

7.执行write_buffer一行时。如果按f10执行程序,则程序在mian主函数中运行,如果按f11,则程序进入write_buffe函数内部的程序运行。

8.把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变

量,就可以看到结构体变量中的每个元素了。

9.在实验时,显示图形出现问题,不能显示,后来在graph title 把input的大写

改为input,在对volume进行编译执行后,就可以看到显示的正弦波图形了。

10.在修改了实验2-1的程序后,要重新编译、连接执行程序,并且必须对.out 文件进行重新加载,因为此时.out文件已经改变了。如果不重新加载,那么修改执行程序后,其结果将不会改变。11.再观察结果时,可将data和data1的窗口同时打开,这样可以便于比较,观察

结果。

12.通过这次实验,对tms320f2812x dsp软件仿真及调试有了初步的了解与认识,因为做

实验的时候都是按照实验指导书按部就班的,与真正的理解和掌握还是有些距离的。但是这也为我们日后运用这些知识打下了基础,我觉得实验中遇到的问题,不要急于问老师或者同学,先自己想办法分析原因,想办法解决,这样对自身的提高更多吧。通过做实验,把学习的知识利用起来,也对这门课程更加有兴趣了。

组员:叶孝璐 冯焕芬 郑玮仪 庞露露

2012年4月10号 篇二:dsp实验报告+心得体会

龙 岩 学 院

实 验 报 告

班 级 07电本(1)班 学号 2007050344 姓 名 杨宝辉 同组人 独立 实验日期 2010-5-18 室温 大气压 成 绩

基础实验

一、实验目的

二、实验设备

三、实验原理

浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理1.一台装有ccs软件的计算机; 2.dsp实验箱的tms320f2812主控板; 3.dsp硬件仿真器。1.掌握ccs实验环境的使用; 2.掌握用c语言编写dsp程序的方法。中经常用到的运算;c语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)dsp的c语言与ansi c语言的区别。

四、实验步骤 1.打开ccs 并熟悉其界面;

2.在ccs环境中打开本实验的工程(example_base.pjt),编译并重建.out 输出文件,然后通过仿真器把执行代码下载到dsp芯片中;

3. 把x0 , y0 和z0添加到watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“add watch window”命令);

4. 选择view->graph->time/frequency„。设置对话框中的参数: 其中“start address”

设为“sin_value”,“acquisition buffer size”和“display data size”都设为“100”,并且把“dsp data type”设为“32-bit floating point”,设置好后观察信号序列的波形(sin函数,如图);

5. 单击运行;

6. 观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化;

7. 修改输入序列的长度或初始值,重复上述过程。

五、实验心得体会

通过本次实验,加深了我对dsp的认识,使我对dsp实验的操作有了更进一步的理解。基本掌握了ccs实验环境的使用,并能够使用c语言进行简单的dsp程序设计。

从软件的安装到使用软件进行程序设计与仿真,锻炼了自己的动手能力,也遇到了不少的坎坷,例如芯片的选择,不能因为麻烦而省略该步骤,否则将会运行出错。

附录实验程序:

#include math.h #include stdio.h #define n 100 #define pi 3.14159 float sin_value[100];float x0,y0,z0;void main(void){ int i;for(i=0;i

/* 0.100 0000 0000 0000 */ z0=x0*y0;

/* 00.01 0000 0000 0000 0000 0000 0000 0000 */ for(i=0;i

实 验 报 告

班 级 07电本(1)班 学号 2007050344姓 名 杨宝辉 同组人 独立 实验日期 2010-5-20 室温 大气压 成 绩

数码管控制实验

一、实验目的 1.2.3.熟悉2812的指令系统; 熟悉74hc573的使用方法。熟悉dsp的io操作使用方法。

二、实验设备 1.一台装有ccs2000软件的计算机;

2.插上2812主控板的dsp实验箱; 3.dsp硬件仿真器。

三、实验原理

此模块由数码管和四个锁存器组成。数码管为共阴极型的。数据由2812模块的低八位输入,锁存器的控制信号由2812模块输出,但经由cpld模块译码后再控制对应的八个

四、实验步骤

1.把2812模块小板插到大板上;

2.在ccs2000环境中打开本实验的工程编译example_7segled.prj,生成输出文件,通过仿真器把执行代码下载到dsp芯片;

3.运行程序;数码管会显示1~8的数字。

4.参考源代码自行修改程序改变显示样式。

五、实验心得体会

通过本次实验中,基本掌握了2812的指令系统的特点,并能够了解并熟悉74hc573的使用方法,进一步加深了对dsp的认识。同时,通过实验操作dsp的io操作使用方法,对于dsp的io操作可以熟悉的运用,学到更多的知识。

程序见附录:

#include include/dsp281x_device.h // dsp281x headerfile include file #include include/dsp281x_examples.h // dsp281x examples include file // prototype statements for functions found within this file.void delay_loop(void);void gpio_select(void);// global variable for this example short codetab[17]= {0x4020,0x6cc0,0x5800,0x4840,0x6440,0xc040,0xc000,0x4cc0, 0x4000,0x4040,0x4400,0xe000,0xd080,0xe800,0xd000,0xd400,0xffff};main(){ short i;// step 1.initialize system control: // pll, watchdog, enable peripheral clocks // this example function is found in the dsp281x_sysctrl.c file.initsysctrl();// specific clock setting for this example: 篇三:dsp实验学习心得

dsp实验学习心得

论dsp发展前景

dsp 即为数字信号处理器(digital signal processing),是在模拟信号变换成数 字信号以后进行高速实时处理的专用处理器。它的工作原理是将现实世界的模拟信号转换 成数字信号,再用数学方法处理此信号,得到相应的结果。自从数字信号处理器(digital signal processor)问世以来,由于它具有高速、灵活、可编程、低功耗和便于接口等特 点,已在图形、图像处理,语音、语言处理,通用信号处理,测量分析,通信等领域发挥 越来越重要的作用。随着成本的降低,控制界已对此产生浓厚兴趣,已在不少场合得到成 功应用。dsp 数字信号处理器 dsp 芯片采用了数据总线和程序总线分离的哈佛结构及改 进的哈佛结构,较传统处理器的冯?诺依曼结构具有更高的指令执行速度。其处理速度比最 快的 cpu 快 10-50 倍。在当今数字化时代背景下,dsp 已成为通信、计算机、消费类电 子产品等领域的基础器件,被誉为信息社会革命的“旗手”。

最初的 dsp 器件只是被设计成用以完成复杂数字信号处理的算法。dsp 器件 紧随着数字信号理论的发展而不断发展。dsp发展最快,现在的 dsp 属于第五代产品,它与第四代相比,系统集成度更高,将 dsp 芯核及外围组件综合集成在单一芯片上。这种集成度极高的 dsp 芯片不仅在通信、计算机领域大显身手,而且逐渐渗透 到人们日常消费领域,前景十分可观。近年来,随着通信技术的飞速发展,dsp已经成为信号与信息处理领域里一门十分重要的新兴学科,它代表着当今无线系统的主流发展方向。现在,通信领域中许多产品

都与 dsp 密切联系,例如,modem、数据加密、扩频通信、可视电话等。而寻找 dsp 芯片来实现算法最开始的目标是在可以接受的时间内对算法做仿真,随后是将波形存储起 来,然后再加以处理。

在短短的十多年 时间,dsp芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。目前, dsp 芯片的价格也越来越低,性能价格比日益提高,具有巨大的应用潜力。dsp 芯片的应用主要有:(1)

信号处理--如,数字滤波、自适应滤波、快速傅里叶变换、相关运算、频谱分析、卷积等。(2)通信--如,调制解调器、自适应均衡、数据加密、数据压缩、回坡抵消、多路复用、传真、扩频通信、纠错编码、波形产生等。(3)语音--如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音储存等。(4)图像/图形--如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等。(5)军事--如保密通信、雷达处理、声纳处理、导航等。

(6)仪器仪表--如频谱分析、函数发生、锁相环、地震处理等。(7)自动控制--如引擎控制、深空、自动驾驶、机器人控制、磁盘控制。(8)医疗--如助听、超声设备、诊断工具、病人监护等。(9)家用电器--如高保真音响、音乐合成、音调控制、玩具与游戏、数字 电话/电视等 dsp 的发展前景 dsp 的功能越来越强,应用越来越广,达到甚至超过了微控制器的功能,比 微控制器做得更好而且价格更便宜,许多家电用第二代 dsp 来控制大功率电机就 是一个很好的例子。汽车、个人通信装置、家用电器以及数以百万计的工厂使用 dsp 系统。数码相机、ip 电话和手持电子设备的热销带来了对 dsp 芯片的巨大需 求。而手机、pda、mp3 播放器以及手提电脑等则是设备个性化的典型代表,这 些设备的发展水平取决于 dsp 的发展。新的形势下,dsp 面临的要求是处理速度 更高,功能更多更全,功耗更低,存储器用量更少。

dsp 的技术发展将会有以下 一些走势:(1)系统级集成 dsp 是潮流。小 dsp 芯片尺寸始终是 dsp 的技术发展方向。当前的 dsp 尺寸小、功耗低、性能高。各 dsp 厂商纷纷采用新工艺,改进 dsp 芯核,并将几个 dsp 芯核、mpu 芯核、专用处理单元、外围电路单元、存储单元 统统集成在一个芯片上,成为 dsp 系统级集成电路。(2)追求更高的运算速度和进一步降低功耗和几何尺寸。由于电子设备的 个人化和客户化趋势,dsp 必须追求更高更快的运算速度,才能跟上电子设备的 更新步伐。同时由于 dsp 的应用范围已扩大到人们工作生活的各个领域,特别是 便携式手持产品对于低功耗和尺寸的要求很高,所以 dsp 有待于进一步降低功 耗。按照 cmos 的发展趋势,依靠新工艺改进芯片结构,dsp 运算速度的提高和 功耗尺寸的降低是完全可能的。

(3)dsp 的内核结构进一步改善。dsp 的结构主要是针对应用,并根据应用 优化 dsp 设计以极大改进产品的性能。多通道结构和单指令多重数据、超长指令 字结构、超标量结构、超流水结构、多处理、多线程及可并行扩展的超级哈佛结 构(sharc)在新的高性能处理器中将占据主导地位。(4)dsp 嵌入式系统。dsp 嵌入式系统是 dsp 系统嵌入到应用电子系统中 的一种通用系统。这种系统既具有 dsp 器件在数据处理方面的优势,又具有应用 目标所需要的技术特征。在许多嵌入式应用领域,既需要在数据处理方面具有独 特优势的 dsp,也需要在

智能控制方面技高一筹的微处理器(mcu)。因此,将 dsp 与 mcu 融合在一起的双核平台,将成为 dsp 技术发展的一种新潮流。dsp 的发展非常迅速,而销售价格逐年降低目前 dsp 的结构、总线、资源和 接口技术都趋于标准化,尤其接口的标准化进展更快。这给从事系统设计的工程 技术人员带来很大机遇,采用先进的 dsp 将会使开发的产品具有更强的市场竞争 力。

近几年来,dsp芯片、应用软件和系统的发展非常迅速,每年增长速度高达40%。其市场驱动力主要是因特网、无线通信、硬盘驱动器、可视电话和会议电视以及其它消费 类电子产品。也就是说,dsp产业的发展依赖于通信技术和通信市场。随着新的通信体 制、传输方式和多媒体智能终端的迅速发展,其算法、标准和规程都需要在实践中不断发 展、改进和优化。dsp编程的灵活性和不断增强的运算能力,同时又将使通信技术向更 高层次迈进。这对通信领域的广大科技人员是一个机遇。抓住这个机遇,我们将大有作为。

通过这几次实验,我初步的对dsp有了一定了解。虽然是在老师们的指导下完成实验要求的,但是我想我还是收获蛮多的。希望在以后的学习生活中能对dsp有更多的学习和研究。篇四:dsp课程设计实验报告总结

dsp课程设计总结

(2013-2014学年第2学期)

题 目 : 专业班级 : 电子1103 学生姓名 : 万 蒙 学 号 : 11052304 指导教师 : 设计成绩 :

2014 年 6 月

目 录

一 设计目的--------3 二 系统分析--------3 三 硬件设计

3.1 硬件总体结构----------------------------3 3.2 dsp模块设计----------------------------4 3.3 电源模块设计---------------------------4 3.4 时钟模块设计---------------------------5 3.5 存储器模块设计-------------------------6 3.6 复位模块设计---------------------------6 3.7 jtag模块设计-------------------------7 四 软件设计

4.1 软件总体流程----------------------7 4.2 核心模块及实现代码--------8 五 课程设计总结----------------------14

一、设计目的

设计一个功能完备,能够独立运行的精简dsp硬件系统,并设计简单的dsp控制程序。

二、系统分析 1.1设计要求 硬件要求:

(1)使用tms320vc5416作为核心芯片。(2)具有最简单的led控制功能。(3)具有存放程序的外部flash芯片。(4)外部输入+5v电源。(5)绘制出系统的功能框图。

(6)使用ad(altium designer)绘制出系统的原理图和pcb版图。软件要求:

利用实验箱的模拟信号产生单元产生不同频率的信号,或者产生两个频率的信号的叠加。在dsp中采集信号,并且对信号进行频谱分析,滤波等。通过键盘选择算法的功能,将计算的信号频率或者滤波后信号的频率在lcd上显示。

三、硬件设计 3.1 硬件总体结构

3.2 dsp总体结构

3.3 电源模块设计

3.4 时钟模块设计

3.5 存储器模块设计

3.6复位模块设计

篇五:dsp实验报告(完美版)dsp实验报告

班 级:11050641 学 号:

姓 名:

指导教师:

实验一、二 dsp芯片的开发工具及应用实验 1.实验目的(1)熟悉ccs集成开发环境,掌握工程的生成方法;

(2)熟悉seed-dtk dad实验环境;

(3)掌握ccs集成开发环境的调试方法。

2.实验设备

dsp实验箱,计算机,ccs软件。

3.实验内容及步骤

(1)ccs软件的安装;

(2)了解seed-dtk5416实验环境;

(3)打开ccs集成开发环境,进入ccs的操作环境;

(4)新建一个工程文件

1在c:timyprojects中建立文件夹 volume1(如果ccs安装在其他○

d:ti ,则在d:timyprojects中);

2将c:titutorialtargetvolume1○拷贝到c:timyprojects volume1;

3从在ccs 中的project 菜单,选择 new; ○

4在project name域中,键入volume1; ○

5在location区域中,浏览步骤1所建立的工作文件夹; ○

6在project type 域中,选择executable(.out); ○

7在target域中,选择ccs配置的目标,并单击完成。○

(5)向工程中添加文件

1从project/add files to project,选择 volume.c,单击 open(或右○

击project view图标,选择add files to project);

2选择project/add files to project,在files of type对话框中,选○

择asm source files(*.a*, *.s*)。选择vectors.asm 和 load.asm, 单击open; 3选择 project/add files to project,在files of type 对话框中选○

4选择project/add files to project,到编辑器库文件夹○

(c:tic5400cgtoolslib),在files of type对话框中选择object and library files(*.o*, *.lib)。选择rts.lib文件,单击open。这个库提供目标dsp 运行时间支持(runtime-support);

5project view窗口,右击volume1.pjt,选择scan all dependencies,○

volume.h将出现在project view窗中的libraries文件夹;

头文件不要手动添加,自动到:当前目录(源文件所在)或预编译器的“include search path(-i)”option所指定的位置。显示头文件:project—>show dependencies。

6单击 volume1.pjt上的+号,展开工程列表。这个列表称为project ○

view。

(6)查看源程序代码

双击project view中 volume.c文件,ccs窗口的右半窗中出现c源代码。

(7)编译与运行程序

1选择project/rebuild all或单击(rebuild all)菜单条按钮,ccs重○

新进行编辑、汇编、连接工程里的所有文件。这个处理的有关信息在窗口低部一个小框里显示;

2默认时,.out文件编译到位于当前工程文件夹中的调试(debug),目录中○

也可以通过ccs工具条选择一个存储目录;

3选择file/load program。选中volume1.out,并按open。○

(c:timyprojectsvolume1debug 文件夹中。)ccs将程序装载到目标dsp上,打开显示程序反汇编指令的disassembly窗口;

4选择view/mixed source/asm.,这样可以同时查看c源程序和产生的汇○

编代码;

5在混合窗口单击汇编指令(单击有效指令,而不是指令的地址或指令所○

传递的区域),单击f1,ccs可以寻找此指令的帮助。这是学习指令的很好的方法;

6选择debug/go main,从主程序开始执行; ○

7选择debug/run或单击(run)按钮; ○

8选择debug/ halt,退出程序运行。○

(8)更改程序的选择、定位语法错误

1选择project/build options; ○

preprocessor,在define symbols区域键入fileio,按tab键; 3单击ok,保存新的选择设置; ○ 4选择project/rebuild all或单击(rebuild all)按钮。只要工程选择○

更改,则必须重新编译所有的文件;

5编译信息显示,程序包含编辑错误。单击build,你可以看见语法错误信○

息;

6双击描述语法错误位置的红色文字(第68行)○。注意volume.c源程序已打开,且光标位于下面的行上: processing(input, output);; 7语法错误位于光标位置的上一行(丢了个分号)○,如:puts(begin processing);;

8注意:edit窗口标题栏中的文件名附近出现星号(*)○,指示源程序已经被修改,文件保存后,星号消失; 9选择file/save,或按ctrl+s,将更改保存到volume.c; ○

10选择project/build,或(incremental build)单击工具条,ccs重新编○

译已经修改的文件; 11选择file/load program,选中volume1.out; ○

12选择debug/go main,从主函数开始执行。由→执行可以暂停; ○

13选择debug/run或(run)单击菜单条; ○

14选择debug/halt,退出程序运行。○

(9)使用断点(breakpoints)和观察窗口(watch window)程序执行时常常需要检查变量的值。1file/reload program; ○

2双击project view 窗中的volume.c。可以将窗口变大,看到更多的源○

代码;

3将光标放在dataio(); ○

4单击(toggle breakpoint)工具条,或按f9。选择空白区指示断点已经设○

置(红色图标); 5window,在ccs窗口的右下角出现单个区域,同时,这○

量的值;

6选择debug/go main; ○

7或按f5; ○

9达式图标,键入要观察的变量名dataio; ○

10中的白色区域,保存更改。这个值将立即出现在下面的例○

11over)或按f10,跨过对dataio()的调用; ○

12(remove all breakpoints)。○

的watch window 的值,也可以观察一个结构的元素的值。

2表达式图标,键入要观察表达式名称str; ○

3的白色空间,保存更改。数值将立即出现在下面的例子○

4source code调出 volume.c中全局申明、并初始化的○

构。volume.h定义了parms的结构类型;

5ccs将结构中所有元素和元素值。双击结构中元素的○

value选择view/watch 个区域显示观察变如果不在主程序,选择debug/run,选择watch1; ○ 单击name栏中表单击观察窗口子中;

单击(step 完成后,单击(10)使用带结构除了观察简单变量选择watch1; ○ 单击name栏中的单击观察窗口中中;

从reviewing the 类型为parms的结单击str上的+号,编辑元素的值;

6在watch window 中value栏,更改变量的值。注意:watch window中○

数值的更改,数值也变为红色,表示已经手动修改;

7选择watch window中str变量,按delete 键。其他变量同理; ○

8选择debug/breakpoints,在breakpoints中,单击delete all,然后○

单击ok。

(11)添加探针probe point(为了文件i/o)

可以添加探针(probe point),从pc机中的文件读数据。

按照下面的步骤使用探针:

从主pc中传递输入数据,到算法所使用的目标的缓冲器中;

从目标的缓冲器中传递输出数据,到主pc中;

用数据修改窗口。

下面将学习如何使用probe point,将pc文件中的内容,作为测试数据,传递到目标dsp中。另外,也可以使用断点修改所有打开的窗口。1选择file/load program,选中volume1.out,单击open; ○

2双击project view中的volume.c; ○

3将光标放到主程序中dataio(); ○

4单击(toggle probe point)。选择空白区域指示探针已经设置(兰色图○

标),如果废止

选择区,此行为兰色显亮;

5从file菜单,选择file i/o。出现file i/o对话框,因此可以选择输○

入输出文件; 6在file input,单击add file; ○

7浏览volume1工程文件夹,选中sine.dat,单击open。sine.dat文件是○

正弦波的十六进制数值,出现sine.dat文件的控制窗口。再后,当运行程序时,可以在数据文件中使用此窗口启动、停止、返回、或快进; 8在file i/o对话框,更改address 为inp_buffer,length为100,在○

wrap around中可以添加选中符号;

9单击add probe point。出现 break/probe points对话框中的 probe ○

points; 10在 probe point列表中,显亮行为:volume.c line 61--> no ○

connection; 11区域中,单击下箭头,从列表中选中sine.dat; ○

12probe point列表改向显示这个probe point连接到○

sine.dat 13i/o对话框显示文件现在连接到probe point; ○

14file i/o对话框。○

以查看关于时间的信号图形。

在connect to单击 replace。文件; 单击ok。file 单击ok,关闭(12)显示图形 在这个例子中,可

第五篇:基于DSP开关电源

基于DSP的开关电源

摘要

本文以TMs320LF2407A为控制核心,介绍了一种基于DSP的大功率开关电源的设计方案。该电源采用半桥式逆变电路拓扑结构,应用脉宽调制和软件PID调节技术实现了电压的稳定输出。最后,给出了试验结果。试验表明,该电源具有良好的性能,完全满足技术规定要求。关键字:DSP;开关电源;PID调节

ABSTRACT In this paper,setting TMs320LF2407A as the control center, it describes a DSP-based high-power switching power source design.The power supply uses a half-bridge inverter circuit topology, applications and software PID regulator pulse width modulation technology to achieve a stable output voltage.Finally, the experimental results was given.The experimental results show that the power supply has a good performance, fully meeting the technical requirements.Key Words: DSP;Switching power supply;PID

0 引 言

信息时代离不开电子设备,随着电子技术的高速发展,电子设备的种类与日俱增,与人们的工作、生活的关系也日益密切。任何电子设备又都离不开可靠的供电电源,它们对电源供电质量的要求也越来越高。

目前,开关电源以具有小型、轻量和高效的特点而被广泛应用于电子设备中,是当今电子信息产业飞速发展不可缺少的一种电源。与之相应,在微电子技术发展的带动下,DSP芯片的发展日新月异,因此基于DSP芯片的开关电源拥有着广阔的前景,也是开关电源今后的发展趋势。电源的总体方案设计

本文所设计的开关电源的基本组成原理框图如图1所示,主要由功率主电路、DSP控制回路以及其它辅助电路组成。

开关电源的主要优点在“高频”上。通常滤波电感、电容和变压器在电源装置的体积和重量中占很大比例。从“电路”和“电机学”的有关知识可知,提高开关频率可以减小滤波器的参数,并使变压器小型化,从而有效地降低电源装置的体积和重量。以带有铁芯的变压器为例,分析如下:

图1.开关电源基本原理

设铁芯中的磁通按正弦规律变化,即φ= φMsinωt,则:

eLWdWcostEMcost dt(1)式中,EM= ωWφ M=2πfWφM,在正弦情况下,EM=√2E,φM=BMS,故:

E2fWM4.44fWBMS 2(2)式中,f为铁芯电路的电源频率;W 为铁芯电路线圈匝数;BM为铁芯的磁感应强度;S为铁芯线圈截面积。

从公式可以看出电源频率越高,铁芯截面积可以设计得越小,如果能把频率从50 Hz提高到50 kHz,即提高了一千倍,则变压器所需截面积可以缩小一千倍,这样可以大大减小电源的体积。

综合电源的体积、开关损耗以及系统抗干扰能力等多方面因素的考虑,本开关电源的开关频率设定为30 kHZ。系统的硬件设计 2.1 功率主电路

本电源功率主回路采用“AC-DC-AC—DC”变换的结构,主要由输入电网EMI滤波器、输人整流滤波电路、高频逆变电路、高频变压器、输出整流滤波电路等几部分组成,如图2所示。

图2.功率主电路原理图

图3.功军主回路的电压波形变化

本开关电源采用半桥式功率逆变电路。如图2所示,输入市电经EMI滤波器滤波,大大减少了交流电源输入的电磁干扰,并同时防止开关电源产生的谐波串扰到输入电源端。再经过桥式整流电路、滤波电路变成直流电压加在P、N两点问。P、N之间接人一个小容量、高耐压的无感电容,起到高频滤波的作用。半桥式功率变换电路与全桥式功率变换电路类似,只是其中两个功率开关器件改由两个容量相等的电容CA1和CA2代替。在实际应用中为了提高电容的容量以及耐压程度,CA1和CA2往往采用的是由多个等值电容并联组成的电容组。C A1、CA2 的容量选值应在电源体积和重量允许的条件下尽可能的大,以减小输出电压的纹波系数和低频振荡。CA1 和CA2 在这里同时起到了静态时分压的作用,使Ua =Uin/2。

在本电源的设计中,采用IGBT来作为功率开关器件。它既具有MOSFET的通断速度快、输入阻抗高、驱动电路简单及驱动功率小等优点,又具有GTR的容量大和阻断电压高的优点。

在IGBT的集射极间并接RC吸收网络,降低开关应力,减小IGBT关断产生的尖峰电压;并联二极管DQ实现续流的作用。二次整流采用全波整流电路,通过后续的LC滤波电路,消除高频纹波,减小输出直流电压的低频振荡。LC滤波电路中的电容由多个高耐压、大容量的电容并联组成,以提高电源的可靠性,使输出直流电压更加平稳。2.2 控制电路

控制电路部分实际上是一个实时检测和控制系统,包括对开关电源输出端电压、电流和IGBT温度的检测,对收集信息的分析和运算处理,对电源工作参数的设置和显示等。其控制过程主要是通过采集开关电源的相关参数,送入DSP芯片进行预定的分析和计算,得出相应的控制数据,通过改变输出PWM波的占空比,送到逆变桥开关器件的控制端,从而控制输出电压和电流。

控制电路主要包括DSP控制器最小系统、驱动电路、辅助电源电路、采样电路和保护电路。

(1)DSP控制器最小系统

DSP控制器是其中控制电路的核心采用TMS32OLF2407A DSP芯片,它是美国TEXAS INSTU—MENTS(TI)公司的最新成员。TMS30LF2407A基于C2xLP内核,和以前C2xx系列成员相比,该芯片具有处理性能更好(30MIPS)、外设集成度更高、程序存储器更大、A/D转换速度更快等特点,是电机数字化控制的升级产品,特别适用于电机以及逆变器的控制。DSP控制器最小系统包括时钟电路、复位电路以及键盘显示电路。时钟电路通过15 MHz的外接晶振提供;复位电路直接通过开关按键复位;由4×4的矩阵式键盘和SPRT12864M LCD构成了电源系统的人机交换界面。

(2)驱动放大电路

IGBT的驱动电路采用脉冲变压器和TC4422组成,其电路原理图如图4所示:

图4.IGBT驱动电路原理图

由于TMS320LF2407A的驱动功率较小,不能胜任驱动开关管稳定工作的要求,因此需要加上驱动放大电路,以增大驱动电流功率,提高电源系统的可靠性。如图4所示,采用两片TCA422组成驱动放大电路。

TC4421/4422是Microchip公司生产的9A高速MOsFET/IGBT驱动器,其中TC4421是反向输出,TC4422是同向输出,输出级均为图腾柱结构。

TC4421/4422具有以下特点:

①输出峰值电流大:9 A;

② 电源范围宽:4.5 V~18 V;

③连续输出电流大:最大2 A;

④快速的上升时间和下降时间:30 ns(负载4700pF),180 ns(负载47000 pF);

⑤传输延迟时间短:30 ns(典型);

⑥供电电流小:逻辑“1”输入~200μA(典型),逻辑“0”输入~55 μA(典型);

⑦输出阻抗低:1.4 Ω(典型);

⑧闭锁保护:可承受1.5 A的输出反向电流;

⑨输入端可承受高达5 V的反向电压;

⑩能够由TTL或CMOS电平(3 V~18 V)直接驱动,并且输人端采用有300 mV滞回的施密特触发电路。

当TMS320LF2407A输出的PWM1为高电平,PWM2为低电平时,经过TCA422驱动放大后输出,在脉冲变压器一次侧所流过的电流从PWMA流向PWMB,如图4中箭头所示,电压方向为上正下负。

根据变压器的同名端和接线方式,则开关管Q1的栅极电压为正,Q2的栅极电压为负。因此,此时是驱动QM1导通。反之若是PWM1为高电平,PWM2为低电平时,则是驱动Q2导通。四只二极管DQ1 ~DQ2的作用是消除反电动势对TCA422的影响。

(3)辅助电源电路

本开关电源电路设计过程中所需要的几路工作电源如下:

① TMS320LF2407 DSP所需电源:I/O 电源(3.3 V),PLL(PHSAELOCKED LOOP)电源(3.3 V),FIASH编程电压(5 V),模拟电路电源电压(3.3 V);②TCA422芯片所需电源:电源端电压范围4.5~18 V(选择15 V);③采样电路中所用运算放大器的工作电源为15 V。

因此,整个控制电路需要提供15 V、5 V和3.3 V三种制式的电压。设计中选用深圳安时捷公司的HAw 5-220524 AC/DC模块将220 V、50 Hz的交流电转换成24 V直流电,然后采用三端稳压器7815和7805获得15 V和5 V的电压。TMS320LF2407A所需的3.3 V由5 V通过TPS7333QD电压芯片得到。(4)采样电路

电压采样电路由三端稳压器TL431和光电耦合器PC817之问的配合来构成。电路设计如图5所示,TL431与PC817一次侧的LED串联,TL431阴极流过的电流就是LED的电流。输出电压Ud经分压网络后到参考电压UR与TL431中的2.5 V基准电压Uref进行比较,在阴极上形成误差电压,使LED的工作电流 If发生变化,再通过光耦将变化的电流信号转换为电压信号送人LF2407A的ADCIN00引脚。

图5.电压采样电路原理图

由于TMS320LF2407A的工作电压为3.3 V,因此输入DSP的模拟信号也不能超过3.3 V。为防止输入信号电压过高造成A/D输入通道的硬件损坏,我们对每一路A/D通道设计了保护电路,如图5所示,Cu2,CU3 起滤波作用,可以将系统不需要的高频和低频噪声滤除掉,提高系统信号处理的精度和稳定性。

另外,采用稳压管限制输入电压幅值,同时输入电压通过二极管与3.3 V电源相连,以吸收瞬间的电压尖峰。

当电压超过3.3 V时,二极管导通,电压尖峰的能量被与电源并联的众多滤波电容和去耦电容吸收。并联电阻Ru4的目的是给TL431提供偏置电流,保证TL431至少有1 mA的电流流过。Cu1 和RU3作为反馈网络的补偿元件,用以优化系统的频率特性。

电流采样的原理与电压采样类似,只是在电路中要通过电流传感器将电流信号转换为电压信号,然后再进行采集。

(5)保护电路

为保证系统中功率转换电路及逆变电路能安全可靠工作,TMs320LF2407A提供了PDPINTA,各种故障信号经或门CD4075B综合后,经光电隔离、反相及电平转换后输入到PDPINTA引脚,有任何故障时,CD4075B输出高电平,PDPINTA引脚相应被拉为低电平,此时DSP所有PWM输出管脚全部呈现高阻状态,即封锁PWM输出。整个过程不需要程序干预,由硬件实现。这对实现各种故障信号的快速处理非常有用。在故障发生后,只有在人为干预消除故障,重启系统后才能继续工作。系统的软件实现

为了构建DSP控制器软件框架,使程序易于编写、查错、测试、维护、修改、更新和扩充,在软件设计中采用了模块化设计,将整个软件划分为初始化模块、ADC信号采集模块、PID运算处理模块、PWM波生成模块、液晶显示模块以及按键扫描模块。各模块间的流程如图6所示。

图6.功能模块流程图

3.1 初始化模块

系统初始化子程序是系统上电后首先执行的一段代码,其功能是保证主程序能够按照预定的方式正确执行。系统的初始化包括所有DSP的基本输入输出单元的初始设置、LCD初始化和外扩单元的检测等。

3.2 ADC采样模块

TMS320LF2407A芯片内部集成了10位精度的带内置采样/保持的模数转换模块(ADC)。根据系统的技术要求,10位ADC的精度可以满足电压的分辨率、电流的分辨率的控制要求,因此本设计直接利用DSP芯片内部集成的ADC就可满足控制精度。另外,该10位ADC是高速ADC,最小转换时间可达到500 ns,也满足控制对采样周期要求。

ADC采样模块首先对ADC进行初始化,确定ADC通道的级联方式,采样时间窗口预定标,转换时钟预定标等。然后启动ADC采样,定义三个数组依次存放电压、电流和温度的采样结果,对每一个信号采样8次,经过移位还原后存储到相应的数组中,共得到3组数据。如果预定的ADC中断发生,则转人中断服务程序,对采样的数据进行分析、处理和传输。以电压采样为例,其具体的流程图如图7所示。

图7.程序流程图

3.3 PID运算模块

本系统借助DSP强大的运算功能,通过编程实现了软件PID调节。由于本系统软件中采用的是增量式PID算法,因此需要得到控制量的增量△un,式(3)为增量式PID算法的离散化形式:

unKp(enen1)KienKd[en2en1en2]

(3)

开关电源在进入稳态后,偏差是很小的。如果偏差e在一个很小的范围内波动,控制器对这样微小的偏差计算后,将会输出一个微小的控制量,使输出的控制值在一个很小的范围内,不断改变自己的方向,频繁动作,发生振荡,这既影响输出控制器,也对负载不利。

为了避免控制动作过于频繁,消除由于频繁动作所引起的系统振荡,在PID算法的设计中设定了一个输出允许带eo。当采集到的偏差|en|≤eo时,不改变控制量,使充电过程能够稳定地进行;只有当|en| >eo 时才对输出控制量进行调节。PID控制模块的程序流程如图8所示:

图8.PID运算程序流程图

TMS320LF2407A内部包括两个事件管理器模块EVA和EVB,每个事件管理器模块包括通用定时器GP、比较单元、捕获单元以及正交编码脉冲电路。通过TMS320LF2407A事件管理模块中的比较单元可以产生带死区的PWM波,与PWM 波产生相关的寄存器有:比较寄存器CMPRx、定时器周期寄存器Tx—PR、定时器控制寄存器TxCON、定时器增/减计数器TxCNT、比较控制寄存器COMCONA/B、死区控制寄存器DBTCONA/B。

PWM波的生成需对TMS320LF2407A的事件管理模块中的寄存器进行配置。由于选用的是PWM1/2,因此配置事件管理寄存器组A,根据需要生成带死区PWM波的设置步骤为:

(1)设置并装载比较方式寄存器ACTRA,即设置PWM波的输出方式;

(2)设置T1CON寄存器,设定定时器1工作模式,使能比较操作;

(3)设置并装载定时器1周期寄存器T1PR,即规定PWM 波形的周期;

(4)定义CMPR1寄存器,它决定了输出PWM 波的占空比,CMPR1中的值是通过计算采样值而得到的;

(5)设置比较控制寄存器COMCONA,使能PD—PINTA 中断;

(6)设置并装载死区寄存器DBTCONA,即设置死区时间。

图9.带死区PWM波的生成原理

3.5 键盘扫描及LCD显示模块

按键扫描执行模块的作用是判断用户的输入,对不同的输入做出相应的响应。本开关电源设计采用16个压电式按键组成的矩阵式键盘构成系统的输入界面。16个按键的矩阵式键盘需要DSP的8个I/O口,这里选用IOPA0~IOPA3作为行线,IOPF0~IOPF3作为列线。由于TMS320LF2407A都是复用的I/O口,因此需要对MCRA和MCRC寄存器进行设置使上述8个I/O口作为一般I/O端口使用。按键扫描执行模块采用的是中断扫描的方式,只有在键盘有键按下时才会通过外部引脚产生中断申请,DSP相应中断,进人中断服务程序进行键盘扫描并作相应的处理。

LCD显示模块需要DSP提供11个I/O口进行控制,包括8位数据线和3位控制线,数据线选用IOPB0~IOPB7,控制线选用IOPFO IOPF2,通过对PBDATDIR和PFDATDIR寄存器的设置实现DSP与LCD的数据传输,实时显示开关电源的运行状态。结论

本文介绍的基于DSP的大功率高频开关电源,充分发挥了DSP强大功能,可以对开关电源进行多方面控制,并且能够简化器件,降低成本,减少功耗,提高设备的可靠性。

参考文献

[1]何希才.新型开关电源的设计与应用[J].北京:科学出版社,2001 [2]刘和平,严利平,张学锋等.TMS320LF240xDSP结构、原理及应用[J].北京:航空航天大学出版社,2002 [3] 陈伟,马金平,杜志江,李永利.基于DSP的PWM型开关电源的设计[J].微计算机信息,2006,12(5):238-240 [4]周志敏,周纪海.开关电源实用技术——设计与应用[J].北京:人民邮电出版社,2003 [5] 毛晓波.交流采样技术及其DSP实现方法.微计算机信息[J].2005,11(5):36-39

下载关于dsp心得体会word格式文档
下载关于dsp心得体会.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    dsp作业

    .c图 实验二 #define UINT unsigned int UINT i,*p,*n; void main(void) { p=(UINT *)0x0300; for(i=0;i PROG PAGE 0 .cinit > PROG PAGE 0 //.switch > PROG PAGE......

    DSP实验报告

    实验0 实验设备安装才CCS调试环境 实验目的: 按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤: 以演示......

    DSP课程设计

    TMS320C54x与PC通信系统的设计(单号) 一、设计目的 本次课程设计的目的是为了进一步提高学生的自我开发能力,培养学生的查阅资料,独立分析问题、解决问题以及实际动手的能力。也......

    DSP实验报告

    实验0 实验设备安装才CCS调试环境 实验目的: 按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤: 以演......

    dsp报告

    目 录 第一章、基本算术运算 ..................................... 1 1.1、实验目的和要求 ................................... 1 1.2、实验原理 ...........................

    DSP大作业

    无限冲激响应滤波器(IIR)算法 姓名:张晓 指导老师:陈恩庆 专业名称:通信 学号:20102460434 2014年3月18日 无限冲激响应滤波器(IIR)算法 摘要:21世纪是数字化的时代,随着信息处理技......

    dsp学习心得

    一. 我是已经从事DSP开发有几年了,看到许多朋友对DSP的开发非常感兴取,我结合这几年对DSP的开发写一写自己的感受,一家之言,欢迎指教。我上研究生的第一天起根据老板的安排就开......

    DSP学习心得

    数字信号处理—DSP课程学习的认识 今年学习了DSP这门课程后,有了一些自己的认识和见解,并且体会到了它强大的功能和作用,它不但在高端的技术领域有很重要的地位,如通信、雷达、......