资料地址

兆易创新GigaDevice-资料下载兆易创新GD32 MCU

ADC简介

  • 假设 ADC 转换包括采样、保持、量化、编码四个步骤。
  • 在采样过程中,采样电容会参与其中。具体而言,即在采样开关 SW 关闭期间,外部输入信号借助外部的输入电阻 RAIN 以及 ADC 采样电阻 RADC,对采样电容 CADC 进行充电。在采样阶段,必须在规定的采样时间内,将外部信号的电压准确无误地采样到 ADC 中。Vref+需要在量化的过程中保持稳定。
  • ADC的性能指标一般分为" 静态性能参数 "和" 动态性能参数 "

每次采样过程可以简化为:外部信号通过输入阻抗以及采样电阻对采样电容的充电电阻对采样电容的充电(即采样电容零状态的单位阶跃响应)。

误差

  • 以下几种就是静态性能参数。
  • 采样时间结束后,采样误差表示为采样电容上的电压与信号源上的电压差值。在一次理想的采样过程中,这个电压差值应该保持在 0.5LSB 以内。(LSB为逐次逼近型ADC(SAR ADC)的最小电压分辨率,0.5LSB为SAR ADC的量化误差)

偏置误差

增益误差

微分非线性误差

积分非线性误差

ADC采样信号FFT频谱图

以下就是ADC采样的动态性能参数。

信噪比(SNR)

信纳比(SNDR)

有效位数(ENOB)

总谐波系数(THD)

采样周期Ts与外部输入电阻Rain

此处仅说结论,推导过程可以在资料中找到!

故在设计SAR ADC的外围电路时,首先就要考虑其采样时间Ts和外部信号源内阻,如果忽略这些基本参数,那么采样结果很难达到理想的精度。

RC滤波与采样

此处仅说结论,推导过程可以在资料中找到!

提高精度的几种方法和注意事项

MUC供电电源

  • 一般的单片机内部都会有一个精准的内部参考源(典型电压 2.5V),可以用作 ADC 工作时的电压。该内部参考电压可以连接到 Vref 引脚上,但是需要注意的是,其内部参考源带载能力不强,谨慎选择所带负载的大小。
  • 量化编码过程中,Vref + 需要为转化电容网络充电。在量化过程里,同样存在对基准源抽取电荷的作用。所以,倘若没有其他去耦措施,一个稳定且纯净的 Vref + 基准会对 ADC 量化的精度产生显著影响。建议对于这两个电源采用纹波噪声系数更小的 LDO 来供电。
  • 对于 VREF + 基准源,建议靠近引脚并联一个 uF 级以及一个 nF 级的去耦电容,一方面,它能够滤除来自外部的低频与高频电源噪声;另一方面,还可使 ADC 在量化编码过程中的基准源更加稳定。
  • 在 layout 过程中,对于相关电源线的走线,推荐加宽电源迹线,以减小迹线的 ESR,在量化阶段,减小转化电容网络瞬间充电对输入基准源的影响。

引脚电容

参考电压设置

采样信号的幅值不应超出 VREF+的幅值,对于无VREF+引脚的 MCU,采样信号的幅值不应超出 VDDA 的幅值,否则可能会导致模拟电源漏电,严重影响 ADC 性能。

IO口引入超范围电压

信号源输入电阻的影响

当信号源输入电阻不满足要求

假设锂电池的电压为24V,用R1=9MΩ、R2=1MΩ的电阻分压,然后将分压结果送进ADC通道进行采样,其并联得到的输出阻抗为0.9MΩ。

改善方法

  1. 添加一个运放跟随电路以实现阻抗匹配。
  2. 若对采样率无要求,可降低 ADC 的采样时钟,通过变相延长采样时间,使采样电容充电至正确电位。
  3. 当功耗要求可放宽时,可按相同比例缩小 R1、R2 两个电阻,例如设 R1 = 900k,R2 = 100k ,此时该分压电路的输出阻抗变为 90k 。配置合适的采样周期,便能够满足 ADC 的阻抗要求。

保证ADC采样精度的改善方法

对于 SAR ADC,在采样时间内,采样电容上的电压必须充分充放电。其充电电压值与外部输入电压的差值不应超过 0.5LSB,否则,无论后级 ADC 性能多么卓越,都无法真实反映信号的幅值。
  1. 对于具有极大输入阻抗的情况,我们添加了一颗电容来限制单次采样时的电压跌落或上升毛刺的幅值,但是在这种情形下,需要在每两次采样之间添加足够的时延给内部采样电容充电,以保证采样开关关闭时,采样电容上的电压与外部信号的电压差在量化误差范围内。
  2. 当 ADC 工作在连续采样或者扫描采样时,若因输入阻抗过大且未及时修正,输入阻抗过大通道的采样结果会受前一个采样通道信号的影响,通过增大采样时间以满足输入阻抗的影响会显著改善这个现象

I/O引脚串扰

  1. 在引脚规划方面,需提前规划将那些需要持续翻转的数字 I/O 在物理位置上与 ADC 采样通道保持距离。
  2. 倘若因资源限制,频繁翻转的数字 I/O 无法远离模拟采样口,那么在后期 layout 时可采取一些措施来降低影响。例如,可在数字 I/O 与模拟通道之间设置一定面积的 GND 进行隔离。
  3. 此外,减缓数字信号的边沿也能减弱串扰影响,比如给数字信号添加电容值合适的电容,降低 MCU 数字 IO 口的驱动速度,就能明显减缓该数字信号的边沿。
  4. 还可以在数字 I/O 口不翻转时进行一次 ADC 转换,当然,这一做法的前提是应用允许。

