收藏 分享(赏)

利用MSP430 的Timer_B 在比较模式下输出的脉宽调制(PWM)1.doc

上传人:11xg27ws 文档编号:6755921 上传时间:2019-04-22 格式:DOC 页数:3 大小:34KB
下载 相关 举报
利用MSP430 的Timer_B 在比较模式下输出的脉宽调制(PWM)1.doc_第1页
第1页 / 共3页
利用MSP430 的Timer_B 在比较模式下输出的脉宽调制(PWM)1.doc_第2页
第2页 / 共3页
利用MSP430 的Timer_B 在比较模式下输出的脉宽调制(PWM)1.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、利用 MSP430 的 Timer_B 在比较模式下输出的脉宽调制(PWM)1 基本原理PWM 信号是一种具有固定周期 T 不定占空比 的数字信号如图 1 所示如果 PWM 信号的占空比随时间变化那么通过滤波之后的输出信号将是幅度变化的模拟信号因此通过控制PWM 信号的占空比就可以产生不同的模拟信号在 MSP430F449 中就是采用 CCR0 来控制周期 T 而用与定时器对应的 CCRx 寄存器来控制可变占空比进而实现 D/A 转换.2 分辨率基于 Timer_B PWM 的 DAC 分辨率就等于计数器的长度通常是 CCR0 寄存器的值PWM DAC 的最低有效位是一个计数值分辨率是总的计数

2、值 Rcounts = Lcounts 其中Rcounts 是以计数值为单位的分辨率 Lcounts 是计数器的总计数值例如对 8-bitDAC 计数器的长度为 8 bits 或者 256 个计数值那么分辨率也就是 8 bits 或者 256 更一般的情况下基于PWM 定时器和滤波器的 PWM DAC 的分辨率等于产生模拟信号的 PWM 信号的分辨率PWM 信号的分辨率决定于计数器的长度和 PWM 计数器能够实现的最小占空比用数学表达式如下 Rcounts =其中 = Lcounts C 是最小占空比比特分辨率用下式计算如果 PWM 计数器的长度为 512 个计数值最小的占空比为 2 个计数值

3、那么 PWMDAC 的分辨率就为或者以比特表示.3 系统频率PWM 信号需要的输出频率等于 DAC 的更新频率因为 PWM 信号占空比的每一次变化等效于一次 DAC 抽样 PWM 定时器所需的频率取决于 PWM 信号频率和所需的分辨率如下所示图 1 PWM 信号示意图在这儿是所需的 PWM 定时器频率是 PWM 信号的频率也就是 DAC 的更新频率 n 是所需的比特分辨率下文即将描述怎样采用 8-bit PWM DAC 来同步产生一个 200Hz 的正弦波由抽样定理可得最低的抽样频率应该为 400Hz 但是通常情况下PWM 信号的频率要远高于 Nyquist 抽样速率这是因为 PWM 信号的频

4、率越高对滤波器的阶数就要求越低合适的滤波器越容易实现通常抽样速率取 Nyquist 速率的 16 或者 32 倍.4. 所需的 MSP430 资源文中的例子是用 MSP430F449 的 Timer_B 再加外部滤波器来产生一个 200Hz 的正弦波和一个 0.5VCC 的直流电平的将 Timer_B 配置为 16-bit up 模式在这种模式下计数器计数 CCR0 然后复位从 0 开始重新计数给 CCR0 赋值 255 也就意味着计数器的长度为 8bits CCR1 和 TB1 用于产生正弦波 CCR2 和 TB2 用于产生直流电平输出模式都选为模式 7 即 PWM 复位/置位模式如图 2

5、所示在这种模式下复位后每一个定时器的输出都为高电平直到计数器达到各自的 CCRx 值时变为低电平当计数器达到 CCR0 时再置位也就是说CCRx 的值决定了各自正脉冲的宽带若 CCRx 的值是变化的就可以产生可变宽度的脉冲下文中的正弦波就是用这种办法产生的若不变则产生的是固定宽度的脉冲下文中的直流电平就是这样产生的最后 SMCLK 用作 Timer_B 的时钟源系统采用 32768Hz 的钟表晶振通过采用内部硬件锁频环 FLL frequency-locked-loop 来校准 DCO Digital Control Oscillator 频率为系统提供 MCLK/SMCLK 时钟图 2 输出

6、模式 7 PWM 复位/置位示意图.5. 实现电路用 Timer_B PWM 实现 DAC 外围电路比较简单如图 3 所示实际上外围电路就是晶振电路和 RC 低通滤波器图 3 MSP430F449 实现 D/A 电路图.6 .正弦信号的产生在这个例子中一个正弦波用 32 个抽样值生成正弦波的频率为 200Hz 所以每秒要抽样20032=6400 次也就是说 =6.4KHz 每完成一次抽样要计数 28 所以所需的时钟频率为抽样值包含在程序开始的一个正弦表中通过调用中断函数在每个 PWM 周期结束时将新的正弦波抽样值载入捕获/比较寄存器 CCR1 中因此产生的 PWM 信号的脉冲宽度就决定了正弦波

