天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234

如何將單片機PWM作為DAC使用?

更新時間: 2024-05-21
閱讀量:380

在項目開發過程中,手頭上的單片機沒有帶DAC資源,但又剛好需要使用到DAC。或者你的單片機確實具有DAC,但只有一個或兩個通道,這明顯是不夠用的。與單片機的模式轉換器(ADC)外設不同,集成ADC外設通常包含一個多路復用器,允許一個ADC模塊轉換連接到多個甚至數十個的模擬信號。

如果你的單片機沒有數模轉換器(DAC),只需使用脈寬調制信號和低通濾波器即可進行替代使用,下面我們來介紹一下具體操作。

一、需要的材料:脈寬調制、電阻、電容

這里最少需要一個電阻器、一個電容器和脈寬調制功能。接下來,只需要一種對PWM信號進行低通濾波的方法,如果你不介意輸出上有一些紋波,那么基本的單極RC濾波器就可以了。它的成本低到什么程度呢?就算電路板或預算只能容納一個電阻器和電容器,那么使用PWM改為DAC仍然是可行的選擇。

我們先來介紹PWM的基礎知識

看到這里的,肯定已經知道什么是脈寬調制。不過,這里還是簡要回顧一下基本概念,以確保在了解低通濾波器如何準確地將數字信號轉換為可編程模擬電壓時擁有堅實的基礎。

bdd3f2c36ebc4d878a2e02f48c307dcb.jpg

典型的數字時鐘信號是一系列周期,其中邏輯高電壓的持續時間等于邏輯低電壓的持續時間。相反,PWM信號一系列周期中,其中邏輯高(或邏輯低)電壓的持續時間根據外部條件而變化,并且這些變化可用于傳輸信息。舉個例子,如果你熟悉無線電電路,你就會知道信息是通過應用某種調制的正弦信號來傳輸的。這種情況就類似于PWM的功能,我們使用脈寬調制代替幅度或頻率調制,原理其實差不多。通過首先調制載波,然后以消除干擾的方式處理接收到的信號,可以將模擬音頻信號從天線傳輸到收音機,并恢復原始音頻信息。同樣,我們可以通過對數字載波進行脈寬調制,然后將該調制信號“傳輸”到低通濾波器來生成可編程模擬電壓。

在上圖中,邏輯高電平被標識為“ON”或活動狀態,邏輯低電平被標識為“OFF”或非活動狀態。在第一周期中,活動狀態的持續時間等于非活動狀態的持續時間。然后,在接下來的兩個周期中,活動狀態持續時間增加一個網格寬度。這意味著非活動狀態持續時間必須減少一個網格寬度,因為PWM載波頻率(以及PWM周期)是恒定的。在PWM DAC的背景下,我們實際上不需要知道絕對的活動和非活動持續時間。重要的是持續時間之間的比率,我們根據PWM占空比進行討論:

20240521111640.jpg

從占空比到模擬電壓

在低通濾波器輸出端觀察到的DAC標稱電壓僅由兩個參數決定,即占空比和PWM信號的邏輯高電壓。在圖中,這個邏輯高電壓用A表示“幅度”。占空比、幅度和標稱DAC電壓之間的關系相當直觀:在頻域中,低通濾波器會抑制輸入信號的高頻分量。這種效果在時域中的等效效果是平滑或平均,因此,通過對PWM信號進行低通濾波,我們可以提取其平均值。假設占空比為50%(即活動持續時間等于非活動持續時間),并且我們使用3.3V邏輯。你可能會猜測DAC標稱電壓為:1.65V,因為信號一半時間處于3.3V,一半時間處于0V,因此平滑后的版本將位于中間。我們可以將其概括如下:

20240521112804.jpg

二、PWM轉DAC的分辨率怎么樣?

選擇DAC時首先要考慮的規格之一是“分辨率”,它通常以“位”單位表示。我們所說的“分辨率”的真正含義是“DAC可以生成多少個不同的輸出電壓(或電流)?”“位數”是指控制數模電路的數據寄存器,因此10位DAC可以生成2^10=1024個不同的輸出電壓。那么PWM轉DAC的等效分辨率,大概又是多少呢?

2ae6f66a910547388f64c618c506a85e.jpg

8個不同脈沖寬度


我們假設圖中所示的PWM信號僅限于一個網格的倍數的脈沖寬度。這意味著占空比可以采用8個不同的值:0%、~14%、~29%、~43%、~57%、~71%、~86% 和 100%。每個占空比對應一個特定的輸出電壓,所以我們這里有一個3位DAC,因為 2^3 = 8。

要確定實際PWM轉DAC的分辨率,只需應用相同的分析:你可以生成多少個不同的占空比?回答這個問題通常不太困難,因為標準PWM硬件模塊的核心元件是控制脈沖寬度的N位計數器,這意味著等效DAC分辨率為2^N。

以上就是英銳恩單片機開發工程師分享的如何將單片機PWM作為DAC使用方法。英銳恩專注單片機應用方案設計與開發,提供8位單片機、32位單片機。

联系我们: SHOW| 当涂县| 天台县| 吉林市| 新邵县| 保靖县| 微博| 奉贤区| 鹰潭市| 宜君县| 璧山县| 溆浦县| 大宁县| 平谷区| 榆中县| 岑溪市| 綦江县| 子洲县| 富阳市| 高碑店市| 南宁市| 山阳县| 平阳县| 阜康市| 宁夏| 阿图什市| 屯门区| 府谷县| 泸西县| 贵南县| 出国| 正安县| 东源县| 安庆市| 海阳市| 梓潼县| 龙海市| 张家口市| 沙洋县| 华安县| 全州县|