msp430单片机实现PWM
PWM信号是一种具有固定周期(T)不定占空比(t)的数字信号,如下图所示。
如果PWM信号的占空比随时间变化,那么通过滤波之后的输出信号将是幅度
变化的模拟信号。
因此通过控制PWM信号的占空比,就可以产生不同的模拟
信号。
msp430单片机利用Timer_A或者Timer_B可以很好的实现产生任意PWM
信号。
Timer_A定时器的计数器工作在增计数方式,输出采用模式7(复位/置位模式),则可以利用CCR0控制PWM波形的周期,用某个寄存器CCRx控制占空比。
原理图如下:(注:这幅图片为网上下载,他用的是Timer_B定时器,故输出TBx)
摘录下面一段:www1.ti/customer/article/article12161.asp
将Timer_B配置为16-bit、up模式。
在这种模式下计数器计数至CCR0,然
后复位从0开始重新计数。
给CCR0赋值255也就意味着计数器的长度为
8bits。
CCR1和TB1用于产生正弦波,CCR2和TB2用于产生直流电平。
输出模式都选为模式7,即PWM复位/置位模式。
如图2所示,在这种模式下,复
位后每一个定时器的输出都为高电平,直到计数器达到各自的CCRx值时变为
低电平,当计数器达到CCR0时再置位。
也就是说CCRx的值决定了各自正脉
冲的宽带。
若CCRx的值是变化的,就可以产生可变宽度的脉冲,下文中的正
弦波就是用这种办法产生的;若不变则产生的是固定宽度的脉冲,下文中的直
流电平就是这样产生的。
最后SMCLK用作Timer_B的时钟源。
系统采用
32768Hz的钟表晶振,通过采用内部硬件锁频环FLL(frequency-locked-loop),。