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.

[参考译文] LMP9.01万:需要有关删除偏移的帮助

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/659494/lmp90100-need-help-removing-offset

部件号:LMP9.01万

您好,

我在一个产品中使用LMP9.01万,我很难调零输入。  输入通道0连接到应变仪,当我打开系统电源时,我测量大约0xF98。  很明显,这会发生变化,但这就是说我的平均价值。  我正在尽力将输入内容归零。  应变仪的范围为+/-5mV。  我计划使用FGA和PGA提供的增益,但如果我使用增益而不将输入归零(或实际接近零),我的读数将会放大,因为我正在放大此DC偏移。

我曾尝试使用数据表的9.3 .7.2 中的“系统校准”,但当我将CH0_SCAL_OFFSET寄存器设置为~0xF98 (这就是我的偏移看起来的样子)时,我得到~0x1000 HEX作为我的稳态偏移。  从数据表中,我认为您加载到CH0_SCAL_OFFSET中的任何内容都是从您的ADC样本中减去的。  我想对嵌入式系统做的就是在加电时检查x个样本数,对其进行平均计算,然后使用CH0_SCAL_OFFSET寄存器减去它们。  我已经一遍又一遍地阅读了数据表,似乎这应该是我采取的方法,但我无法获得接近零的输入。  

lmp9.01万当前配置为2x通道模式(214sps无增益)。 通道0由VIN0+和VIN1-组成。  通道2为VIN2+,VIN3-。  我目前没有使用任何增益,因为我只是尝试降低偏移量,而我使用的是当前缓冲区。  ADC模拟电源连接到来自TI的5V高精度参考以及应变计(电阻桥)。  对于这项测试,我只是驱动通道0的输入,并提供高质量的电源。  我正在将2.00V驱动至通道0的+和-,并测量非常小的不匹配。  当我更改输入之间的差分电压时,我可以看到ADC工作。  一个方向随正数增加,另一个方向增加带符号的输出,使设备看起来工作正常。

我错过了什么吗?

