最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

STM32Cubev6 PWM-DAC

2021-02-15 00:04 作者:僚機(jī)Wingplane  | 我要投稿

工作環(huán)境:

STM32CubeMXv6

Keil5

? ? 有時候,單片機(jī)自帶的DAC可能不夠用,需要多路DAC外擴(kuò)DAC成本又會高不少。此時,我們可以利用PWM+簡單的無源RC濾波來實(shí)現(xiàn)DAC輸出,從而節(jié)省成本。在精度要求不是很高的時候,PWM+無源RC濾波的DAC輸出方式,是一種非常廉價的解決方案。PWM本質(zhì)上其實(shí)就是是一種周期一定,而高低電平占空比可調(diào)的方波。PWM波的波形可以通過分段函數(shù)表示為公式1:

公式 1

????其中:T是單片機(jī)中計(jì)數(shù)脈沖的基本周期,也就是單片機(jī)定時器的計(jì)數(shù)頻率的倒數(shù)。N是PWM波一個周期的計(jì)數(shù)脈沖個數(shù),也就是單片機(jī)的ARR-1 的值。n是PWM波一個周期中高電平的計(jì)數(shù)脈沖個數(shù),也就是單片機(jī)的CCRx的值。VH 和 VL 分別是 PWM 波的高低電平電壓值,k為諧波次數(shù),t為時間。我們將1式展開成傅里葉級數(shù),得到公式2:

公式 2

????從2式可以看出,式中第1個方括弧為直流分量,第2項(xiàng)為1次諧波分量,第3項(xiàng)為大干1次的高次諧波分量式2中的直流分量與成線性關(guān)系,并隨著,從0到N.直流分量從VL到VL+VH之間變化。這正是電壓輸出的DAC所需要的。因此,如果能把式2中除直流分量外的諧波過濾掉,則可以得到從PWM波到電壓輸出DAC的轉(zhuǎn)換,即:PWM 波可以通過一個低通濾波器進(jìn)行解調(diào)式2中的第2項(xiàng)的幅度和相角與n有關(guān),頻率為1/(NT)其實(shí)就是PWM的輸出頻率。該頻率是設(shè)計(jì)低通濾波器的依據(jù)。如果能把1次諧波很好過濾掉,則高次諧波就應(yīng)該基本不存在了。

????假設(shè)n的最小變化為1,當(dāng)N=65536的時候,分辨率就是16位。而stm32單片機(jī)的定時器大部分都是16位的,可以很容易得到這么高的分辨率,要注意的是分辨率越高,速度就越慢。

????在16位分辨條件下,我們一般要求1次諧波對輸出電壓的影響不要超過1個位的精度也就是3.3/65536=0.00005035400390625V。

????假設(shè)VH為3.3V,VL為0V,那么一次諧波的最大值是2*3.3/15=0.44V,這就要求我們的RC濾波電路提供至少-20lg(0.44/0.00005035400390625)=-78dB的衰減。

????STM32F722的定時器最快的計(jì)數(shù)頻率是216Mhz,某些定時器只能到108M,所以我們以108M頻率為例,16位分辨率的時候,PWM頻率為108M/65535=1.648Khz。如果是1階RC 濾波,則要求截止頻率0.6hz,如果為2階RC 濾波,則要求截止頻率為8hz。二階RC濾波截止頻率計(jì)算公式為:f=1/2πRC。

????PWM輸出的相關(guān)配置可以參照這篇文章配置

? ? 還有一個方便RC截止頻率計(jì)算的計(jì)算器網(wǎng)址:http://www.elecfans.com/tools/rclvboqijiezhipinlv.html

????在實(shí)際的生產(chǎn)環(huán)境中,我們常用的電阻電容多為10、3.3、4.7等及相應(yīng)整數(shù)倍。為了滿足要求選擇了100kΩ、1μF和10kΩ、10μF的RC組成截止頻率為1.6hz的二階低通濾波器。


? ? 另外如果需要對DAC調(diào)節(jié)的實(shí)時性有所要求的話,隨著電阻電容的增大,時延也會增加,所以還需要考慮對應(yīng)的時間常數(shù)。(影響不大,最主要的還是分辨率上升的影響)

????RC時間常數(shù)計(jì)算器網(wǎng)址:http://www.elecfans.com/tools/RCshijianchangshu.html

參考資料:

STM32F7開發(fā)指南-HAL庫版本_V1.1

STM32Cubev6 PWM-DAC的評論 (共 條)

分享到微博請遵守國家法律
响水县| 紫阳县| 长寿区| 湖北省| 华宁县| 玉屏| 锦州市| 三明市| 高州市| 富源县| 木里| 丹江口市| 万宁市| 綦江县| 武宁县| 建瓯市| 福州市| 嘉荫县| 北宁市| 遂宁市| 丹江口市| 乌兰县| 宜良县| 隆回县| 汤阴县| 沾化县| 宁德市| 望都县| 新民市| 西丰县| 如皋市| 湾仔区| 色达县| 上栗县| 信宜市| 龙陵县| 彩票| 和硕县| 淮阳县| 伽师县| 兰考县|