ADC知识(2)——直流参数(输入电压参考,参考电流输入,积分非线性误差,差分非线性误差)...

目录

四、       输入参考电压范围

五、       参考电流

六、       非线性问题

差分非线性误差

积分非线性


四、       输入参考电压范围

大多数数据手册中,将它定义为一个特定的参考电压值,通常这个电压作为 此转换器最常用的参考电压。在参考输入电压范围内,使用任何其他参考电压值 器件的性能与指定的电压值是相同的。但是并不意味着这个参数不够重要,在设计中需要选取合适的参考电压范围,从而更好的利用ADC的动态范围。

图 5未完全利用ADC动态范围

在数据手册中往往会说明,参数是如何受不同参考电压影响的,以ADS9110 为例给出了指定的参考范围中不同的参考电压对于性能的影响:

以上的所述均为参考电压范围对于性能的影响。另一个方面,参考电压的输入纹波也会对器件的性能造成极大的影响。这个我后期再讲。

五、       参考电流
 

SAR型ADC的输入参考端,连接到了一组开关电容上,在转换周期内开关电容连接到了比较电路,与参考电压比较,进行快速的充电和放电,对于整个转换周期中,输入参考电流最大的那个值,作为内部电容充电的起始位(关于SAR型ADC的具体详细工作流程请自行百度)。有的ADC会指出这一个参数。

这个表展示的是 ADS8881 的例子 可以看出在整个转化中 它的典型电流值是 300μA。注意,这里的 300μA 是指的平均电流。一般在实际电流最大可以达到几个mA,同时还需要注意的是。假如整个转换周期为100nS,可能到达峰值之前的时间就有十几纳秒。一般情况下我们会在输入电容端,放置一个较大的滤波电容。以来满足电流的快速瞬态响应,同时参考端也会提供一个平均电流,来补充电容器之间的快速变化。一般情况下瞬变的时间相对较短。所以在 ADC的参考端会需要一个较宽的宽带缓冲区。数据手册中的参考端应该放置何种电容(封装,材料,容量等等)正是基于此得到的。在设计中一定不可以忽视这个问题。

六、       非线性问题

为了讨论ADC的非线性问题,首先需要先了解ADC的理想模型。

这里呈现的是一个 ADC 的理想传输函数水平轴表示连续的模拟输入信号 纵轴显示的是数字输出代码。可以被认为 将模拟输入信号近似到随其最接近的数字对应位置。ADC的满量程输入范围在数字编码的总数上是被等量划分的,也就是将这个图中的红色的虚线转化成了阶梯性的蓝线 位数是指数字输出。在这个例子中我们有四位二进制数字用于表示满量程模拟信号。二进制数字代码数量是24即16。在本次例子中,用满量程电压(2V)除以16等于 0.125V 即为能测量的电压分辨(满量程输入范围为 0 到 2V 但最大可检测的输入电压是 是满量程减去一个 LSB,即 1.875V )。

            图 8 理想ADC模型

 

差分非线性误差

差分非线性是用来衡量实际一个LSB和一个理想LSB之间的区别。

左图为直观的表示了ADC的差分非线性ED (Differential Linearity Error)从这个图中可以看出。一些数字输出对应的宽度要比实际宽度长(或者更短)。如果与理想代码宽度相同,则差分非线性为零。

图 9 ADC差分非线性示意图

