梁桃華 周江



Abstract: Pulse Width Modulation is widely used in various industrial control field. Taking TI MSP430G2553 as an example, the paper mainly explores the compare and output function to generate output pulse width modulation waveform, and gives the realization of the function's configuration and complete configuration program.
引言
研究可知,MSP430G2553[1-5]設有2個16位的定時器/計數器TA0和TA1,而且各自包含3個捕獲/比較模塊(Capture/Compare Blocks),本文主要研究其比較功能。由于TA0和TA1的功能很類似,以下基本以TA0為例展開論述。
1TA0的計數時鐘源選擇及分頻比設置
TA0的計數時鐘源有4種選擇,由TA0的控制寄存器TA0CTL中的TASSELx(x = 0,1)這2個位共同決定,分別選擇:TA0CLK、ACLK、SMCLK和INCLK。其中,TA0CLK是從引腳P1.0輸入的外部時鐘(見器件引腳圖),ACLK是輔助時鐘(Auxiliary Clock),SMCLK是副主時鐘(Sub-System Master Clock),INCLK則來自于引腳振蕩器(Pin Oscillator)。而分頻比是由TA0CTL中的IDx(x = 0,1)這2個位組合確定的,可以設置成1、2、4或8分頻。如圖1所示。
2TA0的計數模式
TA0計數器有4種工作模式:停止、加計數、連續(xù)計數和加/減計數,分別可以通過設置TA0CTL的MCx(x = 0,1)這2個位為00、01、10或11來做出選擇。各種工作模式的功能應用設計可闡釋如下。
在加計數模式下,計數器從0開始正計數到與寄存器TA0CCR0的值相等,再回到0開啟下一輪計數,所以其周期取決于計數時鐘頻率、分頻比及TA0CCR0的數值。連續(xù)計數是計數器從0正計數到最大值0xFFFF,再回到0重復這一過程,所以其周期只由計數時鐘頻率和分頻比決定。而加/減計數是計數器從0正計數到與TA0CCR0的值相等,再倒計數回到0,而后重復如上過程,所以在計數時鐘頻率、分頻比和TA0CCR0的值相同的情況下,其周期是加計數的2倍。
3MSP430G2553比較輸出功能研究
3.1MSP430G2553比較輸出功能總論
如前所述,MSP430G2553的TA0和TA1各有3個捕獲/比較模塊,每個模塊都有獨立的控制寄存器,因而總共配有6個捕獲/比較控制寄存器(Capture/Compare Control Register)[6-7]。對于TA0的比較模塊0,其控制寄存器的名字是TA0CCTL0。
在設計上,捕獲功能重點是指測量信號的周期或脈沖寬度,而比較功能一般與輸出單元(Output Unit)合并使用,3個捕獲/比較模塊各自對應有一個輸出單元,所以在本文中將其稱為比較輸出功能。該功能主要是用于PWM(Pulse Width Modulation,脈沖寬度調制)波形。定時器TA0及其比較模塊和輸出單元的關系如圖2所示。圖2中的輸出引腳不一定是唯一的,比如,4、19、22、27腳都可以通過程序配置為TA0.1的輸出。MSP430G2553有4種封裝,分別是TSSOP20、PDIP20、TSSOP28和QFN32。圖3即為MSP430G2553的引腳圖(TSSOP28封裝)[8]。為使圖面簡潔,設計刪除了與本文無關的引腳功能。
圖3中,輸出單元在引腳上的標識方式是TAm.n。其中,m的值是0或1,分別表示該輸出引腳所使用的定時器是TA0或TA1;n的值是0、1或2,特指含義就是輸出單元的編號。比如,4腳標注的是TA0.1,意思是在比較輸出功能下,該引腳的波形是由TA0定時、輸出單元1輸出的。其余類推。
3.2MSP430G2553比較輸出功能解析
輸出模式有8種,由捕獲/比較控制寄存器的OUTMODx(x = 0,1,3)這3個位來設定選擇。輸出模式0只與控制寄存器的OUT位有關:當OUT = 0時,輸出低電平;當OUT = 1時,輸出高電平。其它7種輸出模式則可見圖4。