12 Bit ADC与LSB的含义
【转】12 Bit ADC与LSB的含义
LSB(Least Significant Bit),意为最低有效位;MSB(Most Significant Bit),意为最高有效位,若MSB=1,则表示数据为负值,若MSB=0,则表示数据为正。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
当选择模数转换器(ADC)时,最低有效位(LSB)这一参数的含义是什么?有位工程师告诉我某某生产商的某款12位转换器只有7个可用位。也就是说,所谓12位的转换器实际上只有7位。他的结论是根据器件的失调误差和增益误差参数得出的,这两个参数的最大值如下:
失调误差 =±3LSB,
增益误差 =±5LSB,
乍一看,觉得他似乎是对的。从上面列出的参数可知最差的技术参数是增益误差(±5 LSB)。进行简单的数学运算,12位减去5位分辨率等于7位,对吗?果真如此的话,ADC生产商为何还要推出这样的器件呢?增益误差参数似乎表明只要购买成本更低的8位转换器就可以了,但看起来这又有点不对劲了。正如您所判断的,上面的说法是错误的。
让我们重新来看一下LSB的定义。考虑一个12位串行转换器,它会输出由1或0组成的12位数串。通常,转换器首先送出的是最高有效位(MSB)(即LSB + 11)。有些转换器也会先送出LSB。在下面的讨论中,我们假设先送出的是MSB(如图1所示),然后依次送出MSB-1 (即 LSB + 10)和MSB -2(即LSB + 9)并依次类推。转换器最终送出MSB -11(即LSB)作为位串的末位。
LSB这一术语有着特定的含义,它表示的是数字流中的最后一位,也表示组成满量程输入范围的最小单位。对于12位转换器来说,LSB的值相当于模拟信号满量程输入范围除以212 或 4,096的商。如果用真实的数字来表示的话,对于满量程输入范围为4.096V的情况,一个12位转换器对应的LSB大小为1mV。但是,将LSB定义为4096个可能编码中的一个编码对于我们的理解是有好处的。
让我们回到开头的技术指标,并将其转换到满量程输入范围为4.096V的12位转换器中:
失调误差 = ±3LSB =±3mV,
增益误差 =±5LSB = ±5mV,
这些技术参数表明转换器转换过程引入的误差最大仅为8mV(或 8个编码)。这绝不是说误差发生在转换器输出位流的LSB、LSB-1、LSB-2、LSB-3、LSB-4、LSB-5、LSB-6和 LSB-7 八个位上,而是表示误差最大是一个LSB的八倍(或8mV)。准确地说,转换器的传递函数可能造成在4,096个编码中丢失最多8个编码。丢失的只可能是最低端或最高端的编码。例如,误差为+8LSB ((+3LSB失调误差) + (+5LSB增益误差)) 的一个12位转换器可能输出的编码范围为0 至 4,088。丢失的编码为4088至4095。相对于满量程这一误差很小仅为其0.2%。与此相对,一个误差为-3LSB((-3LSB失调误差)—(-5LSB增益误差))的12位转换器输出的编码范围为3至4,095。此时增益误差会造成精度下降,但不会使编码丢失。丢失的编码为0、1和2。这两个例子给出的都是最坏情况。在实际的转换器中,失调误差和增益误差很少会如此接近最大值。
在实际应用中,由于ADC失调或增益参数的改进而使性能提升的程度微不足道,甚至可以忽略。但是,对于那些将精度作为一项设计目标的设计人员来说,这种假设太过绝对。利用固件设计可以很容易地实现数字校准算法。但更重要的是,电路的前端放大/信号调理部分通常会产生比转换器本身更大的误差。
通过上面的讨论可以对本文开头提到的错误结论有一个更为全面而清晰的认识。事实上,上述的12位转换器的精度约为11.997位。采用微处理器或单片机可以利用简单的校准算法消除这种失调和增益误差,这对设计人员来说无疑是个好消息。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
转自 -> http://bbs.21ic.com/icview-175577-1-1.html
【问】:我现在在做项目:比如项目要求只能5%的误差,那我在电路设计和材料选型上该怎么把握,既不能材料选型过高,导致成本过高,也不能选择材料要求过低,达不到要求。
信号本身的误差,信号放大的误差,ad采样误差等其他误差最终导致总的误差是多少,怎么计算的呢。
是不是可以由软件补偿来完成呢,
我还是不太清楚的。
请教达人。
【答1】:比如规格要求整个系统精度为0.1%,那么怎么选ADC呢?先选8位AD,8位AD 1LSB = 0.39%,很显然不可能满足要求。重新再选,这时选10位的AD,10位AD 1LSB = 0.09%,看似满足规格要求,实则不然,因为ADC有DNL误差,INL误差,失调误差,增益误差。DNL和INL一般为+/-1LSB,失调误差为3LSB,增益误差为4LSB,所有的这些累加起来一共有9LSB。
9LSB的误差以为着什么呢?就是说9LSB 约等于2^3,这时10为的AD只能降额为7位AD使用,已不能满足要求。需要ENOB更多的ADC,选14位ADC,降额3位使用,实际就是11位,11位AD的1LSB = 0.04%,
此时满足要求,但是还不算上温漂,放大器的增益误差,电阻的精度误差等,留给它们的余量有 0.1% - 0.04% = 0.06%,然后在依据这个余量来选其他的器件,比如参考源精度,温漂等。
假如参考源在整个温度范围内有5ppm/'c, 假如整个系统工作在0- 70'c,那么参考源漂移引起的误差为 350ppm = 0.035, 此时有0.06% - 0.035%的余量留给放大器及其他元器件的误差,在此不再累赘。
【答2】:分析的时候是误差合成
设计的时候是误差分解
比如用两个电阻R1,R2把电压Vi分压,输出电压Vo=K*Vi=R1/(R1+R2)*Vi
R1,R2相对误差分别是e1,e2
那么总相对误差 e≈(1-K)*(e1+e2)
其实,对于一般的线性系统,只要每项相对误差足够小,都可以简单相加(当然要包含系统的增益)
这样的公式怎么来的?一、求偏导。二、忽略高阶小量。三、泰勒展开,再忽略高阶小量。
就这点东西。
当然,简单相加属于“Worst-Case”分析方法,如果你要更精确更严谨的计算,比方说在计量检定的时候,那就得动用数理统计了,比方说,用均方根代替求和
12 Bit ADC与LSB的含义的更多相关文章
- ADC驱动器或差分放大器设计指南
作为应用工程师,我们经常遇到各种有关差分输入型高速模数转换器(ADC)的驱动问题.事实上,选择正确的ADC驱动器和配置极具挑战性.为了使鲁棒性ADC电路设计多少容易些,我们汇编了一套通用“路障”及解决 ...
- DAC杂谈二 ——ADC和DAC常用技术术语
采集时间 采集时间是从释放保持状态(由采样-保持输入电路执行)到采样电容电压稳定至新输入值的1 LSB范围之内所需要的时间.采集时间(Tacq)的公式如下: 混叠 根据采样定理,超过奈奎斯特频率的输入 ...
- USB ISP(ICSP) Open Programmer < PWM ADC HV PID >
http://sourceforge.net/projects/openprogrammer/?source=navbar Open Programmer http://openprog.alterv ...
- ADC相关参数之---INL和DNL
笔者最近在做的一个项目中,用到一片16位的高分辨率的芯片,借此再学习一下由于ADC和DAC的相关知识,以此巩固. 关于ADC的精度和分辨率将在另外一篇博客讨论,分辨率不等于精度. 一块精度0.2%(或 ...
- [BLE]CC2640之ADC功能实现和供电电压的採集
一.开篇 Write programs that do one thing and do it well ~~~~~ 发现非常多人关于使用CC2640/CC2650的过程中比較难以应对的问题就是实现A ...
- Linux就这个范儿 第19章 团结就是力量 LSB是Linux标准化基地(Linux Standards Base)的简称
Linux就这个范儿 第19章 团结就是力量 LSB是Linux标准化基地(Linux Standards Base)的简称 这个图片好可爱,它是LSB组织的图标.你肯定会问:“图标这么设计一定有说 ...
- STM32F407VG (三)ADC
12位ADC是一种逐次逼近型模拟数字转换器. 它有多达19个通道,可測量16个外部和2个内部信号源和VBAT通道.各通道的A/D转换能够单次.连续.扫描或间断模式运行. ADC的结果能够左对齐或右对齐 ...
- TPYBoard开发板ADC数模转换一: 初识ADC使用
转载请以链接形式注明文章来源,公众号:MicroPython玩家汇 1.前言 ADC,Analog-to-DigitalConverter的缩写,指模/数转换器或者模数转换器[1].是指将连续变化的模 ...
- 【iCore4 双核心板_ARM】例程九:ADC实验——电源监控
实验原理: STM32内部集成三个12位ADC,iCore1S的所有电源经过电阻分压或者直接 接入STM32的ADC的输出通道内,输入电流经过高端电流检测芯片ZXCT1009F 输入到ADC的输入通道 ...
随机推荐
- js中闭包和作用域
将这方面很好的一系列文章:http://www.cnblogs.com/wangfupeng1988/p/3977987.html
- 解决ubuntu使用命令sudo apt -get install 安装东西时出现"E: Sub-process /usr/bin/dpkg returned an error code (1) "的错误
问题描述: 今天在使用命令 "sudo apt-get install python3-pip"安装时,总是出现如下图这样的错误,开始以为是以为自己python版本的问题,后来发现 ...
- 构建微服务:快速搭建Spring Boot项目
Spring Boot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...
- 【java8】慎用java8的foreach循环(作废)
+警告 这篇文章作废掉,是由一个错误的测试方法得到的一个错误结论,后续修正结果正在测试,将贴上. 准确测试已完成:http://www.cnblogs.com/yiwangzhibujian/p/69 ...
- apache ftp server的外网访问问题
apache ftp server的外网访问简单配置点如下:
- 第四章 数据库和SQL 4-3 数据的更新(UPDATE语句的使用方法)
一.UPDATE语句的基本语法. 二.指定条件的UPDATE语句(搜索型UPDATE) 三.使用NULL进行更新 NULL清空:使用UPDATE可以将列更新为NULL,俗称NULL清空. 四.多列更新 ...
- IDEA 导入javaWeb项目
导入后的项目 1. 把项目变成web项目 配置 artifact 然后这边就自动配置成了 tomcat: 然后运行 没有毛病!!
- 山寨"每日故宫"应用的图层遮罩效果
山寨"每日故宫"应用的图层遮罩效果 最终效果: 应用中的效果: 素材图片: 源码: // // ViewController.m // 每日故宫 // // Created by ...
- Linux 系统的日志目录
连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,通过who查看 who /var/log/wtmp [连接时间日志] who /var/log/ ...
- 清除右键菜单CMD入口
批处理代码 reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\cmd" /v Extended /t REG_SZ