打印

如何用DSP输出SPWM波形

[复制链接]
2706|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cuiyangewsw|  楼主 | 2010-6-25 09:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
Siderlee| | 2010-6-25 22:34 | 只看该作者

使用特权

评论回复
板凳
lookforjason| | 2010-6-25 22:48 | 只看该作者
用DSP来做  会不会太奢侈啊  开关电源都有专用的PWM波控制器啊

DSP2000系列的应该都可以产生PWM信号   具体好像是有个周期计数器  产生矩形波  然后可以自己设置个阀值  这样就可以产生可调的PWM信号  我也好久没有用dsp了  =下帮你查下看还有这个资料没  我的资料是2407的不晓得你用的上不

使用特权

评论回复
地板
lookforjason| | 2010-6-25 22:50 | 只看该作者
#include     "f2407_c.h"

void disable()
{
    asm("  setc INTM  ");     //禁止可屏蔽中断
}
void inini()
{
    asm("  setc SXM  ");        //要做符号扩展
    asm("  clrc OVM  ");       //累加器中的结果正常溢出
    asm("  clrc CNF  ");       //片上DARAM作为数据储存器
    *SCSR1=0X83FE;             //2倍频 P166
    *WDCR=0X0E8;               //关闭看门狗 P176
    *IMR=0X0;                  //P184 禁止所有中断
    *IFR=0XFFFF;               //写1清0
     WSGR=0X0;                  //等待周期都为0
}
void pwminit()
{
    *MCRA=*MCRA|0X03C0;      //P199  PWM1 2 3 4为基本功能
    *ACTRA=0X0066;          //P243  PWM1 4输出低有效  PWM2 3高有效
    *DBTCONA=0X960;            //P246 9个死区CLK
    *CMPR1=20;   
    *CMPR2=20;   /////////////////    占空比1  
    *T1PR=40;    //////////////////    1M的频率 实际计数周期为41 因为从0开始计
    *COMCONA=0X8200;         //P243
    *T1CON=0X1000;      //P230 f,MOD
}
void interrupt nothing()
{
    return ;
}
void main()
{
    disable();
    inini();
    pwminit();
    *T1CON=*T1CON|0X40; //启动
    while(1);
}

使用特权

评论回复
5
cuiyangewsw|  楼主 | 2010-6-30 10:49 | 只看该作者
太感谢您了,这个内容对于我来说很重要,谢谢啊 4# lookforjason

使用特权

评论回复
6
ff_hust| | 2010-6-30 16:31 | 只看该作者
TI的DSP资料是有例程的,而且相关的说明也非常详细

使用特权

评论回复
7
zhangdafeng| | 2018-8-7 16:26 | 只看该作者
我在21IC中国电子网技术论坛上看到你以前做过关于通过DSP实现SPWM波的输出,我目前搞研究需要产生3路互补SPWM信号,用单片机或DSP实现,希望您能帮帮我,不胜感激!!!

使用特权

评论回复
8
zhangdafeng| | 2018-8-7 16:31 | 只看该作者
lookforjason 发表于 2010-6-25 22:50
#include     "f2407_c.h"

void disable()

您好!我目前搞研究需要产生3路互补SPWM信号,用单片机或DSP实现,希望您能帮帮我,不胜感激!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

39

帖子

1

粉丝