HK32F103x/C/D/E是深圳市航順芯片技術研發有限公司推出的中大容量的103系列芯片。作為32位MCU常用的外設DAC是12位數字輸入,電壓輸出的數字/模擬轉換器。DAC可以配置為8位或12位模式,也可以與DMA控制器配合使用。DAC工作在12位模式時,數據可以設置成左對齊或右對齊。DAC模塊有2個輸出通道,每個通道都有單獨的轉換器。在雙DAC模式下,2個通道可以獨立地進行轉換,也可以同時進行轉換并同步地更新2個通道的輸出。DAC可以通過引腳輸入參考電壓VREF+以獲得更精確的轉換結果。
DAC主要特性
●2個DAC轉換器:每個轉換器對應1個輸出通道
●8位或者12位單調輸出
●12位模式下數據左對齊或者右對齊
●同步更新功能
●噪聲波形生成
●三角波形生成
●雙DAC通道同時或者分別轉換
●每個通道都有DMA功能
●外部觸發轉換
●輸入參考電壓VREF+
DAC通道模塊框圖
DAC 引腳
DAC數字格式
根據選擇的配置模式,數據按照下文所述寫入指定的寄存器:
單DAC通道x,有3種情況
● 8位數據右對齊:用戶須將數據寫入寄存器DAC_DHR8Rx[7:0]位(實際是存入寄存器DHRx[11:4]位)
● 12位數據左對齊:用戶須將數據寫入寄存器DAC_DHR12Lx[15:4]位(實際是存入寄存器DHRx[11:0]位)
● 12位數據右對齊:用戶須將數據寫入寄存器DAC_DHR12Rx[11:0]位(實際是存入寄存器DHRx[11:0]位)
根據對DAC_DHRyyyx寄存器的操作,經過相應的移位后,寫入的數據被轉存到DHRx 寄存器中(DHRx是內部的數據保存寄存器x)。隨后,DHRx寄存器的內容或被自動地傳送到DORx寄存器,或通過軟件觸發或外部事件觸發被傳送到DORx寄存器。
單DAC通道模式的數據寄存器
雙DAC通道,有3種情況
● 8位數據右對齊:用戶須將DAC通道1數據寫入寄存器DAC_DHR8RD[7:0]位(實際是存入寄存器DHR1[11:4]位),將DAC通道2數據寫入寄存器DAC_DHR8RD[15:8]位(實際是存入寄存器 DHR2[11:4]位)
● 12位數據左對齊:用戶須將DAC通道1數據寫入寄存器DAC_DHR12LD[15:4]位(實際是存入寄存器DHR1[11:0]位),將DAC通道2數據寫入寄存器DAC_DHR12LD[31:20]位(實際是存入寄存器DHR2[11:0]位)
● 12位數據右對齊:用戶須將DAC通道1數據寫入寄存器DAC_DHR12RD[11:0]位(實際是存入寄存器DHR1[11:0]位),將DAC通道2數據寫入寄存器DAC_DHR12RD[27:16]位(實際是存入寄存器 DHR2[11:0]位)
根據對DAC_DHRyyyD寄存器的操作,經過相應的移位后,寫入的數據被轉存到DHR1 和DHR2寄存器中(DHR1和DHR2是內部的數據保存寄存器x)。隨后,DHR1和DHR2的內容或被自動地傳送到DORx寄存器,或通過軟件觸發或外部事件觸發被傳送到DORx寄存器。
雙DAC通道模式的數據寄存器
DAC轉換
不能直接對寄存器DAC_DORx寫入數據,任何輸出到DAC通道x的數據都必須寫入AC_DHRx寄存器(數據實際寫入DAC_DHR8Rx、DAC_DHR12Lx、DAC_DHR12Rx、DAC_DHR8RD、DAC_DHR12LD、或者DAC_DHR12RD寄存器)。如果沒有選中硬件觸發(寄存器DAC_CR1的TENx位置’0’),存入寄存器DAC_DHRx的數據會在一個APB1時鐘周期后自動傳至寄存器DAC_DORx。如果選中硬件觸發(寄存器DAC_CR1 的TENx位置’1’),數據傳輸在觸發發生以后3個APB1時鐘周期后完成。一旦數據從DAC_DHRx 寄存器裝入DAC_DORx寄存器,在經過時間tSETTLING之后,輸出即有效,這段時間的長短依電源電壓和模擬輸出負載的不同會有所變化。
TEN=0觸發失能時轉換的時間框圖
DAC輸出電壓
數字輸入經過DAC被線性地轉換為模擬電壓輸出,其范圍為0到VREF+。任一DAC通道引腳上的輸出電壓滿足下面的關系:DAC輸出=VREFx(DOR/4095)
HK32F103xC/D/E在操作DAC需要注意的地方
用戶在使用HK32F103xC/D/E的DAC在使用過程中,當輸出一個較低電壓,例如0.41V,當對DAC->CR.BOFF 1 bit進行操作時,不管是從0->1,還是從1->0,均會出現一個高于實際DAC輸出很高的電壓值,且不會自行恢復,需要手動給一個trig信號或者將DAC->CR.BOFF1回到上一次觸發之前的狀態才能恢復正常。舉例說明:DAC 配置為軟件觸發,DAC->CR.BOFF1=0,輸出一個0.41V電壓(DHR12R1設置為0x1FF),從PA4輸出,當正常輸出以后配置DAC->CR.BOFF1=1,此時電壓會跳變到2.9V左右,且不會自行恢復,當給DAC_SWTRIGR.SWTRIG1配置為1以后即可自行恢復。
解決方案:
1. DAC BUFF輸出功能,在程序上電初始化配置完畢以后,程序運行中不要更改。
2. 如果需要在程序運行中更改,且對輸出電壓的短暫跳變不敏感,那么可通過更改觸發方式為DAC_Trigger_T1_TRGO等循環自動觸發方式或者在DAC->CR.BOFF1 bit發生改變以后手動給一次觸發信號。
以上有關寄存器的介紹可以參考我們HK的HK32F103xC/D/E的應用手冊。
來源:航順芯片
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
16667瀏覽量
347791 -
寄存器
+關注
關注
31文章
5253瀏覽量
119205 -
dac
+關注
關注
43文章
2226瀏覽量
190439 -
航順芯片
+關注
關注
1文章
96瀏覽量
22740
發布評論請先 登錄
相關推薦
評論