3894|4

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

急,PWM [复制链接]

我需要输出6路不同相位的PWM输出,相位差为60度,不知道如何设定相位差,请各位大虾帮忙。
我用的是MSP430F449。

最新回复

如果你输出的波形是有规律的,即周期性的,使用一个定时器做载波频率,定期中断,如20KHZ,再在中断函数里查表,根据不同读相位选取常数在表格中的位置,对CCR的常数重加载,达到改变相位的目的.当然如果采用不同的表格(6路输出,6套表格).可以比采用同一个表格节省时间.我以前使用三菱的单片机采用的是1024点的正弦表,MCU是16MHZ振荡频率,出来的三相PWM波很漂亮.不知道MSP430如何,能否吃得消在20KHZ的中断里做一定的判断跳转  详情 回复 发表于 2005-6-6 10:59
 
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
//*******************************************************************************
// MSP-FET430P140 Demo - Timer_B, PWM TB1-6, Up Mode, 32kHz ACLK
//
// Description; This program outptus six PWM signals on P2.2,3 and P3.4-7
// using Timer_B configured for up mode. The value in CCR0 defines the PWM
// period and the values in CCR1-6 the PWM duty cycles. Using 32kHz ACLK
// as TBCLK, the timer period is 15.6ms. Normal operating mode is LPM3.
// ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz
// //* An external watch crystal between XIN & XOUT is required for ACLK *//
//
// MSP430F449
// -----------------
// /|\| XIN|-
// | | | 32kHz
// --|RST XOUT|-
// | |
// | P2.2/TB1|--> CCR1 - 75% PWM
// | P2.3/TB2|--> CCR2 - 25% PWM
// | P3.4/TB3|--> CCR3 - 12.5% PWM
// | P3.5/TB4|--> CCR4 - 6.25% PWM
// | P3.6/TB5|--> CCR5 - 3.125% PWM
// | P3.7/TB6|--> CCR6 - 1.5625% PWM
//
// M. Buccini
// Texas Instruments Inc.
// Feb 2005
// Built with IAR Embedded Workbench Version: 3.21A
//******************************************************************************
#include <msp430x44x.h>

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
FLL_CTL0 |= XCAP18PF; // Configure load caps
P2DIR |= 0x0c; // P2.2 - P2.3 output
P2SEL |= 0x0c; // P2.3 - P2.3 TBx options
P3DIR |= 0xF0; // P3.4 - P3.7 output
P3SEL |= 0xF0; // P3.4 - P3.7 TBx options
TBCCR0 = 512-1; // PWM Period
TBCCTL1 = OUTMOD_7; // CCR1 reset/set
TBCCR1 = 384; // CCR1 PWM duty cycle
TBCCTL2 = OUTMOD_7;
TBCCR2 = 128;
TBCCTL3 = OUTMOD_7;
TBCCR3 = 64;
TBCCTL4 = OUTMOD_7;
TBCCR4 = 32;
TBCCTL5 = OUTMOD_7;
TBCCR5 = 16;
TBCCTL6 = OUTMOD_7;
TBCCR6 = 8;

TBCTL = TBSSEL_1 + MC_1; // ACLK, up mode

_BIS_SR(LPM3_bits); // Enter LPM3
}

周期一样,脉宽不同
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢版主
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
可相位差怎么设置阿?
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

5
 

可以考虑采用变频器的思路

如果你输出的波形是有规律的,即周期性的,使用一个定时器做载波频率,定期中断,如20KHZ,再在中断函数里查表,根据不同读相位选取常数在表格中的位置,对CCR的常数重加载,达到改变相位的目的.当然如果采用不同的表格(6路输出,6套表格).可以比采用同一个表格节省时间.我以前使用三菱的单片机采用的是1024点的正弦表,MCU是16MHZ振荡频率,出来的三相PWM波很漂亮.不知道MSP430如何,能否吃得消在20KHZ的中断里做一定的判断跳转
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表