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.

[参考译文] ADS1240:如何计算转换的ADS1240数据输出的输入电压?!

Guru**** 2601915 points
Other Parts Discussed in Thread: ADS1240, ADS124S08

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/664249/ads1240-how-calculate-vin-of-converted-ads1240-data-out

部件号:ADS1240
主题中讨论的其他部件: ADS124S08

大家好,

我对计算数字数量的模拟输入电压有点困惑!!!

我有很多搜索,但我找不到合适的结果!

我的设置是:

VDD:3.3V - AVDD:3.3V - Vref:2.5V

寄存器:

SETUP:0x00 - MUX:0x08 - ACR:0x44 - ODAC:0x00 - DIO:0x00 - DIR:0xff -IOCON:0x00 -未在其他寄存器上写入!

我将带可变电阻器的通道0的输入电压设置为0.66v。

使用自校准CMD (0x0F)时:

我读出数据:5.9459万 ~ 6.0357万

当不使用自校准命令时:

我读出数据:8.21万~ 8.31万

哪种方程式可以将数字数据转换为模拟数据?

什么是OCR0~2和FSR0~2寄存器的应用?

FSR0~2寄存器与满刻度范围的关系是什么?

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

    Hamid,


    输出代码转换也取决于范围位。 这是地址02h处模拟控制寄存器(ACR)的第2位。

    如果范围位为0,则差分输入测量范围为±VREF /增益。其中VREF是参考电压,增益是PGA增益。 要根据代码计算电压,您基本上可以使用如下所示的内容:

    输入电压=(ADC代码/2^23)*(VREF/增益)

    请注意,ADC代码的负数以二进制补码记法表示。 如果您有Excel,则转换为:

    =IF (HEX2DEC (编号)<2^23,HEX2DEC (编号),HEX2DEC (编号)-2^24)

    我从ADS124S08数据表(ADS1240类型器件的更新版本)中获得了以下数据。 图中显示的代码转换:



    对于上图,如果range=0,则FS为VREF/增益。 如果range=1,则FS为VREF/(2*增益)。


    吴若瑟

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

    感谢您的回复Joseph,

    此问题已解决。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我遇到了另一个问题,即我设置了Vin = 70mv,但ADC代码不完全正确。例如:
    VIN:70mv
    ADC代码:69.1万
    正确代码:46.9762万

    我用两点“直线公式”解决了这个问题,这是真的吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Hamid,


    有几种情况会导致ADC读取的值大于预期值。 但是,我需要了解有关您的设置的更多信息,以确定问题是什么。 您能否提供您的系统示意图和寄存器值的读数?

    我将列出一些可能导致此类错误的因素:

    1.由于您读取的值高于预期值,这可能意味着引用低于预期值。 您加载的引用是否包含任何可能使引用值非常低的内容?

    2.如果这是IC基准,是否可能是该基准振荡? 许多参考需要一些电容负载才能确保稳定性。 您可能需要使用示波器来检查振荡。

    3.输入是否有任何大系列电阻? 大系列电阻可能会与ADC输入电流发生反应,从而增加测量电压。

    4.检查校准值是否正确。 这将用于配置寄存器中的OCR值和FSR值。

    我还会使用万用表测量输入电压和参考电压,以确保这些值与您预期的值相同。

    我不确定你用两点线方程式来解决这个问题是什么意思。 我认为你应该解释一下你做了什么。 不管怎样,该错误看起来太大,不能成为一般的增益错误问题。


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

    约瑟夫

    [引述用户="Joseph Wu"]


    有几种情况会导致ADC读取的值大于预期值。 但是,我需要了解有关您的设置的更多信息,以确定问题是什么。 您能否提供您的系统示意图和寄存器值的读数?

    [/引述]

    这是示意图:

    e2e.ti.com/.../ADS1240E.pdf

    读取所有注册:

    0x20,0x08,0xc4,0x00,0x00,0xff,0x00,0x75,0x03,0xbc,0x01,0x40,0x74,0xbf,0x10

    数据输出= 0x74bf10

    当Vin被修复时,只需更改DOR1。

    [引述用户="Joseph Wu"]

    1.由于您读取的值高于预期值,这可能意味着引用低于预期值。 您加载的引用是否包含任何可能使引用值非常低的内容?

    [/引述]

    我使用"REF03GP"制作参考电压,我检查了它是2.5V的修复。

    [引述用户="Joseph Wu"]

    2.如果这是IC基准,是否可能是该基准振荡? 许多参考需要一些电容负载才能确保稳定性。 您可能需要使用示波器来检查振荡。

    [/引述]

    根据今天的数据表,我添加了100nF和10uf电容器以输出参考IC,但数据没有变化!

    [引述用户="Joseph Wu"]

    3.输入是否有任何大系列电阻? 大系列电阻可能会与ADC输入电流发生反应,从而增加测量电压。

    [/引述]

    不,根据原理图,我没有串联电阻器。我移除了R和C并联,并联AIN0和AIN1的原理图中显示的输入。

    [引述用户="Joseph Wu"]

    4.检查校准值是否正确。 这将用于配置寄存器中的OCR值和FSR值。

    [/引述]

    选择新通道后,我调用自校准命令(0xf0),OCR和FSR自动更新。

    我不知道OCR和FSR的正确值是多少!!! 我如何知道它们是正确还是错误?

    在这种情况下,他们的目的是:

    OCR=0x0.0375万 - FSR=0x4001bc

    [引述用户="Joseph Wu"]

    我还会使用万用表测量输入电压和参考电压,以确保这些值与您预期的值相同。

    [/引述]

    现在测量:

    VIN:747mv -参考电压:2.5V

    ADC数据输出:0x74bf10 = 765.1088万

    正确值:501.3031万

    [引述用户="Joseph Wu"]

    我不确定你用两点线方程式来解决这个问题是什么意思。 我认为你应该解释一下你做了什么。 不管怎样,该错误看起来太大,不能成为一般的增益错误问题。

    [/引述]

    我这样做:

    VIN=70mv

    ADC数据(x0)=69.1万,正确值(y0)=46.9762万

    --

    VIN= 725mv

    ADC数据(x1)=742.2万,正确值(Y1)=486.5392万

    我用拖点按直线等式映射了这些值:

    en.wikipedia.org/.../Linear_equation

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

    Hamid,

    首先,我将跳过任何校准。 现在,您的校准值与应该的值相差很远。 通常,该值接近55.5559万h。 相反,您得到的是4001BCh,这会使您的输出值25 % 低于预期值。 这并不能解释您的全部错误,但它是其中的重要部分。

    下面是对OCR和FSR寄存器进行修改后的ADC结果的方框图。 我从另一台设备上盗走了这个图并替换了数字。 但是,这就是ADS1240的校准寄存器值的工作原理。

    FSR寄存器通常用于校准增益。 您可以将其视为输入采样电容器和参考电容器比率之间的微调。 通常,该值为55.5559万h,如果输入采样与预期的参考采样相匹配,该值将是您期望的值。 我想,在大多数情况下,为了获得适当的增益缩放,您可能会从该值中选择1 % off。

    正如我前面提到的,您的价值观仍然有些偏离。 让我们来看看您的设置:

    PGA = 1,单极输出数据(0h至FFFFFFh,仅测量正值),范围= 0。 请注意,由于您选择了单极输出数据(ACR中的第6位),因此根据我之前的帖子,正确的预期值是预期数据的两倍。

    但是,FSR值为4001BCh (419.4748万d),而不是预期的55.5559万h (559.2409万d)值,后者将您的输入缩小约25^%。 如果您使用了FSR的默认值55.5559万h,则会得到不同的输出数据。 您现在获得的是:

    忽略偏移增益误差,使用725mV输入和2.5V参考,您的预期理想输出为:

    (725mV /(2.5V / 2))* 2^24 = 973.0785万d

    但是,由于FSR的缩放比例较小,因此您可以重新计算如果FSR设置回55.5559万h,您将获得的数据。

    973.0785万d *(419.4748万d / 559.2409万d)= 729.8857万d

    请注意,缩放的预期值将获得729.8857万d,这与您获得的742.2万d数据类似。

    目前,我将省略校准周期,而只使用默认的OCR和FSR寄存器设置。 如果没有校准设置,您将根据测试结果在增益错误中关闭1.7 %。 这可能是输入或参考测量值错误(来自万用表),或者电路中可能增加了错误。 要获得更精确的误差分析,您可能需要精密万用表,或者我们可以查看原理图以了解其他误差来源。

    吴若瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您,此指南完全解决了我的问题。