SAR ADC基本原理学习

2023-11-17

今天我们来学习SAR ADC喽。逐次逼近寄存器型模数转换器(Successive-Approximation Analog to Digital Converter),是一种常用的A/D转换结构,其较低的功耗表现,还不错的转换速率,在有低功耗要求(可穿戴设备、物联网)的数据采集场景下广泛应用。
Sar ADC的历史可以追溯到16世纪,古人使用等比配重的方式称量物体重量。图1是1954年使用全真空管实现的11位 50KSPS的Sar ADC,也是首款商用的产品,歪果人真是厉害。在该领域ADI公司有着突出的表现和标志性产品,有兴趣的同学可以参考ADI的文档。
http://www.analog.com/media/en/trAIning-seminars/tutorials/MT-021.pdf
在这里插入图片描述
逐次逼近,顾名思义,多次转换和Bit计算中,A/D数字码输出逐渐逼近输入值。其算法核心就是“二分搜索(Binary Search)”,该算法能够高效快速的接近目标值。

举例说明,假如要请您猜测一个0~100范围内的被猜实数,您的每一次猜测,您只能得到猜测值和被猜实数的比较结果,“高了”或者“低了”的答复。请在有限的猜测次数后,得到最接近被猜测实数的猜测值。该过程可以用如图2所示的猜测过程来表示。

在这里插入图片描述
在图2中,两个被猜实数分别为9.8和70.1。可以看到使用二分搜索的方式,第一步确定被猜实数是否大于50,根据第一次的猜测结果,决定下一次二分搜索的区域。通过4次判断,最终得到了6.25和68.75的猜测结果。这也是有限次数误差较小的一种猜测。

对于SAR A/D来说,其输出是二进制的数字码,结合图2的猜测过程,我们可以看到,二分搜索的过程需要首先确定MSB(Most Significant Bit)位的值,依次向低位搜索,直到LSB(Least Significant Bit)得到确定,其中需要有数字码到其代表的离散模拟量的转化过程(DAC实现),被猜测实值(模拟输入)和数字码对应的离散模拟量的判断(比较器实现)。其功能框图如图3所示。其中还包含了对输入的采样保持部分,控制逻辑及逐次逼近所需的数字电路部分。

在这里插入图片描述
注意图2中用于和猜测结果比较的基准,等效为图3中DAC的输出。其输出结果的准确程度和均匀程度会直接影响到SAR ADC整体的性能, 因此需要选择合适的DAC架构实现。

目前常见的开关电容DAC,又称电荷再分配DAC。电容匹配精度仅受工艺过程中的光刻精度影响,容易实现SAR ADC精度和线性度的要求。该结构还有如下优点,将DAC和采样保持部分融合为一体,简化了电路的复杂度。

在这里插入图片描述
一个简易的4bit电荷再分配结构及工作过程如动图4所示。其中电容容值以2^N比例形式排列,b1~b5依次为最高位到最低位。其中Sample Phase用于采样输入信号,Hold Phase是采样完毕,等待转换的阶段,此过程结束后,输入电压Vin以电荷的形式存储在二进制排列的电容上。Bit Cycling是过程为逐比特确认的过程。各阶段Vx节点电压及逐比特计算的过程如图5所示。

