專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!
在項(xiàng)目開發(fā)過(guò)程中,手頭上的單片機(jī)沒有帶DAC資源,但又剛好需要使用到DAC?;蛘吣愕膯纹瑱C(jī)確實(shí)具有DAC,但只有一個(gè)或兩個(gè)通道,這明顯是不夠用的。與單片機(jī)的模式轉(zhuǎn)換器(ADC)外設(shè)不同,集成ADC外設(shè)通常包含一個(gè)多路復(fù)用器,允許一個(gè)ADC模塊轉(zhuǎn)換連接到多個(gè)甚至數(shù)十個(gè)的模擬信號(hào)。
如果你的單片機(jī)沒有數(shù)模轉(zhuǎn)換器(DAC),只需使用脈寬調(diào)制信號(hào)和低通濾波器即可進(jìn)行替代使用,下面我們來(lái)介紹一下具體操作。
一、需要的材料:脈寬調(diào)制、電阻、電容
這里最少需要一個(gè)電阻器、一個(gè)電容器和脈寬調(diào)制功能。接下來(lái),只需要一種對(duì)PWM信號(hào)進(jìn)行低通濾波的方法,如果你不介意輸出上有一些紋波,那么基本的單極RC濾波器就可以了。它的成本低到什么程度呢?就算電路板或預(yù)算只能容納一個(gè)電阻器和電容器,那么使用PWM改為DAC仍然是可行的選擇。
我們先來(lái)介紹PWM的基礎(chǔ)知識(shí)
看到這里的,肯定已經(jīng)知道什么是脈寬調(diào)制。不過(guò),這里還是簡(jiǎn)要回顧一下基本概念,以確保在了解低通濾波器如何準(zhǔn)確地將數(shù)字信號(hào)轉(zhuǎn)換為可編程模擬電壓時(shí)擁有堅(jiān)實(shí)的基礎(chǔ)。
典型的數(shù)字時(shí)鐘信號(hào)是一系列周期,其中邏輯高電壓的持續(xù)時(shí)間等于邏輯低電壓的持續(xù)時(shí)間。相反,PWM信號(hào)一系列周期中,其中邏輯高(或邏輯低)電壓的持續(xù)時(shí)間根據(jù)外部條件而變化,并且這些變化可用于傳輸信息。舉個(gè)例子,如果你熟悉無(wú)線電電路,你就會(huì)知道信息是通過(guò)應(yīng)用某種調(diào)制的正弦信號(hào)來(lái)傳輸?shù)摹_@種情況就類似于PWM的功能,我們使用脈寬調(diào)制代替幅度或頻率調(diào)制,原理其實(shí)差不多。通過(guò)首先調(diào)制載波,然后以消除干擾的方式處理接收到的信號(hào),可以將模擬音頻信號(hào)從天線傳輸?shù)绞找魴C(jī),并恢復(fù)原始音頻信息。同樣,我們可以通過(guò)對(duì)數(shù)字載波進(jìn)行脈寬調(diào)制,然后將該調(diào)制信號(hào)“傳輸”到低通濾波器來(lái)生成可編程模擬電壓。
在上圖中,邏輯高電平被標(biāo)識(shí)為“ON”或活動(dòng)狀態(tài),邏輯低電平被標(biāo)識(shí)為“OFF”或非活動(dòng)狀態(tài)。在第一周期中,活動(dòng)狀態(tài)的持續(xù)時(shí)間等于非活動(dòng)狀態(tài)的持續(xù)時(shí)間。然后,在接下來(lái)的兩個(gè)周期中,活動(dòng)狀態(tài)持續(xù)時(shí)間增加一個(gè)網(wǎng)格寬度。這意味著非活動(dòng)狀態(tài)持續(xù)時(shí)間必須減少一個(gè)網(wǎng)格寬度,因?yàn)镻WM載波頻率(以及PWM周期)是恒定的。在PWM DAC的背景下,我們實(shí)際上不需要知道絕對(duì)的活動(dòng)和非活動(dòng)持續(xù)時(shí)間。重要的是持續(xù)時(shí)間之間的比率,我們根據(jù)PWM占空比進(jìn)行討論:
從占空比到模擬電壓
在低通濾波器輸出端觀察到的DAC標(biāo)稱電壓僅由兩個(gè)參數(shù)決定,即占空比和PWM信號(hào)的邏輯高電壓。在圖中,這個(gè)邏輯高電壓用A表示“幅度”。占空比、幅度和標(biāo)稱DAC電壓之間的關(guān)系相當(dāng)直觀:在頻域中,低通濾波器會(huì)抑制輸入信號(hào)的高頻分量。這種效果在時(shí)域中的等效效果是平滑或平均,因此,通過(guò)對(duì)PWM信號(hào)進(jìn)行低通濾波,我們可以提取其平均值。假設(shè)占空比為50%(即活動(dòng)持續(xù)時(shí)間等于非活動(dòng)持續(xù)時(shí)間),并且我們使用3.3V邏輯。你可能會(huì)猜測(cè)DAC標(biāo)稱電壓為:1.65V,因?yàn)樾盘?hào)一半時(shí)間處于3.3V,一半時(shí)間處于0V,因此平滑后的版本將位于中間。我們可以將其概括如下:
二、PWM轉(zhuǎn)DAC的分辨率怎么樣?
選擇DAC時(shí)首先要考慮的規(guī)格之一是“分辨率”,它通常以“位”單位表示。我們所說(shuō)的“分辨率”的真正含義是“DAC可以生成多少個(gè)不同的輸出電壓(或電流)?”“位數(shù)”是指控制數(shù)模電路的數(shù)據(jù)寄存器,因此10位DAC可以生成2^10=1024個(gè)不同的輸出電壓。那么PWM轉(zhuǎn)DAC的等效分辨率,大概又是多少呢?
8個(gè)不同脈沖寬度
我們假設(shè)圖中所示的PWM信號(hào)僅限于一個(gè)網(wǎng)格的倍數(shù)的脈沖寬度。這意味著占空比可以采用8個(gè)不同的值:0%、~14%、~29%、~43%、~57%、~71%、~86% 和 100%。每個(gè)占空比對(duì)應(yīng)一個(gè)特定的輸出電壓,所以我們這里有一個(gè)3位DAC,因?yàn)?2^3 = 8。
要確定實(shí)際PWM轉(zhuǎn)DAC的分辨率,只需應(yīng)用相同的分析:你可以生成多少個(gè)不同的占空比?回答這個(gè)問(wèn)題通常不太困難,因?yàn)闃?biāo)準(zhǔn)PWM硬件模塊的核心元件是控制脈沖寬度的N位計(jì)數(shù)器,這意味著等效DAC分辨率為2^N。
以上就是英銳恩單片機(jī)開發(fā)工程師分享的如何將單片機(jī)PWM作為DAC使用方法。英銳恩專注單片機(jī)應(yīng)用方案設(shè)計(jì)與開發(fā),提供8位單片機(jī)、32位單片機(jī)。