1.什么是過(guò)采樣
過(guò)采樣技術(shù)是一種以犧牲采樣速度來(lái)提高ADC分辨率的技術(shù)。部分STM32單片機(jī)是支持硬件過(guò)采樣的,如STM32G0系列。通過(guò)過(guò)采樣,可以將12位的ADC提升到16位,非常實(shí)用。

根據(jù)過(guò)采樣技術(shù),每提高1位ADC分辨率,需要增加4倍的采樣率。也就是說(shuō)1次采樣是12Bit,4次是13Bit,16次是14Bit,64次是15Bit,256次是16Bit,如果要更高分辨率,那么STM32的硬件過(guò)采樣就無(wú)能為力了。
過(guò)采樣主要通過(guò)配置ADC_SMPR寄存器的下面幾位即可實(shí)現(xiàn),配置移位位數(shù)、過(guò)采樣倍數(shù)以及使能位。如下:

最大可配置為256倍過(guò)采樣,實(shí)現(xiàn)16位分辨率。當(dāng)采用256倍過(guò)采樣時(shí),得到的結(jié)果是20位的,但ADC_DR寄存器是16位的,所以此時(shí)必須右移4位才行。如下圖:

2.STM32CubeMX配置
ADC配置如下,使能了一個(gè)通道,打開(kāi)DMA和連續(xù)采樣。使能過(guò)采樣,右移4位,256倍過(guò)采樣。這樣就可以直接當(dāng)作16位ADC來(lái)用了。

生成代碼后,輸入2.5V的電壓,進(jìn)行采樣測(cè)試,程序如下:
HAL_ADCEx_Calibration_Start(&hadc1);
HAL_Delay(200);
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_Buf,100);
采樣結(jié)果如下,可以看到,有最大4個(gè)字的跳動(dòng)。當(dāng)然這也跟硬件的布局布線等設(shè)計(jì)有關(guān)系。測(cè)試使用的開(kāi)發(fā)板,效果不是特別好,但過(guò)采樣對(duì)于提升分辨率還是有用的。

如果再對(duì)結(jié)果進(jìn)去求平均值,可以進(jìn)一步提升分辨率,結(jié)果如下,基本上只有1個(gè)字的跳動(dòng)。

-
寄存器
+關(guān)注
關(guān)注
31文章
5617瀏覽量
130381 -
STM32單片機(jī)
+關(guān)注
關(guān)注
59文章
553瀏覽量
60782 -
ADC采樣
+關(guān)注
關(guān)注
0文章
134瀏覽量
13616 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
290瀏覽量
17468 -
過(guò)采樣技術(shù)
+關(guān)注
關(guān)注
0文章
7瀏覽量
2386
發(fā)布評(píng)論請(qǐng)先 登錄
ADC的在24位分辨率時(shí)的有效位數(shù)是多少呢?
請(qǐng)問(wèn)有采樣率250MHz, 分辨率8位/12位的ADC推薦嗎?
如何在Δ∑ADC上達(dá)到20位分辨率
如何實(shí)現(xiàn)STM32 MCU的16位ADC分辨率呢
S32K344 14位ADC分辨率和12位分辨率之間有什么區(qū)別?
請(qǐng)問(wèn)有采樣率250MHz左右、分辨率為12位,管腳兼容8位分辨率的adc嗎?
電壓范圍為正負(fù)10V、具有12位分辨率的自動(dòng)調(diào)零電路
14位分辨率的模塊和16位分辨率的模塊之間的區(qū)別
DAC如何達(dá)到32位分辨率
AD9260:2.5 MHz輸出字率下16位分辨率的高速過(guò)采樣CMOS ADC數(shù)據(jù)表
過(guò)采樣ADC,實(shí)現(xiàn)16位分辨率
STM32的12位ADC過(guò)采樣實(shí)現(xiàn)16位分辨率
評(píng)論