谢谢!

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


    我不确定是什么错了,但我确实有一些问题和一些事情要尝试。

    您使用设备时的增益是否为1? 或者,您是否更改了第一次测量和任何偏移写入之间的增益? 我知道这似乎有点明显,但我想我会检查一下。 您是否在采集数据之前更改增益系数? 如果可以,您能否提供您的配置以及如何设置偏移和增益?

    根据图54,应从来自ADC的VIN中减去存储在CHX_SCAL_OFFSET中的值。 但是,您可能获得了错误的值,或者偏移减法根本不起作用(1000h和F98h之间的变化是68h -约100个代码)。

    您是否使用了9.3 .7.2 .1中所述的系统校准偏移系数确定模式而不是直接输入该值? 这也应该得到正确的值。 我将浏览这组指令,然后读回CHX_SCAL_OFFSET的结果,看看它是否与您所得到的结果相符。

    要运行的另一个测试是将一个异常大的数字放入CHX_SCAL_OFFSET寄存器中,以查看它是被增益修改还是以异常方式使用。 如果您目前正在输入F98h,请输入像3E69h (4x)这样的更大值,然后查看它返回的内容。

    当然,我也会检查一下,在进行偏移或运行校准时,偏移值确实是0伏英寸,并且没有任何类型的输入沉淀。

    不管怎样,请通读我的评论,运行几个测试并让我知道如何进行。


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

    Joeseph,

    感谢您的回复!  我使用的增益为1 (与默认值没有变化),我尝试将偏移写入第一条配置消息和最后一条配置消息。  换言之,我尝试先配置偏移,然后再配置任何其它寄存器,最后配置所有其它寄存器。  我已验证我可以将偏移值I编程读入通道0偏移寄存器,因此如果我写入FF,我将读取FF,如果我写入0x77,我可以读取0x77。  但这似乎对实际抵消没有影响。

    要后退一步,我是否应该能够读取寄存器空间中的每一个寄存器并查看我所写的内容?  如果我配置了所有寄存器,我是否应该能够重新读取所有这些值并看到我在中编程的完全相同的值?  

    下面是我正在为2通道(ch0,ch1)重复采样模式编程的寄存器。

    LMP9.01万配置寄存器写入
    ----------------
    0x01:0x08
    0x02:0x00
    0x03:0x00
    0x09:0x1A
    0x0A:0x02
    0x0E:0x40
    0x10:0x00
    0x11:0x83
    0x12:0x00
    0x13:0x00
    0x17:0x00
    0x1f:0x88
    0x20:0x01
    0x21:0x01
    0x22:0x13
    0x23:0x01
    0x30:0x00
    0x31:0x00
    0x32:0xFF
    0x33:0x00
    0x34:0x00
    0x35:0x00

    下面是我从这些寄存器中读出的内容:

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

    下面是一个更完整的寄存器读取:

    下面是在加载0xFF偏移时我的数据的外观,如上面读的寄存器中所示:

    以下是我的寄存器读数,不带偏移量:

    以下是来自上述无偏移配置的数据:

    所有寄存器都按照寄存器的文本列表中显示的顺序以及我写入它们的值进行配置。  我假设您写入寄存器的顺序无关紧要?

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


    寄存器写入的顺序不应该有什么不同。

    现在您已将CH0_SCAL_Gain设置为0万h。 默认值为80万h。 是否可以将该值设置为80万h并检查结果?


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

    此外,这里还介绍了硬件配置

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

    以下是当ch0偏移设置为0x80万时的寄存器读取和读取结果。

    配置寄存器读取:

    以下是配置了0x80万偏移的示例结果:

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


    我认为您误解了。 我想要将CH0_SCAL_Gain设置为80万h。 这适用于寄存器33-35。 您已将CH0_SCAL_OFFSET值设置为80万h,应先保持在接近0万h的值。 偏移寄存器为30-32。


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

    哦,我很抱歉,我误解了我的意思。  我想这就是你想要的。  

    以下是寄存器值:

    以下是示例值:

    为什么CH0_SCAL_Gain 0x80万的默认值是?

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

    约瑟夫

    我认为这是我的错误。  我相信我现在得到的东西是有道理的,偏移减法可能是可行的。

    下面是我的寄存器值不带偏移,样品值不带偏移(我现在只显示ch0以使其更简单)

    下面是我在CH0_SCAL_OFFSET中将偏移值设置为0x3A0时得到的信息。  它看起来是在减去。

    作为一般问题,这是否有意义,对于某些基本的线性实验室用品,这种偏移是否有意义?  我不认为它与0V之间的距离不大?

    1.至于获取资料,一般人是否只是将这些价值的大部分平均起来?  

    2.噪音大。  我是否应该正确换档以去除一些较低的位?  

    3.您是否右移,直到您使用的ENOB与配置数据表中描述的相同?

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

    Robbie,

    感谢您做出这样的改变。 我仍然无法判断偏移是否正确。 偏移是负数,但比我预期的要大。 输出数据采用二进制补码记法。 如果我获取FEC05Eh的第一个输出数据,结果基本上是负13FA2h或-8.1826万d。

    我将CH0_SCAL_Gain设置为80万的原因是因为该值可缩放增益。 如果返回数据表第27页上的校准图,您可以看到它在输出数据中的作用。

    通常,如果输入满刻度输入(未校准的VIN),您首先会减去偏移量,然后缩放输出,以便满刻度输入产生7FFFFF的输出数据。 为此,增益值也将接近80万h。 80万h/800000h附近80万附近的SOE 1。 通过将此值更改为0万h,就像除以0一样,我不确定输出数据应该是什么样子。 从80万h开始,您名义上以1的增益开始以获取输出数据。

    吴若瑟

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


    好的,我现在可以看到您已让设备正常工作。 我将回答您上一篇文章中的一些答案。

    1.对许多结果求平均值并不罕见。 这取决于人们需要的噪音级别以及噪音的大小。 数据速率也可能需要一些调整,以确保不会产生线路噪音,因为在许多较低的数据速率下,数字滤波器可以处理它。

    2.我快速查看了你上一张照片的结果。 如果拿了一半的分数,就好像有大约70个代码的标准偏差。 如果您使用的是5V参考电压,则约为40uV。 我会将您的配置与数据表中的一些典型特性曲线进行比较,看看这是否是典型的。

    3. ENOB更像是RMS噪声的统计测量。 要获取ENOB,请使用数据表第65页上的公式17。

    希望这能解答您的问题。 祝您项目顺利。 如果您有任何其他问题,您可以添加到此帖子或启动另一个主题。


    吴若瑟
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是否应该找出ENOB并删除最不重要的位?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robbie,


    我真的不知道你在测量什么,所以要确定你想要做什么有点困难。 您可以确定ENOB并根据需要删除LSB。 但是,由于ENOB是RMS值的测量值,您可能对峰到峰值更感兴趣,因此测量中仍会有一些噪音。 要获得无噪音的东西,您可能必须将RMS值增加6倍(如果您将RMS值与标准偏差等同起来,则这将是平均值的3个标准偏差)。

    您也可以执行一些平均处理来减少噪音,看看是否可以显著降低噪音基底。 通常,使用n个样本,您可以将噪声降低√n 但是,通过将数据速率降低等量,您可能会做得更好。

    首先,我要验证噪音是否在给定操作的位置。 然后清除噪音源(如果有)。 之后,数据就会出现,您可以对其执行所需操作。


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

    好的,这很有意义。  我忘了提及我的设置。  我认为噪音方面现在是有意义的。

    我当前的设置是双输出电源,驱动两个输入(Vin+和Vin- of ch0)至2.00V,ADC_REF为5V。  我尝试通过采用正输入从2.00V到2.10V,以10mV (0.01V)为增量,同时将负输入VIN-保持在2.00V,来提高差分电压值。  当我以10mV递增时,我看到ADC翻转的输出从正反向反向,如下图所示。

    蓝色为稳定状态,两个输出大约为2.000V。  绿色表示我将VIN+增加10mV。  红色表示我将VIN+再增加10mV。

    我最初以为我遇到了噪音问题,但我有一些非常好的电源,我正在使用Fluke仪表校准为1mV来验证他们的电压输出。  在这个特定示例中,我不使用偏移校准值。

    为了完整起见,这些是寄存器值:

    当输入通过正态方式(即VIN+比VIN-高~20-30mV)验证为稳定和分离时,输出会发生怎样的变化。

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

    Robbie,


    如果不了解有关设置的更多信息,很难说出发生了什么错误。 您使用什么来生成这两种输入? 如果这是一种可变实验室用品,您使用的是哪种型号? 您是否分别测量两个输入? 还是测量差分电压? 您是否在ADC输入引脚处测量电压? 值得采取一些更大的步骤,看看是否还有其他问题。

    我把你的数据转换成电压,差异大约是10mV的步长。 但是,它们不是单音的,也不是连续的:

    数据(十六进制) 数据(十进制) 电压(mV)
    469 1129. 0.67
    47B 1147. 0.68
    3a7. 935. 0.56
    3F1 1009. 0.60
    3c3. 963 0.57
    32.0 992 0.59
    38D. 909. 0.54
    3a6. 934. 0.56
    3a3. 931个 0.55
    46A 1130 0.67
    3c2. 962 0.57
    3b8. 952. 0.57
    3a6. 934. 0.56
    3A1 929. 0.55
    3c8. 968 0.58
    3af 943 0.56
    D33. 3379 2.01
    490 f 1.8703万. 11.15
    47ab 1.8347万 10.94
    471. 1.8401万 10.97
    490 b 1.8699万 11.15
    48法 1.8682万. 11.14
    ff8a0c -3.0196万 -18.00
    ff88d6 -3.0506万. -18.18
    ff88b4. -3.054万 -18.20
    7114 2.8948万 17.25
    47d0 1.8384万 10.96
    47e3. 1.8403万. 10.97
    47c2. 1.837万 10.95
    4907 1.8695万 11.14
    ff843b -3.1685万 -18.89
    ff8a42. -3.0142万. -17.97
    ff8a57. -3.0121万. -17.95
    ff8988 -3.0328万 -18.08
    ff8a4f -3.0129万. -17.96
    ff8a20. -3.0176万 -17.99
    ff8259 -3.2167万 -19.17
    493A 1.8746万 11.17
    494 c 1.8764万 11.18
    492e 1.8734万 11.17
    4928. 1.8728万 11.16
    47ef 1.8415万 10.98
    4948. 1.876万 11.18

    吴若瑟

    数据(十六进制) 数据(十进制) 电压(mV)
    469 1129. 0.67
    47B 1147. 0.68
    3a7. 935. 0.56
    3F1 1009. 0.60
    3c3. 963 0.57
    32.0 992 0.59
    38D. 909. 0.54
    3a6. 934. 0.56
    3a3. 931个 0.55
    46A 1130 0.67
    3c2. 962 0.57
    3b8. 952. 0.57
    3a6. 934. 0.56
    3A1 929. 0.55
    3c8. 968 0.58
    3af 943 0.56
    D33. 3379 2.01
    490 f 1.8703万. 11.15
    47ab 1.8347万 10.94
    471. 1.8401万 10.97
    490 b 1.8699万 11.15
    48法 1.8682万. 11.14
    ff8a0c -3.0196万 -18.00
    ff88d6 -3.0506万. -18.18
    ff88b4. -3.054万 -18.20
    7114 2.8948万 17.25
    47d0 1.8384万 10.96
    47e3. 1.8403万. 10.97
    47c2. 1.837万 10.95
    4907 1.8695万 11.14
    ff843b -3.1685万 -18.89
    ff8a42. -3.0142万. -17.97
    ff8a57. -3.0121万. -17.95
    ff8988 -3.0328万 -18.08
    ff8a4f -3.0129万. -17.96
    ff8a20. -3.0176万 -17.99
    ff8259 -3.2167万 -19.17
    493A 1.8746万 11.17
    494 c 1.8764万 11.18
    492e 1.8734万 11.17
    4928. 1.8728万 11.16
    47ef 1.8415万 10.98
    4948. 1.876万 11.18
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在使用Rigol DP832电源来生成这两种输入。 它有两个可调节输出,因此我将每个输出连接到通道0输入。 我使用两个万用表分别测量实验室电源的输入电压。 我只是验证积极的投入基本上在增加。 感谢您绘制这些值。 本周我将努力使此部件恢复正常运行,如果您想知道什么,请告诉我! 再次感谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robbie,


    您似乎正在进行一些良好的测量。 使用实验室电源进行测量应该是可行的,但我一定要使用精密万用表测量输入,以校准您的结果。 通过10mV的变化,LMP9.01万应该能够轻松地分离差异。

    Rigol应具有足够低的波纹,以便基本测量应采用10mV步长。 同样,我仍会查看较大的台阶会发生什么情况。

    如果您有任何问题,请随时回复。 祝您好运!


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

    谢谢Joseph,

    我今天整天都在工作。  我想了解您对我当前数据的看法。  我在网上找到了一个来自TI的示例/演示视频,当将两条导线VIN-和VIN+ 连接在一起(例如通道0)时,该视频中读回的代码非常低,没有校准,甚至更低。  当我的VIN+和VIN- CH0短接在一起时(无论我让它们浮动还是将它们绑定到地面上,数字似乎都一样 ),我觉得我在设置中看到的代码很高。  下面是我看到的值。

    从理论上讲,我有这个工作,这是我的"工厂"偏移。  这似乎合理吗?  它是相同的基本设置,没有增益,没有缓冲区(内部缓冲区放大器),以1.6sps运行。  

    谢谢

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


    我不确定您显示的值。 如果假设平均值约为110h,则约为272D,即转换为160uV的偏移,假设参考电压为5V。

    如果这是预校准编号,则可能是高值,但可能不超出可能范围。 我只是对这个值通常是什么没有任何猜测。 如果这是校准后的数字,我会说有问题。

    通常,我会将输入短一些以获得偏移值,因此除非出现某种结算问题,否则我不会期望有任何错误。

    我还要指出,一旦增益和缓冲启用,偏移量可能会改变。 如果您打算使用任何额外的增益或缓冲区,我会为该设置运行校准。


    吴若瑟
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是当前的校准前编号。 我已将输入短接在一起,并且正在使用5V参考电压。

    根据我在数据表中的理解,您应该尝试在校准时将偏移值归零,然后应用增益。 是这样吗? 听起来,您建议我设置增益和缓冲区,然后尝试将偏移归零。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robbie,


    始终先设置偏移校准。 如果您首先设置增益校准,您将从偏移量滚动到增益校准中出现一个小错误。 即使进行了偏移校准后,您也可以消除偏移,但您将保留增益校准中原始偏移产生的错误。 这是少量的错误,但您可以避免它。

    通过先运行偏移校准,增益校准将从0偏移开始,然后您可以正确校准增益。


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

    我现在启动并运行了偏移归零功能,似乎工作正常。 现在这是在运作,它会产生一个我没有想到的问题。

    由于数字已签名,当我的偏移值为零时,我仍有一些噪音,导致数字在小正数和小负数之间跳动。 换言之,当我的应变计偏移归零时,我看到稳定状态下的数字波动如下:


    AFE CH1值:FFFFCE
    AFE通道1值:3F
    AFE CH1值:FFFFFD
    AFE通道1值:FFFFCC
    AFE CH1值:FFFFB7
    AFE通道1值:FFFFFD3
    AFE CH1值:FFFFFF88
    AFE通道1值:FFFFFFFDFF.
    AFE CH1值:FFFF71
    AFE通道1值:B
    AFE通道1值:FFFFFD0
    AFE通道1值:3A
    AFE通道1值:FFFFB3
    AFE CH1值:FFFFFB
    AFE CH1值:FFFF76
    AFE CH1值:FFFFF6
    AFE通道1值:FFFFE1
    AFE通道1值:35
    AFE CH1值:FFFFEF
    AFE通道1值:FFFFF2
    AFE CH1值:3c.
    AFE CH1值:FFFFBD
    AFE通道1值:1C
    AFE CH1值:2E
    AFE通道1值:FFFFE5
    AFE通道1值:1
    AFE通道1值:2B

    就像一个例子。 所以我在积极和消极之间摇摆。 现在,当我应用一个增益(比如128)时,这会使我的增益增加,因为我将该增益应用于负数(这会使负数大得多)和正数(这会使正数大得多)。

    如何处理这种情况? 我是这种数据采集的新手,没有看到这种设备可以处理此问题。 即使我的模拟端非常安静,噪音也很少,只要值/代码介于正和负之间,似乎就会存在此问题,并且要获得精确的0作为偏移是不可能的。

    您是否有任何指导/建议?

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


    我不知道如何回答这个问题。 无论测量结果如何,您都会听到一些噪音。 应用增益,您将始终获得增益。 真正的诀窍是尽可能降低噪音,同时最大化输入信号范围。 这是以较低的数据速率使用数据转换器,平均,简洁布局和低噪声基准的组合。

    就将设备置于增益状态并使输出代码处于正负两个位置而言,您可以截断输出代码,使噪声小于可见的最低有效位。 如果输入0,您将永远看不到负代码。


    吴若瑟