在某些极端情况下,当这种误差很大的时候,会导致完全跳过代码的转换。通常称为缺失代码。举个例子,假设在数字4`b1000处对应的数字量化宽度足够宽,以至于覆盖到1001对应的输出,导致任何模拟电压输入ADC都无法输出1001这个代码。丢失代码是很多电子系统中非常严重的问题,因此现在大多数的 ADC 都会设计和测试这个参数,以保证尽量减少不确定度。下图是一个更加实用的 18位 AD 转换的示例。这个图中是将计算了数千个 DNL组合在一起形成了一个图示。可以看出这颗器件的DNL通常是小于0.5个 LSB 的。是一个十分低噪声的ADC。当然了STM32 内部的ADC的性能就要差一些了。(依据手册通常在±1LSB最大可达±2LSB)。


积分非线性

 积分非线性是用来衡量 ADC 传递函数与拟合直线的比较。

为了消除增益和偏置误差,我们通常将实际ADC传递函数的两个端点进行拟合 在这个例子中,绿色的线就表示拟合直线。从初始代码 0000到终止代码 1111 对于一个理想的线性 ADC 它的拟合直线是处于传递函数的中间的。然而在这个情况下可以看出被测的函数,即为蓝色这条线。它偏离了线性拟合,所以具有一个正的积分非线性。与差分非线性相同积分非线性也可以表示在ADC的输出代码上,可以用 LSB 来表示,也可以用满量程的百分比来表示。一般来说这个误差相较于积分非线性误差来说要大好几倍(STM32的这两个指标如所示)。

图 12 STM32的积分非线性和差分非线性

转载于:https://www.cnblogs.com/maobitcoder/p/10740277.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LuckyDraw app使用CosmosDB的成本分析

我在以前的博客里说过我的LuckyDraw app在数据存储方面使用的是 Azure Table Storage,当时选择这个的原因是成本考虑,因为它实在是便宜,对于我这种个人开发维护的免费的teams app来说,成本是一个很重要的考量点。 当然&#xff0…

React 重温之 组件生命周期

生命周期 任何事物都不会凭空产生,也不会无故消亡。一个事物从产生到消亡经理的各个阶段,我们称之为 生命周期。 具体到我们的前端组件上来,一个组件的生命周期可以大体分为创建、更新、销毁这个三个阶段。 本文主要介绍React 的组件生命周期…

10 个优质的 Laravel 扩展推荐

这里有 10 个用来搭建 Laravel 应用的包 为何会创建这个包的列表?因为我是一个「比较懒」的开发者,在脸书上是多个 Laravel 小组的成员。平日遇到最多的问题就是开发是需要用那些包。我很懒所以我不想每次都从头开始搞这些东东。 为何此文没有包括管理包…

Java:反射+泛型:获取类型参数的实例

2019独角兽企业重金招聘Python工程师标准>>> 场景描述&#xff1a; 我需要开发四个页面&#xff0c;每个页面都是只涉及增删改查的基本逻辑。 最简单的写法&#xff1a; 创建四个接口A,B,C,D&#xff0c;每个接口中都声明了增删改查四个方法,完全一致 public Map<…

servlet(1)

servlet类分级&#xff1a; 1.ServletConfig接口类&#xff1a;理解为读取servlet配置的类&#xff0c;里面有四个抽象方法如下&#xff1a; ①getServletName:获取servlet在web.xml中的名字 ②getServletContext&#xff1a;获取Servlet上下文&#xff0c;相当于web项目管理所…

如何在 Apple Silicon (M1) 上开发 Teams App

apple 在几个月前发布了自家的芯片 M1&#xff0c;由于将多核cpu&#xff0c;多核gpu&#xff0c;神经网络运算&#xff0c;内存和其他一切处理部件高度整合在一起&#xff0c;大大提高数据传输速度。发布后好评如潮&#xff0c;我也没有忍住&#xff0c;入手了一台最低配的mac…

集成学习-Adaboost

Adaboost 中文名叫自适应提升算法&#xff0c;是一种boosting算法。 boosting算法的基本思想 对于一个复杂任务来说&#xff0c;单个专家的决策过于片面&#xff0c;需要集合多个专家的决策得到最终的决策&#xff0c;通俗讲就是三个臭皮匠顶个诸葛亮。 对于给定的数据集&#…

企业数据湖构建之旅

摘要&#xff1a;随着互联网的发展&#xff0c;数据的规模和类型都呈现一个爆炸性的增长&#xff0c;对于这么多类型的数据&#xff0c;如何进行有效的管理和存储&#xff0c;包括数据的分析&#xff0c;这是大家要面临的一个问题。在武汉云栖大会上&#xff0c;阿里云高级产品…

用AzureFunction开发最简单的Teams Bot

之前我有一篇文章讲了如何在azure function上开发最简单的outgoing webhook&#xff0c;收到一些反馈&#xff0c;建议我介绍一下如果在azure function上开发teams bot&#xff0c;那这篇文章就来讲一下如何用function来快速开发bot。 我们先创建一个azure function资源&#…

关于深度学习,这些知识点你需要了解一下

深度学习概述 o 受限玻尔兹曼机和深度信念网络 o Dropout o 处理不平衡的技巧 o SMOTE&#xff1a;合成少数过采样技术 o 神经网络中对成本敏感的学习 深度学习概述 在2006年之前&#xff0c;训练深度监督前馈神经网络总是失败的&#xff0c;其主要原因都是导致…

git add * 提示warning: LF will be replaced by CRLF in 解决办法

在使用git的时候&#xff0c;每次执行 $ git add * 都会提示这样一个警告消息&#xff1a; 虽然说没有什么影响吧。 不过就是觉得太碍眼了&#xff0c; 按照这样设置就没有问题了: git config core.autocrlf false 这样设置git的配置后在执行add操作就没有问题了。 奋斗的年纪你…

Dispatch Queue 之 Invoke 当前队列

&#xfffc; 转载于:https://www.cnblogs.com/huahuahu/p/dispatch-queue-zhi-invoke-dang-qian-dui-lie.html

Teams数据统计 - 用户在线离线状态

前几天我在wechat的moments里看到以为朋友发了腾迅会议的对用户个人的年度数据统计&#xff0c;看上去很有大数据感。 实际上 Teams 也具备的类似的能力&#xff0c;只是它把这个能力开放给了开发人员&#xff0c;我们可以通过强大的 Graph API&#xff0c;获取大量的数据信息&…

我们是如何通过全球第一免费开源ERP Odoo做到项目100%交付

传统友商ERP的交付过程 一、先初步需求调研&#xff0c;后选型功能模块 传统友商ERP第一件事情先对客户方进行初步的调研&#xff0c;客户方无论说什么&#xff0c;友商听过算过&#xff0c;只关心你人数多少&#xff0c;有哪些人涉及到哪些模块&#xff0c;接着对模块进行所谓…

Teams数据统计 - 通话记录

上篇文章介绍了如何获取用户的在线状态&#xff0c;这篇文章我们记录介绍如何统计用户通话记录。 首先&#xff0c;Teams为了安全&#xff0c;它要求 app 要有 CallRecords.Read.All 权限。然后就可以通过这个api来获取 call record。 GET /communications/callRecords/{id}这…

解决JS浮点数(小数)计算加减乘除的BUG

2019独角兽企业重金招聘Python工程师标准>>> //浮点数减法运算function FloatSub(arg1,arg2){var r1,r2,m,n;try{r1arg1.toString().split(".")[1].length}catch(e){r10}try{r2arg2.toString().split(".")[1].length}catch(e){r20}mMath.pow(10…

Teams App 如何使用设备的能力

我们以前讲到过&#xff0c;Teams有很多中可以扩展的方面&#xff0c;其中有一种是Tab&#xff0c;开发者可以开发一个web page/app&#xff0c;然后以tab的方式嵌入到teams里面。 除了基本的功能&#xff0c;这种tab也可以使用teams客户端设备所带的一些能力&#xff0c;比如…

实验室3

实验3.1 1 #include<stdio.h>2 int main()3 { long int sum,i;4 sum0;5 for(i22;i<1003;i20){6 sumsumi;7 }8 printf("sum%ld",sum);9 return 0; 10 } 11 1 #include<stdio.h>2 int main()3 { 4 long int…

Teams App自定义

当我们开发的 app 被企业安装后&#xff0c;有些企业挺希望能做一些自定义&#xff0c;如果把app的图标改的更加符合企业风格一点&#xff0c;或者把app的名字改成让本企业员工更容易理解一些&#xff0c;或者把app界面的主题色改成个企业风格更加搭配一些&#xff0c;或者对于…

实验四:xl命令的常见子命令以及操作

实验名称&#xff1a; xl命令的常见子命令以及操作 实验环境&#xff1a; 这里我们需要正常安装一台虚拟机&#xff0c;如下图&#xff1a; 我们这里以一台busybox为例&#xff0c;来进行这些简单的常见的操作&#xff1b; 实验要求&#xff1a; 这里我们准备了5个常见操作&…