软件提高ADC采样精度

  1. 采用 ADC 片上硬件过采样。
  2. 对于不具备片上硬件过采样单元的 MCU,在软件算法上也可采用一些常用的滤波算法,来降低输入信号采样值的波动。比如最常见的平均算法,该算法在滤波过程中会占用 CPU 的算力以及一定的 RAM 空间。这种平均算法适用于输入信号变化缓慢、偶有脉冲型干扰的情况。要是信号变化频率高于这个平均滤波算法的执行频率,就会丢失信号变化的细节,经过平均后的采样结果便无法重现信号的全部信息。因此,此平均算法一般仅用于采样直流小信号,不建议用于采样交流连续信号(如正弦波等)。

【STM32系列】提升ADC采样精度的方法的更多相关文章

  1. STM32中基于DMA的ADC采样实例之MQ-2烟雾传感器

    最近学习了一下STM32中的ADC采样,由于手头正好有一个MQ-2的烟雾传感器,所以正好可以测试一把.体验ADC采样的过程.下面介绍一下这个MQ-2烟雾传感器. 1.MQ-2烟雾传感器简介 MQ-2气 ...

  2. Keil MDK STM32系列(六) 基于抽象外设库HAL的ADC模数转换

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  3. STM32的ADC采样时间

    STM32的ADC采样时间与其ADC的时钟频率密不可分. 例:STM32F103系列的ADC的时钟是在APB2(最大72MHZ)上.我们可以对其分频: RCC_PCLK2_Div2: ADC cloc ...

  4. STM32 多通道ADC采样,采用Timer1进行采样率控制,利用DMA进行传输

    http://blog.csdn.net/varding/article/details/17559399 http://www.51hei.com/stm32/3842.html https://w ...

  5. Keil MDK STM32系列(八) STM32F4基于HAL的PWM和定时器输出音频

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  6. 使用STM8SF103 ADC采样电压(转)

    源:使用STM8SF103 ADC采样电压 硬件环境: STM8SF103 TSSOP20封装 因为项目需要用到AD采样电池电压,于是便开始了使用STM8S ADC进行采样,也就有了下文. 手册上对S ...

  7. STM32系列ARM单片机介绍

    STM32系列基于专为要求高性能.低成本.低功耗的嵌入式应用专门设计的ARM Cortex-M3内核.按性能分成两个不同的系列:STM32F103"增强型"系列和STM32F101 ...

  8. 【转载】使用STM8SF103 ADC采样电压

    源:使用STM8SF103 ADC采样电压 硬件环境: STM8SF103 TSSOP20封装 因为项目需要用到AD采样电池电压,于是便开始了使用STM8S ADC进行采样,也就有了下文. 手册上对S ...

  9. Keil MDK STM32系列(九) 基于HAL和FatFs的FAT格式SD卡TF卡读写

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  10. Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

随机推荐

  1. Codeforces Round #674 (Div. 3) ABCD 题解

    A. Floor Number 题意:一开始的数为2,问加多少次x才能加到超过n. 思路:水题,循环一遍就行. view code #include<iostream> #include& ...

  2. shell 一下子创建多个 文件 和文件夹

    #!bin/bash seq -f "led%01g" 0 35| xargs mkdir for((i = 0;i<36;i++)) do led="led&qu ...

  3. ETL怎么实现多流自定义合并?

    随着信息技术的迅猛发展以及数据生成环境的多样化,互联网.物联网和社交媒体的广泛应用导致各种设备和平台不断产生大量数据,需要整合这些数据,从而进行数据融合.数据集成和管理平台ETLCloud,主要用于支 ...

  4. SciTech-System Theory-系统论:目标导向驱动+自适应动态调整+内外部双向良性循环机制:矛盾统一理论与实践,质与量,外部与内部,静态与动态,常态与异态,整体与局部, 共性与个性的需要。

    <<工程系统论, ISBN:9787030199294, 科学出版社, 李喜先等 著>> <<系统论, ISBN:9787510011894, 系统科学哲学--中国 ...

  5. DVD+R和DVD-R有什么区别?如果选购的话有什么需要注意的?--九五小庞

    DVD-R和DVD + R的区别和比较 表面上看,DVD + R光盘看起来与DVD-R光盘没有区别.它们的直径均为120mm,厚度为1.2mm,包括两个0.6mm的聚碳酸酯基材.但是,DVD + R在 ...

  6. 基础篇:6.3)形位公差-要素 Feature

    本章目的:理解形位公差研究的对象-要素,即点.线.面. 1.定义 2.类型 2.1 按存在的状态分 2.2 按结构特征分 2.3 按所处的地位分 2.4  按结构性能分 2.5  按与尺寸关系分 3. ...

  7. win11系统出现内部错误2203的问题

    有不少深度系统的win11专业版用户,在电脑上安装软件时提示2203的内部错误的问题,导致软件安装失败,这该如何解决呢?如果您也遇到这个问题不知道如何解决.就来看看深度技术小编整理的解决方案,希望有所 ...

  8. 基于HttpURLConnection的android http请求封装

    基于HttpURLConnection的android http请求封装 使用方法 //axiosGH(url,callback)//简写方式,默认为get请求 //axiosGH.get(url,c ...

  9. P6638 「JYLOI Round 1」常规

    容易把问题转换为求前缀和.设 \(p\) 为当前最大的下标使得 \(a_p \leq x\),则容易得到答案: \[\text{ans} = \sum_{i = 1}^{p}\left\lfloor\ ...

  10. P8328 [COCI 2021/2022 #5] Usmjeravanj

    P8328 [COCI 2021/2022 #5] Usmjeravanj 本题的实际难度和通过数不是相符. 实际思维难度:蓝 代码实现难度:绿 部分1.简化题意 存在两条河流,假设分别叫做① 和 ② ...