登录/注册

stm32过采样

stm32过采样

更多

好的,我们来详细解释一下 STM32 中的过采样 (Oversampling)

核心概念:

ADC(模数转换器)的分辨率由其位数决定(例如,12位ADC能输出0到4095的数字值)。过采样是一种软件或硬件技术,它通过采集比所需分辨率更多的样本(即“过”采样),然后对这些样本进行数学处理(主要是平均和移位),最终得到一个更高分辨率(更多有效位数)的输出结果。

目的:

原理:

  1. 多次采样: 对同一个模拟输入信号进行 N 次连续的 ADC 转换,得到 N 个原始采样值(Raw Samples)。这个 N 称为 过采样率 (Oversampling Ratio - OSR)。例如,OSR = 16 表示对同一信号采样 16 次。
  2. 累加 (Summing): 将这 N 个原始采样值相加,得到一个总和(Sum)。
    • 硬件过采样 (STM32 特有优势):STM32 的 ADC 硬件支持直接在内部累加器中进行累加,CPU 负担极小。
    • 软件过采样:也可以在软件中通过循环读取 ADC 数据寄存器并累加来实现。
  3. 平均 (Averaging):累加本质上就是为平均做准备。平均 = 总和 / N。
  4. 右移 (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 的一个重要特性是直接支持硬件过采样和抽取。这比在软件中实现具有显著优势:

  1. 极高的效率: ADC 硬件自动完成多次采样、累加和右移操作。CPU 只需在转换完成后读取最终的高分辨率结果即可,极大地减少了 CPU 中断负载和软件开销。
  2. 更高的采样率可能性: 由于 CPU 负载低,可以在更高的 ADC 时钟频率下运行过采样,或者同时处理其他任务。
  3. 简化软件: 开发者只需配置相关寄存器,无需编写繁琐的采样循环和累加平均代码。

配置 STM32 ADC 硬件过采样 (通常步骤 - 具体寄存器名参考手册):

  1. 使能过采样: 设置 ADC 控制寄存器中的过采样使能位 (OVSEN)。
  2. 设置过采样率 (OSR): 配置寄存器指定采样次数 N (OVSR)。常见值 2, 4, 8, 16, 32, 64, 128, 256。
  3. 设置右移位数 (OVSS 或类似): 根据期望提高的分辨率位数和选择的 OSR,设置正确的右移位数 (参见上面公式和简化记忆)。
  4. (可选) 设置过采样模式:
    • 常规模式: ADC 执行 OSR 次转换并累加,然后右移,产生一个最终结果。通常用于单次或连续转换模式。
    • 突发模式: 在触发一次后,ADC 会自动执行 OSR 次连续的采样转换、累加和右移操作,产生一个最终结果。适用于需要单次触发获取高分辨率结果的场景。
  5. 配置其他 ADC 参数: 通道、采样时间、对齐方式(通常右对齐)、触发源(软件触发、定时器等)、是否使用 DMA(推荐用于连续模式)等。
  6. 启动ADC转换。
  7. 读取结果: 读取 ADC 数据寄存器 (DR) 获得的就是经过过采样处理后的高分辨率结果。这个结果的位数是 ADC_NativeResolution + log₂(OSR)/2。例如,12位 ADC + OSR=16 -> 14位结果。结果寄存器还是 16 位(右对齐),低 2 位是有效的精度提升位。

重要注意事项:

  1. 噪声是关键前提: 过采样提高分辨率的核心在于信号本身或ADC中存在随机噪声。理想的无噪声直流信号通过过采样是无法提高分辨率的。STM32应用笔记建议信号或ADC本身至少存在1个LSB (最低有效位) 的噪声。有时可能需要人为引入少量可控噪声(抖颤 - Dithering)。
  2. 速度与精度的权衡: 提高分辨率是以降低采样速率为代价的。OSR 越大,获得一个高分辨率结果所需的时间越长 (总转换时间 ≈ 单次采样时间 * OSR)。你需要根据信号带宽和应用需求平衡 OSR。
  3. ADC 采样时间: 确保为每个采样分配了足够的采样时间 (SMP 位),尤其是输入源阻抗较高时。
  4. 结果寄存器宽度: 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)。
  5. 功耗: 更高的采样率意味着 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

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

过采样技术是一种以牺牲采样速度来提高ADC分辨率的技术。部分STM32单

2023-10-12 10:19:03

AN4629_STM32L0和STM32L4系列MCU的ADC硬件采样应用

AN4629_STM32L0和STM32L4系列MCU的ADC硬件过采样

资料下载 elecfans 2022-11-21 17:06:50

STM32 ADC 采样技术

STM32 ADC 过采样技术

资料下载 佚名 2021-12-08 16:21:06

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

采样插值DAC的基本原理

过采样和数字滤波有助于降低对ADC前置的抗混叠滤波器的要求。重构DAC可以通过类似的方式运用过采样和插值原理。

2022-08-01 09:53:59

浅谈ADC采样提高信噪比

一般来说,我们可以提高ADC采样位数来提高ADC的信噪比,但是往往意味着ADC的成本可能也会更高。有没有不提高位数,同样优化信噪比的方法呢?有的,那就是过采样

2022-03-07 08:56:00

STM32 ADC采样技术有何作用

什么是过采样技术?STM32 ADC过

2021-10-21 06:36:13

浅析STM32 ADC采样技术

通过对文章的分析,发现它的实验结果并不能得到16 bit 精度采样数据。如果要达到 16 bit 精度,那么采样数据和理论值差值小于 8 才可能。但通过分析该实验结果发现几乎没有这样的数据出现,几乎都是 >=

2021-08-05 07:40:49

STM32采样原理

前些天在网上看到一个提高AD转换的资料。希望对大家有帮助基于STM32微控制器的过采样技术研究与实现.pdf (298.33 KB )

2020-05-24 21:03:34

采用Δ-Σ和SAR ADC的采样模式提升ADC动态范围

类似于Δ-Σ型ADC过采样、高吞吐速率SAR ADC过采样还能改善抗混叠

2019-09-14 10:05:00

7天热门专题 换一换
相关标签