引言:MSP430的教科書(shū)通讀了一遍,只是對其有一個(gè)整體的朦朧感.于是昨天開(kāi)始準備編些程序試下自己的水平.可對著(zhù)空蕩蕩的代碼區硬是一個(gè)字都寫(xiě)不下去.涉及到細節問(wèn)題,基本就是無(wú)從下手.現把一些細節問(wèn)題整理在這個(gè)專(zhuān)欄里面,以備后面查證.同時(shí)覺(jué)得自己欠缺的還是一個(gè)對總體框架的把握,看來(lái)是要多讀一些東西了.
正文:MSP430根據型號的不同最多可以選擇使用3個(gè)振蕩器。我們可以根據需要選擇合適的振蕩頻率,并可以在不需要時(shí)隨時(shí)關(guān)閉振蕩器,以節省功耗。這3個(gè)振蕩器分別為:
(1)DCO 數控RC振蕩器。它在芯片內部,不用時(shí)可以關(guān)閉。DCO的振蕩頻率會(huì )受周?chē)h(huán)境溫度和MSP430工作電壓的影響,且同一型號的芯片所產(chǎn)生的頻率也不相同。但DCO的調節功能可以改善它的性能,他的調節分為以下3步:a:選擇BCSCTL1.RSELx確定時(shí)鐘的標稱(chēng)頻率;b:選擇DCOCTL.DCOx在標稱(chēng)頻率基礎上分段粗調;c:選擇DCOCTL.MODx的值進(jìn)行細調。
(2)LFXT1 接低頻振蕩器。典型為接32768HZ的時(shí)鐘振蕩器,直接連接在XIN與XOUT之間,此時(shí)振蕩器不需要接負載電容。也可以接450KHZ~8MHZ的標準晶體振蕩器,此時(shí)需要接負載電容.LXFT1產(chǎn)生的頻率信號為ACLK.低速時(shí)鐘需要上百毫秒的建立時(shí)間才能穩定下來(lái).
(3)XT2 接450KHZ~8MHZ的標準晶體振蕩器。外部標準晶體振蕩器接在XT2IN和XT2OUT之間,此時(shí)需要接負載電容,不用時(shí)可以關(guān)閉。
低頻振蕩器主要用來(lái)降低能量消耗,如使用電池供電的系統,高頻振蕩器用來(lái)對事件做出快速反應或者供CPU進(jìn)行大量運算。
MSP430的3種時(shí)鐘信號:MCLK系統主時(shí)鐘;SMCLK系統子時(shí)鐘;ACLK輔助時(shí)鐘。
(1)MCLK系統主時(shí)鐘。除了CPU運算使用此時(shí)鐘以外,外圍模塊也可以使用。MCLK可以選擇任何一個(gè)振蕩器所產(chǎn)生的時(shí)鐘信號并進(jìn)行1、2、4、8分頻作為其信號源。
(2)SMCLK系統子時(shí)鐘。供外圍模塊使用。并在使用前可以通過(guò)各模塊的寄存器實(shí)現分頻。SMCLK可以XT2CLK或者DCOCLK振蕩器所產(chǎn)生的時(shí)鐘信號并進(jìn)行1、2、4、8分頻作為其信號源。
(3)ACLK輔助時(shí)鐘。供外圍模塊使用。并在使用前可以通過(guò)各模塊的寄存器實(shí)現分頻。但ACLK只能由LFXT1進(jìn)行1、2、4、8分頻作為信號源??梢宰鳛楹笈_時(shí)鐘用來(lái)喚醒CPU.
(4)ACLK/N, ACK緩沖輸出,他可以有ACL.1.2.4.8分頻獲得 ,且只能為外部所用.
PUC復位后,MCLK和SMCLK的信號源為DCO,DCO的振蕩頻率為800KHZ。ACLK的信號源為L(cháng)FXT1。
MSP430內部含有晶體振蕩器失效監測電路,監測LFXT1(工作在高頻模式)和XT2輸出的時(shí)鐘信號。當時(shí)鐘信號丟失50us時(shí),監測電路捕捉到振蕩器失效。如果MCLK信號來(lái)自L(fǎng)FXT1或者XT2,那么MSP430自動(dòng)把MCLK的信號切換為DCO,這樣可以保證程序繼續運行。但MSP430不對工作在低頻模式的LFXT1進(jìn)行監測。
關(guān)于MSP430的定時(shí)器A
16位TIMER_A的主要功能模塊包括: 。一個(gè)可連續增計數至預定值并返回0的計數器,也可是其停止.。軟件可選擇的時(shí)鐘源.
。 選定的時(shí)鐘源可作1,2,4和8分頻.
。5個(gè)捕獲/比較寄存器.每個(gè)都有獨立的捕獲事件,即硬件和軟件控制的2個(gè)捕獲信號.
。5個(gè)輸出模塊,支持脈寬調制需要.
定時(shí)器操作: 模式控制 模式 具體操作
MC1 MC0 (TATCL寄存器4~5位)
0 0 停止 定時(shí)器暫停
0 1 增計數 定時(shí)器增計數到等于比較寄存器0的值
1 0 連續 定時(shí)器連續增計數
1 1 增/減計數 定時(shí)器增計數到等于比較寄存器0的值,然后減計數到0
輸入分頻控制位(TACTL6~7)
ID1 ID2 分頻 說(shuō)明
0 0 PASS 輸入信號直通定時(shí)器
0 1 /2 輸入信號2分頻
1 0 /4 輸入信號8分頻
定時(shí)器的時(shí)鐘源:
SSEL2 SSEL1 SSEL0 輸入信號 說(shuō)明
0 0 0 TACLK 用特定的外部引腳信號
0 0 1 ACL 用輔助時(shí)鐘ACLK
0 1 0 MCLK 用系統時(shí)鐘MCLK
0 1 1 INCLK 見(jiàn)器件說(shuō)明
1 X X ---- 保留
捕獲模式: 位于控制字CCTLX中的模式位CAPX的置位將選擇捕獲模式。 捕獲模式用于時(shí)間時(shí)間的精確定位,她可以用在速度計算或時(shí)間測量中.若在選定的輸入引腳上發(fā)生選定脈沖觸發(fā)沿.則定時(shí)器計數的值將被復制到捕獲寄存器CCRX中.完成捕獲后??刂谱諧CTLX中的中斷標志CCIFGX置位;。如果通用中斷允許位GIE和相應的中斷標志位CCIEX置位,則產(chǎn)生中斷請求.復位表示在下一次捕獲完成前捕獲數據已被讀取.如果捕獲數據還未讀取時(shí)第二次捕獲數據已鎖存,則寄存器CCTLX中的溢出位COVX置位,檢查這一位可以使程序從失去同步狀態(tài)中恢復.需要用軟件來(lái)復位COVX.
CCRX_Int_hand ... ;中斷處理
...
...
MOV &CCRX,RAM_Buffer
BIT #COV,&CCTLX ;BIT指令對各標志位的影響:N最高位為時(shí)置位,Z結果為0時(shí)置位,
;C結果非零時(shí)置位;V復位
JNZ Overflow_Hand ;JNZ非0跳轉,溢出出錯處理,否則正常處理
....
....
RETI
Overflow_Hand BIC #COV,&CCTLX
;復位捕捉溢出標志,恢復同步
....
....
RETI
定時(shí)器暫停時(shí)捕獲應該停止.順序應是先停止捕獲功能,再停止定時(shí)器計數.捕獲功能重新開(kāi)始時(shí),順序應先開(kāi)始捕獲功能,再開(kāi)始定時(shí)器計數.
比較模式: 如果控制字CCTLX中CAPX復位,則選擇比較模式.這時(shí)所有的捕獲硬件停止工作.如果定時(shí)器計數值等于比較寄存器X中的值,那么。位于控制字CCTLX中的中斷標志CCIFX置位.。如果GIE和CCIEX置位,則產(chǎn)生中斷請求.。EQUX信號輸出到輸出單元OUTX中.根據選定輸出模式,信號可以是置位、復位、或將輸出OUTX翻轉(如果OUTMODX>0)當定時(shí)器值大于或者等于CCR0的值時(shí),EUQ0信號為真;當定時(shí)器值等于相應的CCR1~CCR4的值時(shí),EQU1~EQU4信號為真.
輸出單元:輸出單元支持PWM或者DAC應用
OUTMODX 模式 說(shuō)明
000 輸出模式 OUTX位的數據即OUTX信號
001 置位 比較信號EQUX使OUTX信號置位
010 PWM翻轉/置位 比較信號EQUX使OUTX信號翻轉,EQU0使OUTX信號復位
011 PWM置位/復位 比較信號EQUX使OUTX信號置位,EQU0使OUTX信號復位
100 翻轉 比較信號EQUX使OUTX翻轉
101 復位 比較信號EQUX使OUTX復位
110 PWM翻轉/復位 比較信號EQUX使OUTX信號翻轉,EQU0使OUTX信號置位
111 PWM復位/置位 比較信號EQUX使OUTX信號復位,EQU0使OUTX信號置位
輸出從現有的電平開(kāi)始,而與選定的模式無(wú)關(guān).1.增計數模式:當定時(shí)器增計數到CCRX以及由CCR0計數到0時(shí),OUTX信號根據選定的輸出模式發(fā)生變化.2.連續計數模式:當定時(shí)器計數到CCRX和計數到CCR0時(shí),OUTX信號根據選定的輸出模式發(fā)生變化.3.增/減計數模式:當定時(shí)器增計數到CCRX和減計數到CCRX時(shí),OUTX信號根據選定的輸出模式發(fā)生改變.
暫告一段落,感覺(jué)感覺(jué)現在的自己超級笨,這么一點(diǎn)東西就折騰半天,而且具體怎么用還不是很清楚,真是慚愧~看來(lái)還是要有針對性的實(shí)驗以下或者看看別人的歷程會(huì )有效果。稍后把例程呈上
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。