在这里插入图片描述
Sar ADC典型的时序如图6所示,通常对输入信号的采样Sample需要多个时钟周期,具体所需时间为受分辨率影响,采样后输入信号建立误差应小于1/2 LSB。保持Hold和转换过程,需要N个时钟周期,如果存在校准的过程,则需要更多的时钟周期。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SAR ADC基本原理学习 的相关文章

  • 小松的STM32教程(6)——ADC

    预备 学习目标 学会调用Get Adc Average函数会使能多个ADC通道 概述 ADC输入电压范围 xff1a 2 4V 3 6V xff0c 一般使用0V和3 3V 数据对齐 xff1a 16bit存放12bit的转换数据 xff0
  • Stm32CubeMx通过DMA获取多路ADC采集的数据(踩到坑的来看看,我也是一步步踩坑到实现的)

    用stm32CubeMX 可以轻松配置模拟电压数值采集 由于使用直接存储器DMA进行ADC数据采集无需一直占用着CPU线程 所以我们一般在需要多通道采集的情况下才使用DMA 多路ADC采集在工业生产测量方面也很常用到 所以这个内容我们还是得
  • 不共地情况下使用单片机进行多通道ADC数据采集

    我们使用单片机进行共地电路的ADC测试很容易 xff0c 由于是共地 xff0c 所以只需要一根信号线输入到单片机的ADC采集引脚就可以得到相对于该电路系统GND的电压 xff0c 像一般的51系列单片机由于是5V供电 xff0c 且其引脚
  • STM32 ADC用到的 抗脉冲滤波算法

    先介绍一下算法的基本思想 xff1a 在一组采样值中 xff0c 去掉 abandonMaxNum 个最大数据 xff0c 去掉 abandonMinNum 个最小数据 xff0c 余下的数据求平均值 函数功能 xff1a 抗脉冲滤波法 输
  • MSP432(Keil5)——9.ADC驱动

    本次例程驱动了板载的ADC来读取一个模拟的角度传感器 xff0c 大家可以在ADC读取中断里面换成其他的计算 xff0c 具体引脚见程序代码 adc c span class token macro property span class
  • ADC转换值和实际电压的关系

    1 首先确定ADC用几位表示 xff0c 最大数值是多少 比如一个8位的ADC xff0c 最大值是0xFF xff0c 就是255 xff08 一般芯片手册会有说明 xff09 2 然后确定最大值时对应的参考电压值 一般而言最大值对应3
  • 模数转换ADC模块

    通用基础知识 ADC模块是嵌入式应用中重要的组成部分 xff0c 是嵌入式系统与外界连接的纽带 xff0c 是在测控系统中的重要内容 ADC模块 xff1a 即模数转换模块 AD转换模块 xff0c 功能是将电压信号转换为相应的数字信号 实
  • 16. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据

    adc 使用教程2 dma 连续扫描方式采集数据 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 注意 dma使用时存在一个外设映射到一个dam外设
  • RT-Thread记录(十四、I/O 设备模型之ADC设备)

    RT Thread ADC 设备学习使用 目录 前言 一 ADC 采样基础 1 1 ADC 通道 1 2 ADC 分辨率 1 3 ADC 采样计算 二 ADC 设备操作函数 2 1 查找 ADC 设备 2 2 使能 关闭 ADC 通道 2
  • stm32F4的ADC+DMA+Timer,实现2MHz连续采样。1LSB分辨率,极低噪声。

    1 ADC DMA Timer的实现原理 stm32F407 405的ADC为12位逐次逼近型ADC 有着高达2 4MHz的采样率 分辨率 1LSB 这样参数的ADC放在市面上单卖 也起码是 10 起步 而 stm32F407 405不仅内
  • INL/DNL Measurements for High-

    Abstract Although integral and differential nonlinearity may not be the most important parameters for high speed high dy
  • STM32 ADC没有输入电压时,采集结果不为0

    目录 1 问题概述 2 问题分析 2 1 钳位二极管 2 2 反向漏电流 3 复用功能 4 总结 1 问题概述 硬件焊接完成后测试程序ADC采集功能 先通过接入3 3V来看下 结果发现三个通道可以采集到0V 3 3V 而另外三个通道在没有接
  • DSP T320F2803x 模数转换模块 ADC

    一 ADC 概览 1 1 特点 29803x 的 ADC 模块是12位循环 ADC 部分 SAR 部分流水线 其核心是 12 位的转换器 有两个采样保持器 可同时或顺序采样 通过多路复用后有 16 个模拟转换输入通道 转换器可以配置为与内部
  • ESP32-C3入门教程 基础篇(一、ADC采样)

    经过前面的折腾 设计好了自己的测试开发板 搭建好了开发环境 然后正式开始进行功能测试了 测试顺序先从简单的开始吧 一步一步来 目录 前言 1 ADC采样示例测试 1 1 DMA连续采样 1 2 单次采样 1 3 测试源码 2 ESP32 C
  • SAR ADC基本原理学习

    今天我们来学习SAR ADC喽 逐次逼近寄存器型模数转换器 Successive Approximation Analog to Digital Converter 是一种常用的A D转换结构 其较低的功耗表现 还不错的转换速率 在有低功耗
  • simulink仿真 adc 采样ePWM输出例程

    新建文件夹并用matlab打开 写入这两个模块 配置 ADC 配置ePWM 不使能B 关了就行 其他的默认即可 配置烧录 连线 示波器接pwma1 和地 adc chanl1接 3 3v或者 0 3 3 都行 转化是 x 3 3 2 12
  • 栅压自举采样电路(bootstrap技术)

    栅压自举采样电路 bootstrap技术 参考 CMOS模 数转换器设计与仿真 编著 张锋 陈铖颖 范军 文章目录 栅压自举采样电路 bootstrap技术 一 电路结构 二 工作原理 一 电路结构 二 工作原理
  • 深入浅出《Delta-Sigma Data Converters》(可下载)

    在数字信号处理领域 数据转换器是实现模拟与数字世界之间无缝转换的关键组件 而在这个子领域中 Delta Sigma Data Converter s 一书以其全面和深入的内容 为工程师 学者甚至爱好者们提供了一个极其宝贵的资源 今天将为大家
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015

