梁桃華 周江
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]設(shè)有2個16位的定時器/計數(shù)器TA0和TA1,而且各自包含3個捕獲/比較模塊(Capture/Compare Blocks),本文主要研究其比較功能。由于TA0和TA1的功能很類似,以下基本以TA0為例展開論述。
1TA0的計數(shù)時鐘源選擇及分頻比設(shè)置
TA0的計數(shù)時鐘源有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個位組合確定的,可以設(shè)置成1、2、4或8分頻。如圖1所示。
2TA0的計數(shù)模式
TA0計數(shù)器有4種工作模式:停止、加計數(shù)、連續(xù)計數(shù)和加/減計數(shù),分別可以通過設(shè)置TA0CTL的MCx(x = 0,1)這2個位為00、01、10或11來做出選擇。各種工作模式的功能應(yīng)用設(shè)計可闡釋如下。
在加計數(shù)模式下,計數(shù)器從0開始正計數(shù)到與寄存器TA0CCR0的值相等,再回到0開啟下一輪計數(shù),所以其周期取決于計數(shù)時鐘頻率、分頻比及TA0CCR0的數(shù)值。連續(xù)計數(shù)是計數(shù)器從0正計數(shù)到最大值0xFFFF,再回到0重復(fù)這一過程,所以其周期只由計數(shù)時鐘頻率和分頻比決定。而加/減計數(shù)是計數(shù)器從0正計數(shù)到與TA0CCR0的值相等,再倒計數(shù)回到0,而后重復(fù)如上過程,所以在計數(shù)時鐘頻率、分頻比和TA0CCR0的值相同的情況下,其周期是加計數(shù)的2倍。
3MSP430G2553比較輸出功能研究
3.1MSP430G2553比較輸出功能總論
如前所述,MSP430G2553的TA0和TA1各有3個捕獲/比較模塊,每個模塊都有獨立的控制寄存器,因而總共配有6個捕獲/比較控制寄存器(Capture/Compare Control Register)[6-7]。對于TA0的比較模塊0,其控制寄存器的名字是TA0CCTL0。
在設(shè)計上,捕獲功能重點是指測量信號的周期或脈沖寬度,而比較功能一般與輸出單元(Output Unit)合并使用,3個捕獲/比較模塊各自對應(yīng)有一個輸出單元,所以在本文中將其稱為比較輸出功能。該功能主要是用于PWM(Pulse Width Modulation,脈沖寬度調(diào)制)波形。定時器TA0及其比較模塊和輸出單元的關(guān)系如圖2所示。圖2中的輸出引腳不一定是唯一的,比如,4、19、22、27腳都可以通過程序配置為TA0.1的輸出。MSP430G2553有4種封裝,分別是TSSOP20、PDIP20、TSSOP28和QFN32。圖3即為MSP430G2553的引腳圖(TSSOP28封裝)[8]。為使圖面簡潔,設(shè)計刪除了與本文無關(guān)的引腳功能。
圖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個位來設(shè)定選擇。輸出模式0只與控制寄存器的OUT位有關(guān):當(dāng)OUT = 0時,輸出低電平;當(dāng)OUT = 1時,輸出高電平。其它7種輸出模式則可見圖4。