7、在每一个时刻的抽样值将这个 PWM 信号经过低通滤波即得所需的正弦波.7.直流电平的产生直流电平产生比较简单因为它对应的 PWM 占空比是一定的直流电平直接正比于 PWM 信号的占空比要产生 0.5VCC 的直流电平 PWM 的占空比显然是 50% 考虑到损耗实际应大些只需要简单地将 CCR2 的值设置为 128 并且无须变化就可以得到 50%占空比的 PWM 信号将得到的 PWM 信号通过 RC 网络进行低通滤波即可得到 0.5VCC 的直流电平.8.滤波器设计对两路输出都采用了结构简单的 RC 滤波器如图 3 所示之所以采用这种结构一是因为RC 滤波器结构简单二是为了实现低功耗尽量避免采用

8、有源器件用于交流信号的滤波器是一个双极点级联 RC 滤波器如果滤波器阶数过高可以采用提高的抽样频率的办法来降低滤波器阶数滤波器的截至频率 fc 由下式来计算当 R2 = R1 时滤波器的响应较好但是如果截至频率很接近信号带宽边沿将会导致相当大的衰减因此为了减小滤波器的衰减截至频率应该大于信号带宽边沿但是要远小于 PWM 信号的频率用于产生直流电平的滤波器仅仅是用来储存电荷的而不像交流信号滤波器那样用来滤波因此采用了一个简单的单极 RC 滤波器.9.程序流程用 MSP430F449 的 Timer_B 的 PWM 来产生正弦波和直流电平的程序比较简单流程如图 4 所示 MSP430F449 自身

9、有 FLL 可用它来实现 DCO 的频率校准但是 DCO 的频率只能锁定在 ACLK 的整数倍上所以对于没有 FLL 的器件或者所需频率不是 ACLK 整数倍的情况下要用 Timer_A 或者其它的定时器进行 DCO 频率校准这也就是所谓的“软锁频“ 事实上实际的 D/A 转换常常是一些随时间变化的非周期信号它们对时钟的精度要求不是很高因此大多数情况下硬件 FLL 是可以胜任的.10. 程序清单MSP430 的另外一个特点是用 C 语言编写程序简单而且效率较高本例就采用 C 语言编写了程序清单如下#include #include int SampleTimes=0;/*定义正弦表,并用 32

10、 个抽样值初始化正弦表,不要用“0“抽样*/intSinTable=255,254,246,234,219,199,177,153,128,103,79,57,37,22,10,2,1,2,10,22,37,57,79,103,128,153,177,199,219,234,246,255;void main(void)图 4 软件流程int i;WDTCTL = WDTPW +WDTHOLD; / 禁止看门狗定时器/*初始化端口*/P2DIR |= 0x0C; / P2.2 和 P2.3 为输出P2SEL |= 0x0C; / P2.2 和 P2.3 分别为 TB1 和 TB2/*设置系统时

11、钟*/FLL_CTL0 = XCAP18PF; / 设置 XTAL1 的负载电容SCFQCTL = 50-1; / 1.6384MHz/32768Hz = 50,fDCO=MCLK=1.6384MHzfor (i = 50000; i; i-); / 晶振初始化延时/*设置 Timer_B*/TBCTL = TBSSEL1 + TBCLR; / 选择 SMCLK 为时钟定时器清除TBCTL|=MC_1+CNTL_0+TBCLGRP_0; /选择 up,16 位模式TBCCTL0=CCIE; /将 CCR0 设为比较模式,中断允许TBCCR0=256-1; /PWM 的周期为 256,也就是 D

12、AC 为 8bitTBCCTL1=OUTMOD_7+CLLD_1; /将 CCRx 设为比较模式,中断禁止TBCCTL2=OUTMOD_7+CLLD_1; /选择输出模式 7,当 TBR 计数到 0 时 CCRx数据加载到 TBCTLxTBCCR1=SinTableSampleTimes; /将正弦表加载到 CCR1TBCCR2=128; /PWM 的占空比为 50%,产生 0.5VCC 的直流电平_EINT(); /中断允许for (;) _BIS_SR(LPM0_bits); /CUP 进入低功耗模式_NOP();/调用中断函数interrupt TIMERB0_VECTOR void Timer_B(void)SampleTimes=(SampleTimes+1)%32;TBCCR1=SinTableSampleTimes; /将新的抽样值装入 CCR1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报