STM32的12位ADC过采样实现16位分辨率

发布者:meirong最新更新时间:2024-09-14 来源: elecfans关键字:STM32  12位ADC  过采样 手机看文章 扫描二维码
随时随地手机看文章

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个字的跳动。

图片


关键字:STM32  12位ADC  过采样 引用地址:STM32的12位ADC过采样实现16位分辨率

上一篇:求一种基于STM32G4芯片TIM+SPI+DMA应用设计方案
下一篇:HASH算法加密芯片的工作原理及其在STM32 MCU上的应用

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved