MSP430微控制器各種暫存器總結(2)——UCS
阿新 • • 發佈:2018-12-23
作者:BerenCamlost
本文針對於南京理工大學的王巨集波老師的MSP430微控制器原理與應用課程,請在複習時使用。
參考資料:
- 王巨集波老師的PPT
- MSP430F6638使用者手冊
- 王巨集波老師實驗教程
本章最新更新日期:2018.12.22
第二章 UCS暫存器
2.1 UCSCTL0
bit | Field | Description |
---|---|---|
12-8 | DCO | DCO輸出頻率範圍控制引數 |
7-3 | MOD | DCO輸出頻率範圍控制引數 |
上述的兩個區域並不需要設定,在配置FFL的時候直接設定成0即可,FLL配置完成後會自動被設定。
2.2 UCSCTL1
DCORSEL,DCOCLK的頻率範圍設定引數,通過它來設定DCOCLK的頻率範圍,比如:設定DCOCLK的輸出頻率範圍為0.64~14.0MHz
- 如下圖所示,可知設定頻率為0.64~14.0MHz的DCO需要將DCORSEL的值設定為3.
UCSCTL1 = DCORSEL_3; //DCORSEL_3是巨集定義,為0x0030
2.3 UCSCTL2 & UCSCTL3
2.3.1 暫存器示意圖
2.3.2 鎖頻環FLL
上述兩個是關於鎖頻環FFL的控制暫存器,FLL示意圖如下,務必背過此圖
2.3.3 FLL的計算公式
2.3.4 暫存器中各個位的解釋
Field | Description | 預設值 | 預設值對應的分頻係數 |
---|---|---|---|
FLLD | 圖中的FLLD分頻,公式中的D | 1H | 2 |
FLLN | 圖中的FLLN分頻,公式中的N,實際的分頻係數是N+1 | 1FH | 31+1 |
FLLREFDLV | 圖中的FLLREFDLV分頻,公式中的n | 0 | 1 |
2.4 UCSCTL4
2.4.1 暫存器示意圖
- 這個暫存器的作用是,為SMCLK、ACLK、MCLK選取訊號源。在UCS的實驗中幾乎是必用的。
2.4.2 暫存器功能
BIT | Field | Description | 預設值 | 預設值對應的選項 |
---|---|---|---|---|
10-8 | SELA | ACLK時鐘源選擇 | 0 | XT1CLK |
6-4 | SELS | SMCLK時鐘源選擇 | 4 | DCOCLKDIV |
2–0 | SELM | MCLK時鐘源選擇 | 4 | DCOCLKDIV |
2.4.3 例程
SMCLK=MCLK=DCOCLK,ACLK=XT1CLK
//注意這裡的賦值用“=”,而不是“|=”,區別不講了,重複過很多次了
UCSCTL4 = SELA__XT1CLK + SELM__DCOCLK + SELS__DCOCLK;
/*
#define SELA__XT1CLK (0x0000)
#define SELS__DCOCLK (0x0030)
#define SELM__DCOCLK (0x0003)
*/
2.5 UCSCTL6
這個暫存器只需要知道兩個位:
BITS | FIELD | Description | 預設 |
---|---|---|---|
8 | XT2OFF | 關閉XT2CLK | 關閉 |
0 | XT1CLK | 關閉XT1CLK | 關閉 |
注意,這裡的關閉的條件是,該時鐘訊號沒有被作為ACLK、SMCLK、MCLK、FLL參考時鐘的時鐘源。
2.6 UCSCTL7
振盪器故障標誌位暫存器,如果想要穩定XT1CLK,需要將這個暫存器的相應區域置0(復位)。
例如下列程式:
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
* 2.7 SFRIE1 & SFRIFG1
Name | Description | 預設 |
---|---|---|
OFIE | 振盪器故障中斷使能 | 0 |
OFIFG | 振盪器失效中斷標誌位 | 1 |
WDTIE | 看門狗在間隔定時器模式下的中斷使能 | 0 |
WDTIFG | 看門狗中斷標誌位 | 0 |
*2.8 BAKCTL
- LOCKBAK:在使用XT1CLK的時候,需要先將這一位置0來解鎖XT1CLK的引腳。
while(BAKCTL & LOCKBAK) // Unlock XT1 pins
BAKCTL &= ~(LOCKBAK);