stm32过采样
stm32过采样
好的,我们来详细解释一下 STM32 中的过采样 (Oversampling)。
核心概念:
ADC(模数转换器)的分辨率由其位数决定(例如,12位ADC能输出0到4095的数字值)。过采样是一种软件或硬件技术,它通过采集比所需分辨率更多的样本(即“过”采样),然后对这些样本进行数学处理(主要是平均和移位),最终得到一个更高分辨率(更多有效位数)的输出结果。
目的:
- 提高 ADC 的有效分辨率: 例如,将一个标准的12位 ADC 的输出分辨率提高到 14位、16位 甚至更高。
- 改善信噪比: 通过平均,可以抑制随机噪声(白噪声),使得信号更清晰。
- 提高测量精度: 在存在噪声且信号变化相对较慢的应用中(如传感器读取:温度、压力、电压监控等),过采样可以显著提高测量结果的精度和稳定性。
原理:
- 多次采样: 对同一个模拟输入信号进行 N 次连续的 ADC 转换,得到 N 个原始采样值(Raw Samples)。这个 N 称为 过采样率 (Oversampling Ratio - OSR)。例如,OSR = 16 表示对同一信号采样 16 次。
- 累加 (Summing): 将这 N 个原始采样值相加,得到一个总和(Sum)。
- 硬件过采样 (STM32 特有优势):STM32 的 ADC 硬件支持直接在内部累加器中进行累加,CPU 负担极小。
- 软件过采样:也可以在软件中通过循环读取 ADC 数据寄存器并累加来实现。
- 平均 (Averaging):累加本质上就是为平均做准备。平均 = 总和 / N。
- 右移 (Bit Shifting - 关键步骤):平均操作在硬件实现中通常通过右移累加和的结果来完成。右移的位数决定了最终的分辨率提升。
- 分辨率提升公式:
- 每提高 1 位有效分辨率,需要一个 4 倍的过采样率 (OSR)。
- 有效分辨率提升的位数 = log₂(OSR) / 2
- 右移位数 = log₂(OSR) - 分辨率提升位数 = log₂(OSR) - (log₂(OSR) / 2) = log₂(OSR) / 2
- 简化记忆:
- 提高 1 位分辨率:OSR = 4, 右移 1 位 (4 >> 1 等效于 4 / 2 = 2)。
- 提高 2 位分辨率:OSR = 16, 右移 2 位 (16 >> 2 等效于 16 / 4 = 4)。
- 提高 3 位分辨率:OSR = 64, 右移 3 位 (64 >> 3 等效于 64 / 8 = 8)。
- 提高 4 位分辨率:OSR = 256, 右移 4 位 (256 >> 4 等效于 256 / 16 = 16)。
- 例子: 使用 12 位 ADC,OSR = 16 (采样 16 次)。累加和最大为 16 * 4095 = 65520。将这个累加和右移 2 位 (相当于除以 4),得到范围在 0 到 16380 之间的值。这个值相当于一个 14 位 (2¹⁴ = 16384) ADC 的输出范围。因此,有效分辨率从 12 位提升到了 14 位。
- 分辨率提升公式:
STM32 硬件过采样的优势:
STM32 内置 ADC 的一个重要特性是直接支持硬件过采样和抽取。这比在软件中实现具有显著优势:
- 极高的效率: ADC 硬件自动完成多次采样、累加和右移操作。CPU 只需在转换完成后读取最终的高分辨率结果即可,极大地减少了 CPU 中断负载和软件开销。
- 更高的采样率可能性: 由于 CPU 负载低,可以在更高的 ADC 时钟频率下运行过采样,或者同时处理其他任务。
- 简化软件: 开发者只需配置相关寄存器,无需编写繁琐的采样循环和累加平均代码。
配置 STM32 ADC 硬件过采样 (通常步骤 - 具体寄存器名参考手册):
- 使能过采样: 设置 ADC 控制寄存器中的过采样使能位 (
OVSEN)。 - 设置过采样率 (OSR): 配置寄存器指定采样次数 N (
OVSR)。常见值 2, 4, 8, 16, 32, 64, 128, 256。 - 设置右移位数 (
OVSS或类似): 根据期望提高的分辨率位数和选择的 OSR,设置正确的右移位数 (参见上面公式和简化记忆)。 - (可选) 设置过采样模式:
- 常规模式: ADC 执行 OSR 次转换并累加,然后右移,产生一个最终结果。通常用于单次或连续转换模式。
- 突发模式: 在触发一次后,ADC 会自动执行 OSR 次连续的采样转换、累加和右移操作,产生一个最终结果。适用于需要单次触发获取高分辨率结果的场景。
- 配置其他 ADC 参数: 通道、采样时间、对齐方式(通常右对齐)、触发源(软件触发、定时器等)、是否使用 DMA(推荐用于连续模式)等。
- 启动ADC转换。
- 读取结果: 读取 ADC 数据寄存器 (
DR) 获得的就是经过过采样处理后的高分辨率结果。这个结果的位数是ADC_NativeResolution + log₂(OSR)/2。例如,12位 ADC + OSR=16 -> 14位结果。结果寄存器还是 16 位(右对齐),低 2 位是有效的精度提升位。
重要注意事项:
- 噪声是关键前提: 过采样提高分辨率的核心在于信号本身或ADC中存在随机噪声。理想的无噪声直流信号通过过采样是无法提高分辨率的。STM32应用笔记建议信号或ADC本身至少存在1个LSB (最低有效位) 的噪声。有时可能需要人为引入少量可控噪声(抖颤 - Dithering)。
- 速度与精度的权衡: 提高分辨率是以降低采样速率为代价的。OSR 越大,获得一个高分辨率结果所需的时间越长 (总转换时间 ≈ 单次采样时间 * OSR)。你需要根据信号带宽和应用需求平衡 OSR。
- ADC 采样时间: 确保为每个采样分配了足够的采样时间 (
SMP位),尤其是输入源阻抗较高时。 - 结果寄存器宽度: STM32 ADC 结果寄存器通常是 16 位的(右对齐或左对齐)。过采样后得到的更高分辨率结果必须能容纳在这个寄存器中。例如,12位 ADC 使用 OSR=256 (提高4位到16位),累加和右移后的最大值是 4095 256 / 256 = 4095? 错误! 累加和最大值是 4095 256 = 1,048,320。右移 4 位 (除以 16) 后是 65,520。这个值小于 65535,可以放在 16 位寄存器中。但如果使用更大的 OSR 尝试提升更多位,就可能溢出。计算最大结果值 (MaxResult = (2^NativeBits - 1) * OSR) >> ShiftBits) 确保不超过结果寄存器的最大值 (65535)。
- 功耗: 更高的采样率意味着 ADC 更频繁地工作,功耗会相应增加。
应用场景:
- 对精度要求高的低速传感器数据采集(温度传感器 NTC/PTC/RTD,称重传感器,压力传感器,慢变电压监测)。
- 音频处理(需要高动态范围)。
- 电池电压精确监测。
- 任何需要比原生 ADC 分辨率更高且信号带宽允许过采样速率的环境。
总结:
STM32 的硬件过采样功能通过利用 ADC 内部的累加器和移位器,自动化地实现了以降低采样速率换取更高有效分辨率和更好噪声抑制的过程。它是提升 STM32 ADC 测量精度的非常强大且高效的软件/硬件结合技术。在配置时,务必处理好噪声、速度、精度、寄存器宽度和功耗之间的平衡。
AD9260:高速过采样CMOS ADC的卓越之选
AD9260:高速过采样CMOS ADC的卓越之选 在电子设计领域,模数转换器(ADC)的性能直接影响着整个系统的精度和稳定性。今天,我们就来深入探讨一款高性能的16位高速
2026-04-07 14:20:19
stm32ad采样测电压范围
AD(模拟数字)转换模块是嵌入式系统中经常使用的一个功能模块,它可以将模拟电压信号转换成数字信号,以便后续处理。在STM32系列微控制器中,AD采样测电压范围是一个重要的参数,它决定了我们可以测量
2023-12-29 10:35:37
AN4629_STM32L0和STM32L4系列MCU的ADC硬件过采样应用
AN4629_STM32L0和STM32L4系列MCU的ADC硬件过采样
资料下载
elecfans
2022-11-21 17:06:50
STM32F30x 的ADC 采样的傅立叶变换
STM32F30x 的ADC 采样的傅立叶变换(理士国际电源技术有限公司)-本文目的是演示如何使用STM32F30x 内部的DSP 进行浮点快速
资料下载
鼠爱米
2021-08-04 17:47:45
基于构造性覆盖算法的过采样技术CMOTE
如何提高对少数类样本的识别能力是不平衡数据分类中的一个研究热点。合成少数类过采样技术( SMOTE)是解决此类问题的代表性方法之一。近年来,不少研究者对 SMOTE做出了一些改进,较好地提高了该方法
资料下载
佚名
2021-04-12 16:09:46
利用采样安全系数的多类不平衡过采样算法
传统的过采样算法在处理多类不平衡问题时容易岀现过度泛化和类别重叠,从而降低了分类性能为了提高多类不平衡学习性能,提出了一种利用采样安全系数的多类
资料下载
佚名
2021-04-07 13:46:33
谈谈ADC过采样
在大多数情况下,10位的分辨率就足够了。但在某些情况下需要更高的精度。采用特殊的信号处理技术可以提高测量的分辨率。通过使用一种称为“过采样和抽取”的方法,可以实现更高的分辨率,而不使用外部ADC。此应用程序说明说明了
2023-05-11 16:28:28
浅谈ADC过采样提高信噪比
一般来说,我们可以提高ADC采样位数来提高ADC的信噪比,但是往往意味着ADC的成本可能也会更高。有没有不提高位数,同样优化信噪比的方法呢?有的,那就是过采样
2022-03-07 08:56:00
浅析STM32 ADC过采样技术
通过对文章的分析,发现它的实验结果并不能得到16 bit 精度采样数据。如果要达到 16 bit 精度,那么采样数据和理论值差值小于 8 才可能。但通过分析该实验结果发现几乎没有这样的数据出现,几乎都是 >=
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机