用DSP56F805 PWM模块输出高频正弦波

针对Motorola DSP56F805的PWM模块中不能产生高频正弦波的缺点,根据SPWM原理,由直接面积等效法,计算出对应脉冲的起始点和终点,然后编程实现,经调试发现调制出的正弦波具有良好的特性。

DSP56F805是一种专门用来控制电机的微处理器,内部具有各种功能模块,例如,A/D转换模块、PWM模块、定时器模块等,为开发基于DSP的系统提供了很大便利。针对开发系统,Motorola为我们提供了相应的软件开发工具CodeWarrior及SDK,使得我们开发基于MotorolaDSP的系统更加方便快捷。

1 问题的描述

Motorola的嵌入式SDK(Software DevelopmentKit)是一个API、库、服务、规则的集合体,它加速了DSP的开发工作。但是,它的定时器在实现小时间定时方面的准确度却不高,对实现高频正弦波(10~100kHz)有一定的难度。因此,可采用软件延时的方法来控制脉冲序列的输出,这为实现高频正弦波奠定了基础。另外,由于DSP56F805提供了PWM模块,主要用于电机控制,输出为PWM0一WM5六路输出,为电机控制提供了方便。但是该模块不能提供高频输出,在实现高频正弦波调制方面是个难点。因此,笔者没有利用PWM模块,而是采用通用I/0口作为输出。

2 脉宽的求解原理

直接面积等效法的原现可用图1予以说明。任取正弦波中的一个小区间△t,相正弦波面积为S1,所要产的PWM脉冲面积S2与S1等。在正弦波与脉冲高度知的条件下,可计算出脉宽度ζi。从而`得到对应的开关点,计算出一个正弦波周期内所对应所有脉冲高度已知的条件,可计算出一个正弦波周期内所对应怕有脉冲序列相对应时间的位置。

根据具体的计算公式,可利用C语言编程计算出脉冲序列中每个脉冲的相对宽度及位置,如下所示:

main()

{

unsignedinti;

float del,del2,x[20],xz[20],xl[20],xr[20],y[20];

unsigned int xy[34];

if(fp=fopen(“d600”,“w”)==NULL)

{pfintff“can’t openthisfile\n”;exit(O);}

del=3.14159/8;

del2=3.14159/16;

x[O]=O;

xl[O]=O:

for(i=1;i

{

x[i]=i*3.14159/8;

xz[i]=x[i-1]+del2;

y[i]=del+cos(x[i-1])一cos(x[i]);

xl[i]=xz[il+y[i]/4;

xr[i]=xz[i]-y[i]/4;

xy[2*i-1]=(xT[i]-xl[i-1])*50000/6 28318;

xy[2*i]=(xl[i]一xr[i])*50000/6.28318;

printff“y[%d]=%f%f%f\n”,i,y[i],xr[i],xl[i]);

printf(“xy[%d=%d”,i+i-1,xy[i+i-1]);printf(“xy[%d]=%d\n”,

i+i,xy[i+i]);

}

for(i=l;i

for(i=9;i

for(i=17;i

for(i=25;i

fclose(fp);

计算结果为:

xy[321={1562,1865,979,2425,485,2853,155,3085,39,3085,155,2853,485,2425,979,1865,1562,1259,2145,699,2639,27l,2969,39,3085,39,2969,27l,2639,699,2145,1259};

由此便得到一周期内所对应16个脉冲序列的相对位置xy[1]~xy[31]。如果想得到所需要的频率,还需要对直接面积等效法的原理可用图1予以说明。任取正其进行相应的变换。

3 硬件电路

采用通用输出口PB0作为脉冲输出口,然后配以简单的阻容电路进行滤波,便可实现所需的各种频率的高频正弦波。正弦波输出电路如图2所示。

4 软件设计

根据计算出的脉冲开关时间点,通过软件延时的方法来控制每个脉冲的开关时间,以完成脉冲输出的程序。但是,如果想得到相应的频率,必须对xy[i]作相应的变换。

以一个周期16个脉冲为例,计算出一个基准周期内各个脉冲的起停位置xy[1]~xy[31],如果需要其它频率值,可通过相应的数值变换得到。

例如,要获得6OOHz的正弦波,作如下变换:

for(i=0;i

SinDataF2[i]=(UWord32)xy[i]*237/(10*Fs)

其中Fs-600。

因此,输出一个周期正弦波算法的流程图如图3所示。

具体实现程序如下:

void SpwmGenerate(UWordl6 FI,UWordl6 F2){

intl;

UWordl6j;

UWordl6*pSinDataFlF2;

asm(bfclr#$8101,x:(PWMA_BASE+$3))

while(SpwmRun){

pSinDataFlF2=pSinDataFlF2reg;

for(i=0;i

for(j=1;J

asm(bfchg#$8101,x:(PWMA-BASE+$3));

}

}

}

5 结论

经过调试发现,输出正弦波有很好的特性,可以谓制出不同频率的正弦信号,在DSP的其它应用方面有一定参考价值。

针对Motorola DSP56F805的PWM模块中不能产生高频正弦波的缺点,根据SPWM原理,由直接面积等效法,计算出对应脉冲的起始点和终点,然后编程实现,经调试发现调制出的正弦波具有良好的特性。

DSP56F805是一种专门用来控制电机的微处理器,内部具有各种功能模块,例如,A/D转换模块、PWM模块、定时器模块等,为开发基于DSP的系统提供了很大便利。针对开发系统,Motorola为我们提供了相应的软件开发工具CodeWarrior及SDK,使得我们开发基于MotorolaDSP的系统更加方便快捷。

1 问题的描述

Motorola的嵌入式SDK(Software DevelopmentKit)是一个API、库、服务、规则的集合体,它加速了DSP的开发工作。但是,它的定时器在实现小时间定时方面的准确度却不高,对实现高频正弦波(10~100kHz)有一定的难度。因此,可采用软件延时的方法来控制脉冲序列的输出,这为实现高频正弦波奠定了基础。另外,由于DSP56F805提供了PWM模块,主要用于电机控制,输出为PWM0一WM5六路输出,为电机控制提供了方便。但是该模块不能提供高频输出,在实现高频正弦波调制方面是个难点。因此,笔者没有利用PWM模块,而是采用通用I/0口作为输出。

2 脉宽的求解原理

直接面积等效法的原现可用图1予以说明。任取正弦波中的一个小区间△t,相正弦波面积为S1,所要产的PWM脉冲面积S2与S1等。在正弦波与脉冲高度知的条件下,可计算出脉宽度ζi。从而`得到对应的开关点,计算出一个正弦波周期内所对应所有脉冲高度已知的条件,可计算出一个正弦波周期内所对应怕有脉冲序列相对应时间的位置。

