积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> DSP >> freescale DSP
  相关分类: 应用论文 | TI DSP | 新产品 | 算法 | 下载 | DSP代码示例 | ADI DSP | freescale DSP |
用DSP56F805 PWM模块输出高频正弦波
 
作者:北方工业大学 朱书善 王俊卿 胡玉祥   来源:单片机及嵌入式系统应用    点击数:704   更新时间:2007-2-8
您可以添加到网摘 让更多人关注此文章:

    

针对Motorola DSP56F805的PWM模块中不能产生高频正弦波的缺点,根据SPWM原理,由直接面积等效法,计算出对应脉冲的起始点和终点,然后编程实现,经调试发现调制出的正弦波具有良好的特性。
    DSP56F805是一种专门用来控制电机的微处理器,内部具有各种功能模块,例如,A/D转换模块、PWM模块、定时器模块等,为开发基于DSP的系统提供了很大便利。针对开发系统,Motorola为我们提供了相应的软件开发工具CodeWarrior及SDK,使得我们开发基于Motorola DSP的系统更加方便快捷。


1 问题的描述
    Motorola的嵌入式SDK(Software Development Kit)是一个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<17;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<9;i++)fprintf(fp,“%u,”,xy[i]);fprintf(fp,“n”);
    for(i=9;i<17;i++)fprintfp.“%u,”,xy[il);fprintf(fp,“n”):
    for(i=17;i<25;i++)fprintf(fp,“%u,”,xy[i]);fprintf(fp,“\n”);
    for(i=25;i<33;i++)fprintf(fp,“%u,”,xy[i]);fprintfffp,“n”);
    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<33;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<32;i++,pSinDataFlF2++){
    for(j=1;J<*pSinDataFlF2;j++);
    asm(bfchg#$8101,x:(PWMA-BASE+$3));
    }
  }
}

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



相关文章
· 科技奥运与计算机技术的应用[289]
· Electromedical[2582]
· 患者监控[2633]
· 基于TMS320LF2407A DSP的心电监护系统研究[3059]
· 用S3C2410实现三导联远程心电监护系统[2983]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
安富利助中国中小型制造企业摆脱购买假
富士通微电子与北京航空航天大学共建M
西安市民发明用牙齿听声音的传导器
日本制成超微结构 有望大幅
中国嵌入式系统产业联盟嵌入式技术论坛
ARM联手IBM等三家公司开发32n
Hitachi Elect
中国芯片供需缺口达七成
西班牙研发出视觉鼠标 眨眼
首条OLED生产线昆山投产 
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
99SE请教个问题...
EDA工具集合(2)...
EDA工具集合(1)...
嵌入式开发液晶显示...
比尔盖茨给年轻人的10句警言...
各种单片机的总结(优缺点)...
[转帖]AVR的主要特性...
[转帖]AVR芯片的ISP全攻...
写给迷茫中的嵌入式新手...
Arm/DSP/FPGA的比较...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网