1.什么是過采樣
過采樣技術是一種以犧牲采樣速度來提高ADC分辨率的技術。部分STM32單片機是支持硬件過采樣的,如STM32G0系列。通過過采樣,可以將12位的ADC提升到16位,非常實用。
根據過采樣技術,每提高1位ADC分辨率,需要增加4倍的采樣率。也就是說1次采樣是12Bit,4次是13Bit,16次是14Bit,64次是15Bit,256次是16Bit,如果要更高分辨率,那么STM32的硬件過采樣就無能為力了。
過采樣主要通過配置ADC_SMPR寄存器的下面幾位即可實現,配置移位位數、過采樣倍數以及使能位。如下:
最大可配置為256倍過采樣,實現16位分辨率。當采用256倍過采樣時,得到的結果是20位的,但ADC_DR寄存器是16位的,所以此時必須右移4位才行。如下圖:
2.STM32CubeMX配置
ADC配置如下,使能了一個通道,打開DMA和連續采樣。使能過采樣,右移4位,256倍過采樣。這樣就可以直接當作16位ADC來用了。
生成代碼后,輸入2.5V的電壓,進行采樣測試,程序如下:
HAL_ADCEx_Calibration_Start(&hadc1);
HAL_Delay(200);
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_Buf,100);
采樣結果如下,可以看到,有最大4個字的跳動。當然這也跟硬件的布局布線等設計有關系。測試使用的開發板,效果不是特別好,但過采樣對于提升分辨率還是有用的。
如果再對結果進去求平均值,可以進一步提升分辨率,結果如下,基本上只有1個字的跳動。
-
寄存器
+關注
關注
30文章
5164瀏覽量
118135 -
STM32單片機
+關注
關注
58文章
546瀏覽量
58076 -
ADC采樣
+關注
關注
0文章
134瀏覽量
12737 -
stm32cubemx
+關注
關注
5文章
269瀏覽量
14484 -
過采樣技術
+關注
關注
0文章
6瀏覽量
2201
發布評論請先 登錄
相關推薦
評論