天天看點

單片機10位ADC是否夠用?

作者:APPLE頻道

視訊加載中...

一、前言

  現在的單片機内部帶有的AD轉換器大多在10到12位。一般應用中,AD轉換的位數對于測量誤差究竟有多大的影響,12位的ADC是否夠用呢? 下面通過實際測量,來讨論AD轉換的位數對測量誤差的影響。

單片機10位ADC是否夠用?

二、電路設計

  設計測試電路,使用 F030單片機進行測試。輸入的模拟信号經過RC濾波之後,發送到 ADC的第0通道。使用兩個電阻将模拟地和電源分開。電路闆上還設定了 3.3V的穩壓晶片。設計電路PCB,使其能夠适應一分鐘制闆方法。

AD\Test\2024\April\TestADCBit.PcbDoc
單片機10位ADC是否夠用?

▲ 圖1.2.1 測試電路原理圖720

單片機10位ADC是否夠用?

▲ 圖1.2.2 測試電路PCB

  一分鐘之後,得到制作的測試電路闆。電路制作的非常完美。下面進行焊接測試。

單片機10位ADC是否夠用?

三、測量結果

  焊接電路闆,對它進行清洗之後進行測量。利用探針夾子下載下傳測試程式。下載下傳測試程式,通過 ST-LINK中的序列槽完成測量資料上傳給微機。利用Python 程式設計,使用 DH1766提供從 0.1到3.2V的電壓,實際電壓值通過DM3068測量  單片機對采集到的512個資料進行平均。在平均之前 分别取前面 1 到 12bit,這樣便可以得到不同分辨率下ADC采樣的數值了。

單片機10位ADC是否夠用?
單片機10位ADC是否夠用?

  在測量電壓範圍内總共采集了 2000 個資料,繪制出電壓與ADC之間的關系。可以看到,在 ADC采樣位數比較小的時候,由于量化所造成的誤差比較大。雖然這是512個資料的平均值,資料的誤差主要來自于AD量化造成的。但是,随着位數的增加,也可以看到資料的中存在着噪聲引起的波動。此時,噪聲引起的誤差超過了轉換位數的帶來的誤差。

單片機10位ADC是否夠用?
單片機10位ADC是否夠用?

▲ 圖1.3.1 不同位數對應的采集資料

  通過對 單片機AD資料與電壓之間進行線性拟合,計算拟合電壓與實際電壓之間誤差的方差,可以看到,在AD轉換位數從 1 到12為變化過程中,方差急劇下降。但是下降的速度越來越慢,當位數超過10位之後,基本上誤差不變了。這是對方差取對數之後繪制的資料線。更加清晰的看到,當 AD轉換的位數超過10之後,所得到的資料誤差主要來自于電路的噪聲了。是以,對于資料轉換來講,再高的ADC位數也沒有用了。

單片機10位ADC是否夠用?

▲ 圖1.3.2 不同的ADC的位數對應的線性拟合誤差

BitsVar10.201675084341747920.0515357181454840530.0135279603251481940.00346802071391868350.000851764950908431160.0002058020544265129675.001551736517359e-0581.3009367147500475e-0595.263557870607768e-06104.309030498367149e-06114.297694583457816e-06124.314972044296696e-06

單片機10位ADC是否夠用?

▲ 圖1.3.3 位數與誤差對數

※總  結 ※

  本文對于單片機AD轉換的位數對測量資料精度的影響進行了實際測量。當AD轉換位數少于10位的時候,資料誤差随着位數的增加指數下降,當位數超過10位置後,在普通單面制闆的情況下,電路中的噪聲所産生的誤差,已經占據主要成分。實際上ADC轉換位數對測量誤差的降低已經沒有了作用。

單片機10位ADC是否夠用?