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.

[参考译文] MSP430F5310:ADC 读数和放大器;最坏情况下的误差计算

Guru**** 2362730 points
Other Parts Discussed in Thread: MSP430F5310
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1525487/msp430f5310-adc-reading-worst-case-error-calculation

器件型号:MSP430F5310

工具/软件:

您好、

我想了解如何进行计算

ADC 读数中的最坏情况误差计算

原理图如下:

ADC 是 10 位、Vref = 2.51V

此致

Jonathan Kabangu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:

    您将显示一个表(尽管很难阅读)。  您能否发布更清晰的副本?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dennis:

    该表显示了电压测量值、

    我要寻求的是最坏情况的误差计算、

    我们将非常感谢您使用我们的电路和 ADC 从 A 到 Z 的良好示例

    原理图显示了相关电路

    谢谢

    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:

    许多 ADC 代码仍然来自 Sercomm。 ADC 使用 MODOSC 作为采样时钟、默认为  4.8 MHz。 每个 ADC 读数由 16 个样本生成、这意味着每秒生成 300,000 个新读数。 我们可能会增加每个值采集的样本数量、以获得更稳定的读数、而不会对系统性能产生任何影响。“
    如果您需要这样、请告诉我  

    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

    这是怎么做的?

    或者此方法见:https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/512512/adc-total-error---msp430

    让我们尝试一下、看看会得到什么  

    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%)。