工具/软件:
您好、
我想了解如何进行计算
ADC 读数中的最坏情况误差计算
原理图如下:
ADC 是 10 位、Vref = 2.51V
此致
Jonathan Kabangu
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
您好、
我想了解如何进行计算
ADC 读数中的最坏情况误差计算
原理图如下:
ADC 是 10 位、Vref = 2.51V
此致
Jonathan Kabangu
尊敬的 Jonathan:
在回顾一下您在此处所做的操作后、我想知道您对误差的预期是什么以及您在该通道上对 ADC 进行采样的频率。 计算误差不仅要考虑电路中电阻的精度百分比、还 要考虑 ADC 的 LSB、INL、DNL 和信号采样时间。
我询问您的预期原因是基于我对电路的初始分析。 从 ADC 输入端看到、R298 和 R300 的值会产生~35K 的阻抗、当您将 C349 和 C350 考虑在内时、RC 充电时间常数非常大。 这甚至没有考虑 ADC 的输入多路复用器 R 和采样电容器 Cs。 在如此大的阻抗与电容相结合的情况下、ADC 内部为 Cs 充电的时间将非常长、 5Tau 的时间为~38ms、这会使 Cs 达到充满电的大约%99.3。 如果未对内部采样电容器完全充电、也会引入误差。 如果要尽量减少误差、则需要采样更长时间。 这意味着、如果您希望以 10usec 的速度进行采样、这将不起作用、您将具有非常大的误差。
仅供参考、这是一个 不关注 ADC 输入阻抗的应用
https://www.ti.com/lit/an/spna061/spna061.pdf
我们有一个关于 在不使用放大器的情况下驱动 SAR ADC 的视频
在不使用放大器的情况下驱动 SAR ADC |视频|德州仪器 TI.com
还有一点需要考虑... MSP430F5310 ADC 的分辨率为 (2.51/1024bit)= 2.451mv/位、根据数据表、它有 1-2 个 LSB 误差。 由于分压器大约为 10、并且未考虑系统中的任何其他误差、因此对于 2 LSB 误差(我使用的是最坏情况)、这相当于 2x (2.45mv X 10)= 2x (24.5mv)= 49mV。 49mV 误差是否正常、或者您是否在寻找更小的电压?
那么、也许您能告诉我具体的应用以及正在测量什么(电池,电源,传感器输出等)? 您计划测量此信道的频率如何、或者另一种方法是“您分配了多少时间进行测量“? 也许你打算采取几个和平均? 系统能否(您的应用程序可以承受这么长的时间)?
只是问问:)
尊敬的 Dennis:
我对错误没有任何具体的期望、这就是我试图计算此值的原因
对于通道上的 ADC:
“
a.) 假设我正在测量进入系统的 18V 电压。
b) 我使用容差为 1%的电阻器、使用一个电阻分压器对其进行分压。 R1 = 330k 和 R2 = 39k(比率为 0.1058)。 然后、电池上的 18V 电压将分频为 Vadc=1.902V。
c.) 我使用 微控制器的内部“2.51V +/–1.51%"基“基准作为 ADC 的基准。
d.) 我使用的微控制器 (MSP430) 提供了 12 位 ADC 的一些规格。
积分线性误差 = +/- 1LSB
差分误差= +/- 1 LSB
偏移误差=+/- 1 LSB
增益误差=+/- 1LSB
e) TUE = sqrt (1^2+1^2+1^2+1^2)=1
f)
ADC 详细信息
分辨率:10 位
满量程:2.51V
步长:1024 (0-1023)
LSB 大小:2.51V/1023=2.45mV
g ) LSB_ERROR:LSB 大小* TUE = 4.907mV
h) adc_digitalcode error =(Vadc/Vadc*2 Vref^N)=1.902/2.51*(1+1.5/100)–2)=763
i) 实际 MCU_ADC=LSB_ERROR*ADC_DIGITALCODE = 2.45mV * 763 = 1.869
j) 实际 18Vin=1.869*330k+39k/39k=17.695
这是怎么做的?
让我们尝试一下、看看会得到什么
d.) 我使用的微控制器 (MSP430) 提供了 12 位 ADC 的一些规格。
积分线性误差 = +/- 1.7LSB
差分误差= +/- 2.0LSB
偏移误差=+/- 2.0LSB
增益误差=+/- 2.0LSB
总体未调整误差=+/- 3.5LSB
指向数据表片段的链接:
http://i1228.photobucket.com/albums/ee460/MrBlueCalifornia/ADC%20_erros_zpsy3dfpq7w.jpg
我不确定是否应将 ADC 部分中的所有错误相加、但我认为应该将此部分中的所有错误相加:
总 ADC 误差=(EI) 1 LSB +(ED) 1 LSB +(EO) 1 LSB +(EG) 1 LSB +(TUE) 2 LSB = +/- 6 LSB
由于我使用 10 位 ADC、因此我相信此处的总误差为 6LSB's/1024 = 0.585%
e.) 我的总误差将是
电阻器 1 (1%)+电阻器 2 (1%)+转换 ADC 基准 (1.5%) + ADC 误差 (0.585%)=+/- 4.085%
所以我想我的百万美元问题是哪一个是最坏情况下的两个方法?
此致
Jonathan Kabangu
尊敬的 Jonathan:
很抱歉我的回复出现延迟。
对于 ADC TUE、不能简单地将这些误差相加。 正如您在前面已经提到的、有一种已知的方法、即 RSS(平方和根)来计算总误差。 其中 INL = 1、DNL = 1、偏移= 1、增益= 1、则 TUE 计算如下。
E ) TUE = sqrt (1^2+1^2+1^2+1^2+1 2)=1
这表明 ADC 误差为+/- 1LSB、但数据表指出误差可能高达+/- 2。 使用 ADC 的这个最大 2LSB 误差、然后 2/1023 = 0.195%误差。
我们把它们加在一起。
Vref 误差 = 1.5%。
假设电阻器的额定值为+/- 1%、R1 为+1%、R2 为–1%、则电阻器总误差= 1%。
使用 ADC 的最大 2LSB 误差->2/1023 = 0.195%。
这样、总误差应该为 2.695%
每秒生成 300,000 个新读数。 [/报价]当与所示的输入网络配合使用时、这会使我感到麻烦。
每次采样都会将一些电荷从这个 0.22uF 的大输入电容器传输到 ADC 中的微型采样电容器。 非常小 (3.5pF)、您可能认为这不是问题。 对于低采样率、则不然。
每次采样都会将一些电荷从 0.22uF 电容器传输到 ADC 电容器。
多少电荷? 假设输入端有一定电压、例如 1.8V。 乘以采样电容、得到每次采样的电荷。 (传输的实际电荷取决于转换周期后剩余的电荷量。) 然后每秒采样数以获取电流。 然后乘以输入电阻 (330K) 来获得压降。
如此高的采样率确实需要一个有源缓冲器。
尊敬的 Dennis:
如果 TUE = sqrt (EI^2+TUE ED^EO^EG^2)、则 TUE = sqrt (1^2+1^2+1^2+1^2+1 2)=1
为什么数据表显示最大 TUE +/-=2?
为什么我们再次在总 ADC 误差计算中包含“TUE “、这是正确的吗?
总 ADC 误差=(EI) 1 LSB +(ED) 1 LSB +(EO) 1 LSB +(EG) 1 LSB +“(TUE) 2 LSB“=
如果 TUE 是所有这些误差的平均值、为什么我们要再次将其包含在计算中
此致
Jonathan Kabangu
尊敬的 Jonathan:
好的、我认为这里有点混淆。
下面、您对 TUE 是正确的。
TUE = sqrt (EI^2+ ED^2+ EO^2+ EG^2)
因此、由于 EI、ED、EO 和 EG 都= 1、ADC 总误差为 SQRT (1+1+1+1)= SQRT (4)= 2、对吧?
在数据表中、TUE (typ) 为+/–1(其中所有误差不一定同时发生)、而 TUE (max) 是在两者同时发生的情况。 因此是典型值与最大值 下面是 ADC 精度第 2 部分的片段:总体未调整误差解释 — 精密中心-存档 — TI E2E 支持论坛
接下来、为了添加我之前关于上面%ERRORS 的注释、我们用 LSB 来表示错误:
[引述 userid=“114745" url="“ url="~“~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1525487/msp430f5310-adc-reading-worst-case-error-calculation/5874714这表明 ADC 误差为+/- 1LSB、但数据表指出误差可能高达+/- 2。 使用 ADC 的这个最大 2LSB 误差、然后 2/1023 = 0.195%误差。
我们把它们加在一起。
Vref 误差 = 1.5%。
假设电阻器的额定值为 1%、R1 为+1%、R2 为–1%、电阻器总误差= 1%。
使用 ADC 的最大 2LSB 误差->2/1023 = 0.195%。
这样、总误差应该为 2.695%
[/报价]要将这些错误转换为 LSB ...
Vref 错误= 0.015 x 1023 = 15.35LSB
电阻器误差= 0.01 x 1023 = 10.23LSB
ADC 误差 (max)= 2LSB
因此、总误差 = 27.58LSB、 以%error 表示为= 0.02695 ->(27.58/1023)、这与上面计算得出的 2.69%相同。
但 LSB 是一个整数值、不是十进制、因此更有可能 Total 为 15 + 10 + 2 = 27、并表示为%ERROR 为 27/1023 = 0.02639(即 2.64%)。