根据具体的计算公式,可利用C语言编程计算出脉冲序列中每个脉冲的相对宽度及位置,如下所示:

main()

{

unsignedinti;

float del,del2,x[20],xz[20],xl[20],xr[20],y[20];

unsigned int xy[34];

if(fp=fopen(“d600”,“w”)==NULL)

{pfintff“can’t openthisfile\n”;exit(O);}

del=3.14159/8;

del2=3.14159/16;

x[O]=O;

xl[O]=O:

for(i=1;i

{

x[i]=i*3.14159/8;

xz[i]=x[i-1]+del2;

y[i]=del+cos(x[i-1])一cos(x[i]);

xl[i]=xz[il+y[i]/4;

xr[i]=xz[i]-y[i]/4;

xy[2*i-1]=(xT[i]-xl[i-1])*50000/6 28318;

xy[2*i]=(xl[i]一xr[i])*50000/6.28318;

printff“y[%d]=%f%f%f\n”,i,y[i],xr[i],xl[i]);

printf(“xy[%d=%d”,i+i-1,xy[i+i-1]);printf(“xy[%d]=%d\n”,

i+i,xy[i+i]);

}

for(i=l;i

for(i=9;i

for(i=17;i

for(i=25;i

fclose(fp);

计算结果为:

xy[321={1562,1865,979,2425,485,2853,155,3085,39,3085,155,2853,485,2425,979,1865,1562,1259,2145,699,2639,27l,2969,39,3085,39,2969,27l,2639,699,2145,1259};

由此便得到一周期内所对应16个脉冲序列的相对位置xy[1]~xy[31]。如果想得到所需要的频率,还需要对直接面积等效法的原理可用图1予以说明。任取正其进行相应的变换。

3 硬件电路

采用通用输出口PB0作为脉冲输出口,然后配以简单的阻容电路进行滤波,便可实现所需的各种频率的高频正弦波。正弦波输出电路如图2所示。

4 软件设计

根据计算出的脉冲开关时间点,通过软件延时的方法来控制每个脉冲的开关时间,以完成脉冲输出的程序。但是,如果想得到相应的频率,必须对xy[i]作相应的变换。

以一个周期16个脉冲为例,计算出一个基准周期内各个脉冲的起停位置xy[1]~xy[31],如果需要其它频率值,可通过相应的数值变换得到。

例如,要获得6OOHz的正弦波,作如下变换:

for(i=0;i

SinDataF2[i]=(UWord32)xy[i]*237/(10*Fs)

其中Fs-600。

因此,输出一个周期正弦波算法的流程图如图3所示。

具体实现程序如下:

void SpwmGenerate(UWordl6 FI,UWordl6 F2){

intl;

UWordl6j;

UWordl6*pSinDataFlF2;

asm(bfclr#$8101,x:(PWMA_BASE+$3))

while(SpwmRun){

pSinDataFlF2=pSinDataFlF2reg;

for(i=0;i

for(j=1;J

asm(bfchg#$8101,x:(PWMA-BASE+$3));

}

}

}

5 结论

经过调试发现,输出正弦波有很好的特性,可以谓制出不同频率的正弦信号,在DSP的其它应用方面有一定参考价值。


相关内容

  • 基于DSP的正弦波信号发生器设计论文
  • DSP设计论文 题 目: 学 院: 专 业: 控制科学与工程 姓 名: 赵国朋 2015年 1 月 5 日 Abstract Digital signal processing (Digital Signal Processing, referred to as DSP) is a new subj ...

  • DSP控制SPWM全桥逆变器直流偏磁的研究
  • 摘要:提出了一种基于DSP的消除SPWM全桥逆变器直流偏磁问题的控制方案,采用TI公司的DSP芯片TMS320F240来实现.在一台400Hz6kW样机上进行了实验,实验结果表明该方案能较好地解决全桥逆变器中的直流偏磁问题.本文引用地址:http://www.eepw.com.cn/article/ ...

  • HF-01 型 电除尘 高频电源 说明书
  • HF-01 型电除尘器高频电源 --<基础知识> 南京国电环保设备有限公司 2010年10月10日 目录 HF-01 型电除尘器高频电源 ........................................................................... ...

  • 关于光伏发电技术研究
  • 光伏发电技术研究 1前言 随着能源危机和使用传统能源对环境的影响,以煤炭和石油为主的传统能源发电在整个电力系统中比例会逐渐减少.以风能和太阳能为主的新能源将会在今后有长足的发展.太阳能以其清洁,无污染,装置安装方便,适用地域广泛的优势,将成为21 世纪最有前途的的新能源之一. 目前太阳能发电主要有两 ...

  • 电力电子毕业设计
  • 中原工学院 本科毕业设计(论文)开题报告 题目: 单相交流电源的设计 教学单位: 专 业: 学 号: 姓 名:指导教师: 2012年 2月 一.题目背景.研究意义及国内外相关研究情况. (1)题目背景 现代电源技术是应用电力电子半导体器件,综合自动控制.计算机(微处理器)技术和电磁技术的多学科边缘交 ...

  • 单片机毕业设计题目
  • 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC1211的温度智能温度传感器 9. 机器视觉系统 ...

  • 自动化毕业设计论文题目
  • 自 动 化 毕 业 设 计 论 文 题 目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC12 ...

  • 通信工程毕业设计题目精选
  • 不管怎样,生活还是要继续向前走去.有的时候伤害和失败不见得是一件坏事,它会让你变得更好,孤单和失落亦是如此.每件事到最后一定会变成一件好事,只要你能够走到最后. 通信工程毕业设计题目精选 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激 ...

  • 电气自动化设计论文题目大全
  • 机电一体化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数 ...