Stm32F103R6之DAC

概述

數字/模擬轉換模塊(DAC)是12位數字輸入,電壓輸出的數字/模擬轉換器。DAC可以配置為8位或12位模式,也可以與DMA控制器配合使用。DAC工作在12位模式時,數據可以設置成左對齊或右對齊。DAC模塊有2個輸出通道,每個通道都有單獨的轉換器。在雙DAC模式下,2個通道可以獨立地進行轉換,也可以同時進行轉換並同步地更新2個通道的輸出。DAC可以通過引腳輸入參考電壓VREF+以獲得更精確的轉換結果。

Stm32F103R6之DAC

圖 1DAC通道模塊框圖

配置DAC的一般步驟

1. 配置相應IO口。

2. 使能DAC時鐘。

3. 使能DAC通道,將DAC_CR寄存器的ENx位置’1’即可打開對DAC通道x的供電。經過一段啟動時間tWAKEUP,DAC通道x即被使能。

4. 使能DAC輸出緩存。DAC集成了2個輸出緩存,可以用來減少輸出阻抗,無需外部運放即可直接驅動外部負載。每個DAC通道輸出緩存可以通過設置DAC_CR寄存器的BOFFx位來使能或者關閉。

5. 配置DAC數據。

利用DAC生成噪聲

可以利用線性反饋移位寄存器(Linear Feedback Shift Register LFSR)產生幅度變化的偽噪聲。設置WAVE[1:0]位為’01’選擇DAC噪聲生成功能。

利用DAC生成三角波

可以在DC或者緩慢變化的信號上加上一個小幅度的三角波。設置WAVEx[1:0]位為’10’選擇DAC的三角波生成功能。設置DAC_CR寄存器的MAMPx[3:0]位來選擇三角波的幅度。內部的三角波計數器每次觸發事件之後3個APB1時鐘週期後累加1。計數器的值與DAC_DHRx寄存器的數值相加並丟棄溢出位後寫入DAC_DORx寄存器。在傳入DAC_DORx寄存器的數值小於MAMP[3:0]位定義的最大幅度時,三角波計數器逐步累加。一旦達到設置的最大幅度,則計數器開始遞減,達到0後再開始累加,週而復始。

Stm32F103R6之DAC

圖 2DAC三角波生成

雙DAC通道轉換

在需要2個DAC同時工作的情況下,為了更有效地利用總線帶寬,DAC集成了3個供雙DAC模式使用的寄存器:DHR8RD、DHR12RD和DHR12LD,只需要訪問一個寄存器即可完成同時驅動2個DAC通道的操作。


分享到:


相關文章: