3416|10

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

求助,关于滤波 [复制链接]

在MSP430开发板上利用软件产生SPWM波,然后加个滤波电路想产生周期为1s的正弦波,可是加上硬件后出不来正弦波,求助滤波电路应该怎么改,软件设计有问题吗?
下面附有软件程序和外部滤波电路图,滤波电路放大器用的是opa2227,因为放大一倍,所以R4=0,直接连的导线
//******************************************************************************
//  LaunchPad Lab4 - Timer Toggle P1.6,
//
//                MSP430G2553
//             -----------------
//         /|\|              XIN|-
//          | |                 |
//          --|RST          XOUT|-
//            |                 |
//            |             P1.6|-->LED
//
//******************************************************************************
#include  
short temp[200]={2500,2578,2656,2735,2813,2891,2968,3045,3121,3197,3272,3346,3420,
  3492,3564,3634,3704,3772,3839,3904,3969,4031,4093,4152,4211,4267,4322,4374,
  4425,4474,4522,4567,4610,4651,4690,4727,4761,4793,4823,4851,4877,4900,4920,
  4939,4955,4968,4979,4988,4994,4998,4999,4998,4994,4988,4979,4968,4955,4939,
  4920,4900,4877,4851,4823,4793,4761,4727,4690,4651,4610,4567,4522,4474,4425,
  4374,4322,4267,4211,4152,4093,4031,3969,3904,3839,3772,3704,3634,3564,3492,
  3420,3346,3272,3197,3121,3045,2968,2891,2813,2735,2656,2578,2500,2421,2343,
  2264,2186,2108,2031,1954,1878,1802,1727,1653,1579,1507,1435,1365,1295,1227,
  1160,1095,1030,968,906,847,788,732,677,625,574,525,477,432,389,348,309,272,
  238,206,176,148,122,99,79,60,44,31,20,11,5,1,0,1,5,11,20,31,44,60,79,99,122,
  148,176,206,238,272,309,348,389,432,477,525,574,625,677,732,788,847,906,968,
  1030,1095,1160,1227,1295,1365,1435,1507,1579,1653,1727,1802,1878,1954,2031,
  2108,2186,2264,2343,2421};
int i=0;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
{
  while(1);             // If calibration constants erased, trap CPU!!
}
BCSCTL1 = CALBC1_1MHZ;       // Set range
DCOCTL = CALDCO_1MHZ;        // Set DCO step + modulation
BCSCTL3 |= LFXT1S_2;                      // LFXT1 = VLO
P1DIR = 0x40;                             // P1.6 output (green LED)
P1OUT = 0;                                // LED off
IFG1 &= ~OFIFG;                           // Clear OSCFault flag
BCSCTL1 |= DIVA_0;        // ACLK = VLO
BCSCTL2 |= SELM_0 + DIVM_0 + DIVS_0;      // MCLK = DCO, SMCLK = DCO
// Configure TimerA
TACTL = TASSEL1 +MC_1;         // Source: ACLK, UP mode
CCR0 = 5000;     //Timer count 5100
CCR1 = 2500;      //Timer count 100
CCTL0 = CCIE;                   //CCR0 interrupt enabled
CCTL1 = CCIE;                   //CCR1 interrupt enabled
_BIS_SR(GIE);
for(;;);
}
// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A0 (void)
{
P1OUT |= BIT6;                // P1.6 output High
if(i==199)
{
  i=0;
}
else
{
  i++;
}
if(temp==4999)
{
  CCR1=4998;
}
else
{
  CCR1=temp;
}
}
// Timer A1 Interrupt Vector (TA0IV) handler
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A1(void)
{
switch( TA0IV )
{
case  2: P1OUT &= ~BIT6;                    // P1.6 output Low
           break;
case 10:
           break;
}
}

QQ截图20130827192432.png (7.04 KB, 下载次数: 0)

滤波电路

滤波电路

最新回复

运算放大器低通滤波器计算器  详情 回复 发表于 2013-8-28 10:49

点评

用个带通滤波器要好些, 另外这个运放是什么型号?  详情 回复 发表于 2013-8-27 22:35
 
点赞 关注

回复
举报

4008

帖子

0

TA的资源

版主

沙发
 
先不管滤波,截个spwm波形图看看

点评

SPWM波是可以出来的  详情 回复 发表于 2013-8-28 09:17
 
 

回复

474

帖子

2

TA的资源

纯净的硅(初级)

板凳
 

回复 楼主Circles 的帖子

用个带通滤波器要好些,
另外这个运放是什么型号?

点评

运放用的是opa2227  详情 回复 发表于 2013-8-28 09:15
好的,我试试  详情 回复 发表于 2013-8-28 09:11
 
 
 

回复

96

帖子

0

TA的资源

一粒金砂(高级)

4
 
你这样胡来,能出来也只能算你运气好碰对了,先推荐楼主回去看看信号与系统里面采样那个章节。这个滤波器的设计和你的“采样频率”,就是PWM占空比变换频率,以及你的最大输出频率有关,滤波器的截止频率要选择在二者中间,而且在一定的频程内要把把镜像频率滤掉,不同的情况对滤波器的阶数,带外衰减都有要求。根据采样定理,两个点的方波是可以滤成正弦波的,但是这样的滤波器太理想了,现实中没有,所以还得增加但周期内采样点数。楼主也可以去看看DDS的资料

[ 本帖最后由 干磨河 于 2013-8-27 22:57 编辑 ]

点评

恩,好的,谢谢你,有很多都不懂,回去研究一下,最近也在研究DDS  详情 回复 发表于 2013-8-28 09:25
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 板凳zgbkdlm 的帖子

好的,我试试
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 板凳zgbkdlm 的帖子

运放用的是opa2227
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 沙发huo_hu 的帖子

SPWM波是可以出来的

psb1.jpg (89.06 KB, 下载次数: 0)

psb1.jpg

psb2.jpg (81.98 KB, 下载次数: 0)

psb2.jpg
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复 4楼干磨河 的帖子

恩,好的,谢谢你,有很多都不懂,回去研究一下,最近也在研究DDS
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

9
 
因为放大一倍,所以R4=0

错不错?

要不你还是用这种形式,把运放2,3脚对调一下

点评

谢谢你的建议,R4直接等于零当时也觉得有点不妥,就想先试试看能不能滤出来,结果到芯片的3管脚的波形还勉强是个正弦波,不过有杂波,但是从1管脚输出就完全不是正弦波了,还有谢谢你下面的那个滤波电路计算器  详情 回复 发表于 2013-8-28 12:38
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

10
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

11
 

回复 9楼wangfuchong 的帖子

谢谢你的建议,R4直接等于零当时也觉得有点不妥,就想先试试看能不能滤出来,结果到芯片的3管脚的波形还勉强是个正弦波,不过有杂波,但是从1管脚输出就完全不是正弦波了,还有谢谢你下面的那个滤波电路计算器
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表