利用單片機自帶的DAC模塊實現(xiàn)0-10V設(shè)計
單片機波形合成發(fā)生器是一種數(shù)字波形合成技術(shù),通過計算機的數(shù)字處理能力來產(chǎn)生各種復(fù)雜波形的信號。該技術(shù)具有高精度、靈活性強等優(yōu)點,因此被廣泛應(yīng)用于混頻儀、信號源、測試儀等設(shè)備中。
利用單片機波形合成發(fā)生器實現(xiàn)低頻信號發(fā)生器的設(shè)計原理如下:首先選擇一個合適的單片機,對其進行編程,通過單片機自帶的DAC模塊實現(xiàn)波形輸出,采用DDS技術(shù)生成任意波形,并進行數(shù)字信號處理。最終將合成的數(shù)字信號通過運放放大來得到所需要的低頻信號。
低頻信號發(fā)生器是一種用于產(chǎn)生一定頻率、波形和振幅的信號的設(shè)備。在科研、教學(xué)和實際工程中,低頻信號來源是各種儀器、設(shè)備和系統(tǒng)中必不可少的一環(huán)。常見的低頻信號發(fā)生器有函數(shù)發(fā)生器、示波器、信號源等,但這些設(shè)備存在著輸出精度低、頻率范圍窄、造價高等問題。
DAC(Digital to analog converter)即數(shù)字模擬轉(zhuǎn)換器,它可以將數(shù)字信號轉(zhuǎn)換為模擬信號。它的功能與 ADC 相反。在常見的數(shù)字信號系統(tǒng)中,大部分傳感器信號被轉(zhuǎn)化成電壓信號,而 ADC 把電壓模擬信號轉(zhuǎn)換成易于計算機存儲處理的數(shù)字編碼,由計算機處理完成后,再由 DAC 輸出電壓模擬信號,該電壓模擬信號常常用來驅(qū)動某些執(zhí)行器件,使人類易于感知。如音頻信號的采集及還原就是這樣一個過程。
1. 數(shù)字數(shù)據(jù):數(shù)字數(shù)據(jù)通常以二進制形式表示,并存儲在計算機系統(tǒng)或其他數(shù)字設(shè)備中。
2. 重構(gòu):DA轉(zhuǎn)換器通過重構(gòu)技術(shù)將數(shù)字數(shù)據(jù)轉(zhuǎn)換為連續(xù)的模擬信號。重構(gòu)過程中,數(shù)字樣本被插值和濾波,使其變得連續(xù)且光滑。
3. 輸出模擬信號:DA轉(zhuǎn)換器的輸出是通過模擬電路和濾波器處理后的連續(xù)模擬信號。輸出信號的連續(xù)性和精確性取決于DA轉(zhuǎn)換器的性能。
本文一共講解3種方案,分別為:
第一種方案:利用單片機自帶的DAC模塊的輸出進行實現(xiàn)
第二種方案:使用 PWM 加濾波電路
第三種方案:使用專用轉(zhuǎn)換芯片
第一種方案
利用單片機自帶的DAC模塊,現(xiàn)在很多的單片機都自帶了 DAC 模塊,我們可以直接使用 DAC 模塊的輸出進行實現(xiàn)。
比如我們最常見的單片機供電系統(tǒng)為: 0 ~ 3.3V。 那么我們就可以將 0 ~ 3.3 V 放大 3倍,實現(xiàn) 0~ 10V 的輸出。
這里我們用到的是同相比例運放電路:
DAC1 為單片機的 DAC 輸出,0 ~ 3.3V ,放大 3 倍。
R2 選擇 3.3K 還是因為運放的對稱性,選擇與 R4 和 R3 并聯(lián)電阻相等的阻值。
使用 DAC 直接放大3倍,感覺直接看起來還是挺滿的,直接上測試:
上面我通過自己手動設(shè)置 DAC 的值,輸出的不同狀態(tài)效果。
第二種方案,使用 PWM 加濾波電路。
2.1 PWM 輸出 DAC
如何讓 PWM 波形變成模擬量輸出,那就是加上濾波電路,經(jīng)過一個濾波電路,可以使得PWM變成DAC輸出。
只使用一個 RC 的濾波電路稱為一階濾波電路。
為了使得輸出更加平滑,我們會使用二階甚至多階濾波電路。
為了使得帶載能力更強,我們會使用后面接電壓跟隨器等運放電路。
2.2 PWM 接濾波器的RC值選擇說明
對于 RC 濾波器的 RC值選擇,是新手難以理解處理的一個點,這也是濾波器設(shè)計的重點之一。
我們都知道,RC低通濾波電路的截止頻率:
fc=1/2πRC
這個公式非常重要,了解 RC 濾波器必須牢記的公式,截止頻率公式。
截止頻率實際上是輸入信號幅度降低 3dB 的頻率。截止頻率也稱為 -3 dB頻率
簡單幾點說明
R 越小,輸出損耗越大
R 越大,噪聲紋波越大
C 越小(比如到達 pf 級別后),越容易被寄生電容影響
C 越大(比如比較大的 uf 級別后),因為電容越大,普通情況下就只能使用電解電容,但是電解電容的高頻特性很差,在 RC 濾波器中盡量不要使用電解電容
這種低成本的電路沒有完美的,我們總做的就是一個權(quán)衡,在有限的成本規(guī)定范圍內(nèi),設(shè)計出一個滿足需要的電路。
對于本文我們的 PWM 而言,其本質(zhì)上是一種高頻脈沖信號,其中的高頻分量會被低通濾波器濾掉,只有低頻分量才能通過濾波器,形成模擬信號輸出。我們要保證 PWM 的頻率 遠大于 RC 低通濾波器的截止頻率,至少在 10 倍以上甚至數(shù)十倍,因為越往上的頻率信號,濾波的效果越來越好。
重要的是在你按照經(jīng)驗值設(shè)計完電路發(fā)現(xiàn)問題了以后知道如何去查找問題,如何去調(diào)整參數(shù),這是硬件設(shè)計的關(guān)鍵所在。
2.3 0~ 3.3V PWM 輸出 0 ~10V
方案一:RC 濾波器
上面簡單的說明了一下,那么上一下我們本次測試的電路:
圖中的阻容大家可以根據(jù)自己的需求修改。
測試:
在上文我們說過,我們可以算出 RC低通濾波器的截止頻率,我們要保證 PWM 的頻率 遠大于 RC 低通濾波器的截止頻率。
如果 PWM 的頻率比較低會怎樣,比如,我 PWM 周期為 1HZ,然后占空比設(shè)置為50%:進一步的修改一下,把 PWM 的頻率稍微修改一下,對于我測試的其實也就是 定時器的頻率,如下:
根據(jù)公式
Tout = ((arr+1)*(psc+1))/Tclk ; // 32MHz 主頻
定時器周期為 1 ms, 其實也就表示頻率為 1KHz,為了方便表示占空比 0~ 100 對應(yīng),上面的 arr 改成了100, 實際上也是 1KHz 左右,再來看看效果:
實際上我測試的時候沒有特意的去調(diào)整阻容的值,就直觀上看起來效果還是可以的(上圖的毛刺多是因為示波器 GND 的線夾得太遠了)。
第三種方案,使用專用轉(zhuǎn)換芯片
前面的兩種方式成本相對都比較低,和電平轉(zhuǎn)換電路一樣,0 ~10V 輸出也有專門的轉(zhuǎn)換芯片: GP8101
看了一下介紹,這個芯片有一個系列,不僅有 PWM 輸入的,還有 I2C 結(jié)口的:
測試其實和上面一樣,設(shè)置不同的占空比,看示波器,結(jié)果還是很好的。