随机推荐

  • Linux Debian上快速安装Docker并运行

    要在Debian上安装Docker 可以按照以下步骤进行 更新系统软件包 在终端中执行以下命令 更新系统软件包 sudo apt get update 安装依赖包 在终端中执行以下命令 安装Docker需要的依赖包 sudo apt get
  • Echarts折线图x轴刻度距离

    在 ECharts 折线图中 x 轴刻度的距离是根据数据的数量和实际绘图区域的宽度来确定的 ECharts 会根据数据的数量自动计算出 x 轴上每个刻度之间的距离 以适应绘图区域的宽度 如果希望手动设置 x 轴刻度的距离 可以使用以下两种方
  • 解决PowerDesigner里允许字段重名约束的设置问题

    让tomcat支持中文路径名 将conf server xml中的
  • mfc入门基础(六)创建模态对话框与非模态对话框

    参考博客 VS2010 MFC编程入门之十一 对话框 模态对话框及其弹出过程 软件开发 鸡啄米 一 创建模态对话框 1 接着上节中的test02的例子来讲 找到test02 cpp文件 找到函数InitInstance 然后 因为上节我们实
  • setuptools清华源_setuptools与pip的依赖关系解决方案之间的差异

    我最近开始用SetupTools打包我的第一个项目 并且大部分都取得了成功 setuptools与pip的依赖关系解决方案之间的差异 不幸的是 我遇到了一个令人困惑的情况 我的项目依赖于PyPI上没有的单个文件模块 我已经能够使用depen
  • RandLA-Net结果可视化(将结果保存到本地再通过cloudcompare可视化)

    RandLA Net结果可视化 将结果保存到本地再通过cloudcompare可视化 问题 RandLA Net官网提供代码的可视化部分是通过open3d的方式呈现的 但如果使用远端服务器去跑 可能就无法实现可视化 或者当我们的需要可视化的
  • 卷积神经网络及其在图像处理中的应用

    一 前言 卷积神经网络 Constitutional Neural Networks CNN 是在多层神经网络的基础上发展起来的针对图像分类和识别而特别设计的一种深度学习方法 先回顾一下多层神经网络 多层神经网络包括一个输入层和一个输出层
  • Linux framebuffer显示bmp图片

    帧缓冲 framebuffer 是Linux为显示设备提供的一个接口 把显存抽象后的一种设备 他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作 framebuffer是LCD对应的一种HAL 硬件抽象层 提供抽象的 统一的接口操作
  • Zabbix的web界面基本操作

    Zabbix的web界面基本操作 一 查看客户端运行状态 1 查看客户端监听端口 2 查看客户端服务及进程 二 服务端状态检查 1 服务端端口监听 2 查看客户端的hostname获取情况 三 zabbix的web网页基本配置 1 登录查看
  • VisualStudio中添加LIb库、头文件、宏等常用配制

    在VS工程中 添加c c 工程中外部头文件及库的基本步骤 1 添加工程的头文件目录 工程 属性 配置属性 c c 常规 附加包含目录 加上头文件存放目录 2 添加文件引用的lib静态库路径 工程 属性 配置属性 链接器 常规 附加库目录 加
  • 深度强化学习入门:用TensorFlow构建你的第一个游戏AI

    本文通过一种简单的 Catch 游戏介绍了深度强化学习的基本原理 并给出了完整的以 Keras 为前端的 TensorFlow 代码实现 是入门深度强化学习的不错选择 GitHub 链接 https github com JannesKla
  • Java 内存模型及GC原理

    一个优秀Java程序员 必须了解Java内存模型 GC工作原理 以及如何优化GC的性能 与GC进行有限的交互 有一些应用程序对性能要求较高 例如嵌入式系统 实时系统等 只有全面提升内存的管理效率 才能提高整个应用程序的性能 本文将从JVM内
  • Windows11镜像网盘链接

    Windows11镜像 大小10 39G 自己用于M1芯片的mac装虚拟机 网盘链接放入 有需要的朋友自取 链接 https pan baidu com s 1xBjGPq74 FKiEK MgIFTpA 提取码 3jw3
  • matlab自动输出数据到excel文件的指定单元格

    matlab自动输出数据到excel文件的指定单元格 转载 https blog csdn net txcokokok article details 41969793 使用matlab自带的 xlswrite 命令 格式 xlswrite
  • 八大排序算法之选择排序

    选择排序 选择排序 Selection sort 是一种简单直观的排序算法 它的工作原理是每一次从待排序的数据元素中选出最小 或最大 的一个元素 存放在序列的起始位置 直到全部待排序的数据元素排完 选择排序是不稳定的排序方法 比如序列 5
  • Ubuntu_Crontab

    Ubuntu Crontab BasicUsage 编辑定时任务 crontab e 显示定时任务 crontab l 定时任务不执行的解决方案 首先手动执行定时任务命令 排查是否任务本身是否出问题 没问题的话 去日志中看 crontab日
  • C - C语言实验——求两个整数之中较大者

    Description 输入两个整数 请编程求其中的较大者 Input 在一行中输入用空格隔开的两个整数 例如5 9 Output 输出两个整数之中较大者 输出形式举例 max 9 Sample Input 5 9 Output max 9
  • 编程任务

    任务源自旧版的Brilliant数学讨论问题 2019 09 02我曾经发布过 可惜已经下线 幸活大喵做足备份 该问题看似是概率问题 实则不然 官方给出的解法透露出一个非常重要的数学思维方法 数学语言 为何以及如何构造一个函数 f n 运用
  • 互联网公司MySQL数据库采用读已提交的隔离级别原因

    开始我们的内容 相信大家一定遇到过下面的一个面试场景 面试官 讲讲mysql有几个事务隔离级别 你 读未提交 读已提交 可重复读 串行化四个 默认是可重复读 面试官 为什么mysql选可重复读作为默认的隔离级别 你面露苦色 不知如何回答 面
  • SAR ADC基本原理学习

    今天我们来学习SAR ADC喽 逐次逼近寄存器型模数转换器 Successive Approximation Analog to Digital Converter 是一种常用的A D转换结构 其较低的功耗表现 还不错的转换速率 在有低功耗