MSP430 DAC模組 學習筆記
一、DAC結構與效能:
MSP430f169微控制器有2個DAC通道,這兩個通道在操作上是完全平等的,可以通過DAC12GRP控制位將多個DAC12通道結合起來;
DAC特點:
- 8位12位解析度
- 可程式設計的時間和能量損耗
- 支援無符號和有符號資料輸入
- 內部和外部參考電壓的選擇
- 具有自效驗功能
- 二進位制或者二進位制補碼形式
- 多路DAC同步更新
- 可以直接用於儲存器存取
二、DAC相關暫存器設定
- DAC轉換控制暫存器——DAC12_xCTL
其中灰色的部分只有在DAC12ENC = 0時才能修改,位DAC12GRP只有在DAC12_1暫存器中才使用。
位15——保留
位14、位13——DAC12REFx
位12——DAC12RES:選擇DAC12解析度。0:12位解析度;1:8位解析度。
位11、位10——DAC12LSELx:鎖存器觸發源選擇當 DAC12鎖存器得到觸發之後,能夠將鎖存器中的資料傳送到DAC12的核心。當 DAC12LSELx=0的時候,DAC資料更新不受DAC12ENC 的影響。0 :DAC12_XDAT執行寫操作將觸發(不考慮DAC12ENC 的狀態)1:DAC12_XDAT執行寫操作將觸發(考慮DAC12ENC 的狀態)2:Timer_A3.OUT1的上升沿3:Timer_B7.OUT2的上升沿
位9——DAC12CALON
位8——DAC12IR:DAC12輸入範圍,此位設定輸入參考電壓和輸出的關係。0:DAC12的滿量程位參考電壓的3倍(不操作AVcc);1:DAC12的滿量程為參考電壓。
位7~位5——DAC12AMPx:DAC12運算放大器設定
0 輸入緩衝器關閉,輸出緩衝器關閉,高阻
1 輸入緩衝器關閉,輸出緩衝器關閉,0V
2 輸入緩衝器低速低電流,輸出緩衝器低速低電流
3 輸入緩衝器低速低電流,輸出緩衝器中速中電流
4 輸入緩衝器低速低電流,輸出緩衝器高速高電流
5 輸入緩衝器中速中電流,輸出緩衝器中速中電流
6 輸入緩衝器中速中電流,輸出緩衝器高速高電流
7 輸入緩衝器高速高電流,輸出緩衝器高速高電流
位4——DAC12DF:DAC12的資料格式。0:二進位制;1:二進位制補碼
位3——DAC12IE:DAC12的中斷允許。0:禁止中斷;1:允許中斷
位2——DAC12IFG:DAC12的中斷標誌位。0:沒有中斷請求;1:有中斷請求
位1——DAC12ENC:DAC12轉換控制位。DAC12LSEL>0時,DAC12DAC12ENC才有效。
0:DAC12停止;1:DAC12轉換。
位0——DAC12GRP:DAC12組合控制位。0:沒有組合;1:組合
- DAC資料暫存器DAC12_xDAT
DAC12_xDAT高4位為0,不影響DAC12的工作。DAC12工作在8位模式時,DAC12_xDAT的最大值為0x00FF;DAC12工作在12位模式時,DAC12_xDAT的最大值為0x0FFF
三、DAC12的操作及設定和應用
(1)選擇參考電壓。
(2)DAC12核心
(3)更新DAC12的電壓輸出
(4)DAC12_xDAT的資料格式
(5)校正DAC12的輸出
(6)DAC12使用時要注意的問題;
1)參考電壓的選擇,如果使用後內部參考電壓則需要在DAC12模組中開啟參考內部電壓發生器,DAC12核心不用開啟;
2)在MSP430F169微控制器上DAC12的0通道使用的是A6,1通道使用的是A7的引腳;
3)如果使用了DAC12的2個通道,A6和A7就不能使用;
4)校正DAC12的編譯誤差
5)設定DAC12的位數和滿量程電壓(滿量程電壓最高為AVCC);
6)設定DAC12的觸發方式。
四、輸出電壓
簡單的輸出1V程式碼
1 #include <msp430f169.h> 2 void main(void){ 3 WDTCTL = WDTPW + WDTHOLD; //關閉看門狗 4 ADC12CTL0 = REFON + REF2_5V; //DA使用內部1.5V參考電壓 5 DAC12_0CTL = DAC12IR + DAC12AMP_5 +DAC12ENC; //滿量程輸出是參考電壓的1倍,輸入輸出緩衝器中速電流,DAC使能 6 7 DAC12_0DAT = 0x0666; //P6.7輸出1V電壓 8 _BIS_SR(LPM4_bits); //進入LPM4 9 10 }