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.

[参考译文] TLA2024:我得到了负值、再次确认读取结果寄存器和转换的方式。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1430965/tla2024-i-got-the-negative-value-double-confirm-the-way-of-read-the-result-register-and-conversion

器件型号:TLA2024

工具与软件:

尊敬的专家:

我读取结果寄存器以进行1000次电流测量。 我发现我得到了负值(单位:V)、但它不应该像这样。

 

这是我们的引脚定义原理图。

我需要您在配置寄存器中双确认我的参数写入和我的转换。

我们的硬件成员使用示波器来查看  AIN1 GND、 它显示该值几乎保持在3.3V、很少降至-100mV、但绝不会显示负值低于-1V。

AIN1 GND 作为一个要讨论的示例。  根据数据表、顺序为(1)写入配置、(2)等待(3)读取结果:

 

准备写入的值为0xD383 (1101 0011 1000 0011)、我使用 Linux cmd
# i2cset -y 3 0x48 0x01 0xD3 0x83 I

我 还更改了字节顺序、如  # i2cset -y 3 0x48 0x01 0x83 0xD3  I 、但它也会得到负值。

 下面是详细信息:

操作系统: 1:启动单次转换(处于断电状态时)

多路复用: 101:AINP=AIN1和 AINN=GND

PGA:  001:FSR =±4.096V (1)

模式: 1:单冲转换模式或断电状态

Rd: 100:DR = 1600 SPS (默认值)

2.等待一秒钟。

3. 然后,我从结果寄存器得到了结果值: 0xb001 执行命令

# i2cget -y 3 0x48 0x00 w

4. 根据数据表、结果超过0x7FF0、我不操作、结果变为0x4FFE、然后保留更高的3个字节、我得到0x4FF

5. 最后一步,将分辨率2 mV 乘以0x4FF = 2*1279mV = 2558mV ,因此电压差为–2.558V

我的示例中是否有任何错误的转换步骤或参数? 谢谢。

此致、

Tony Liu

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

    尊敬的 Tony:

    我会在周四之前查看并与您联系。

    此致、

    天使

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

    嗨、Angel、  

    我期待您的反馈,谢谢。

    此致、

    Tony Liu

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

    尊敬的 Tony:

    Unknown 说:
    4.  根据数据表、结果大于0x7FF0、我不操作则取其、结果变为0x4FFE、然后保留更高的3个字节、我得到0x4FF[/QUOT]

    我不太确定您在此步骤中正在做什么。

    您是否能够提供何时从 ADC 读取数据的逻辑分析仪捕获? 这将有助于阐明您从 ADC 接收到的实际二进制值是什么、并确认它是否与应用于输入引脚的值相对应。

    此致、

    天使

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

    嗨、Angel、

    Unknown 说:
    3.  然后、我从结果寄存器中得到了结果值: 0xb001 使用 cmd

    因为我从 ADC 获得的值、它超过了7FF0、 不应该将0xB001转换为负值?

    [报价 userid="556660" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1430965/tla2024-i-got-the-negative-value-double-confirm-the-way-of-read-the-result-register-and-conversion/5492548 #5492548"]您能提供何时从 ADC 读取数据的逻辑分析仪捕捉吗?

    我将寻求我们硬件团队的支持。

    您是否认为我从 ADC 获得的字节顺序值错误或整个值错误?

    谢谢你。

    此致、

    Tony Liu

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

    嗨、Angel、

    以防我进行错误的转换。 您能否提供通过以下配置从 ADC 获取值0xb001的转换过程?

    [报价 userid="547632" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1430965/tla2024-i-got-the-negative-value-double-confirm-the-way-of-read-the-result-register-and-conversion "]

     下面是详细信息:

    操作系统: 1:启动单次转换(处于断电状态时)

    多路复用: 101:AINP=AIN1和 AINN=GND

    PGA:  001:FSR =±4.096V (1)

    模式: 1:单冲转换模式或断电状态

    Rd: 100:DR = 1600 SPS (默认值

    [报价]

    谢谢你。

    此致、

    Tony Liu

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

    嗨、Angel、

    我是另一位与 Tony 合作开发的工程师、我想补充和确认一些信息。
    我们需要​​从 TLA2024的四个通道(AIN0~3)读取电流检测值。

    1.我想向您确认我所读的方法和地址是否正确?

    请参阅文档表7。 配置寄存器字段说明:

    操作系统:1.
    多路复用器:100
    (100:AINP = AIN0、AINN = GND
    101:AINP = AIN1和 AINN = GND
    110:AINP = AIN2、AINN = GND
    111:AINP = AIN3、AINN = GND)
    PGA:001 (默认值)
    模式:1
    DR:100 (默认值)
    保留:03h=00011 (默认值)

    因此、读取四个通道的地址如下:
    AIN0 = 0xC583
    AIN1 = 0xD583
    AIN2 = 0xE583
    AIN3 = 0xF583

    要进行读取、我使用 i2c Linux 工具:


    写入地址:
    i2cset -y 3 0x48 0x01 0xC5 0x83 I


    读取地址值:
    i2cget -y 3 0x48 0x00 w

    如果 I 读取的值是0xc029。 根据文档、这是一个12位寄存器、所以我取了读值的前12位(0xc029)、并在其中产生0xc29。

    是这样吗?

    2.如果我读取到一个介于0x8000到0xFFF0之间的值、我应该如何转换它?

    上述方法是否正确? 如果有任何错误、请告诉我。
    谢谢!

    此致、
    Andrea Chen

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

    安德烈、您好!

    我将在下周早些时候详细了解一下这一过程。

    与此同时、在读取转换数据时、您能否提供 I2C 通信线路的逻辑分析仪捕获、以帮助验证是否正确捕获了来自 ADC 的数据?

    此致、

    天使

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

    嗨、Angel、

    这是  I2C 通信线路的逻辑分析仪捕获。  检查 I2C 信号、并将示波器值与读取到的值进行比较。 值均为0xd017。 设置命令和参数: # i2cset -y 3 0x48 0x01 0xF3 0x83 I

    根据值0xd017、它已经溢出。 我们还在示波器上测量了我们的电路板上的 AIN3电压、结果表明最小值为0.3V、最大值为3.88V。

     

    那么、我想问一下、读取0x900e 后该如何计算该值?

    此致、

    Tony Liu

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

    尊敬的吕伟强:

    数据表中的下表详细显示了如何在输入信号电压和输出数字值之间进行转换:

    我认为来自 ADC 的数据解释不正确。

    对于初学者、由于 TLA2024是一个12位 ADC、因此在进行转换读取时应保留最后四位数据(值0)、当您声称收到0x900E 时、情况并非如此:

    示波器捕获是缩小的、如果没有真正更详细地捕获数字通信事务、则很难解释正在发生的情况。

    此致、

    天使

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

    嗨、Angel、

    您对读取 ADC 的价值有什么建议吗? 是这样吗?
    期待您的回复。

    谢谢!

    此致、
    Andrea Chen

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

    嗨、Angel、  

    抱歉、0x900e 是我的回复中的旧内容、我已更新回复、将0x900e 替换为0xd017、但漏掉了更新最后一句话。

    数据表中的下表详细显示了如何在输入信号电压和输出数字值之间进行转换:

    但它显示输出值变为负值、与我们设计和通过示波器测量的值不匹配。 这就是我们需要您确认转换的原因。 你在我的第一次答复中确认我的转换吗?

    我认为来自 ADC 的数据解释不正确。

    所以我们需要您的支持、到目前为止没有任何进展或删除了错误。 我想我们已经验证了 i2cget 中的值、该值与 ADC 结果寄存器中的值相匹配、我对吗?

    [报价 userid="556660" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1430965/tla2024-i-got-the-negative-value-double-confirm-the-way-of-read-the-result-register-and-conversion/5501849 #5501849"]对于初学者、由于 TLA2024是一款12位 ADC、在执行转换读数时应保留最后四位数据(值为0)、但当您声称收到的数据是0x900E:[/quota][quotauserid="547632" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1430965/tla2024-i-got-the-negative-value-double-confirm-the-way-of-read-the-result-register-and-conversion/5495125 5495125]时则并非如此]

    [报价]

     示波器的解码器 和 i2cget 提供的值相同、即最后四个位在我们进行转换之前不是值0。 或者、你可以指出我们错了哪些步骤?

    示波器捕获缩小了、如果不能真正更详细地捕获您的数字通信交易、就很难解读正在发生的事情。

    您想放大这六个位置吗?

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

    嗨、Angel、  

     示波器的解码器 和 i2cget 提供的值相同、即最后四个位在我们进行转换之前不是值0。 或者、你可以指出我们错了哪些步骤?

    === 或者在这种情况下、您是否意味着该值应该是17d0?

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

    尊敬的 Tony Liu:

    是的、必须放大捕获的6个位置、以验证器件实际上在 I2C 线路上发送的内容。

    FSR 设置为+/-4.096V 时、ADC 读数0x17D0对应于输入引脚上0.762V 的电压读数。

    每个模拟输入引脚上施加的实际信号是什么?使用的多路复用器配置设置是什么?

    此致、

    天使

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

    嗨、Angel、

       谢谢、我将再次寻求我们的硬件团队支持、我们将在下周早些时候提供。

    [报价 userid="556660" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1430965/tla2024-i-got-the-negative-value-double-confirm-the-way-of-read-the-result-register-and-conversion/5504035 #5504035"] ADC 读数0x17D0及 FSR 设置为+/-4.096V 时、输入引脚处的电压读数将对应于0.762V。

    这些正数的转换非常清楚。  如果 FSR 设置为4.096标度电平的 ADC 读数为0xD7D0、则输入引脚的电压值是多少?

    向每个模拟输入引脚施加的实际信号是什么以及使用的多路复用器配置设置是什么?

    这就是您要查找的配置。 我再次引用这句话。

    [报价 userid="547632" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1430965/tla2024-i-got-the-negative-value-double-confirm-the-way-of-read-the-result-register-and-conversion/5495125 #5495125"]

    嗨、Angel、

    这是  I2C 通信线路的逻辑分析仪捕获。  检查 I2C 信号、并将示波器值与读取到的值进行比较。 值均为0xd017。 设置命令和参数: # i2cset -y 3 0x48 0x01 0xF3 0x83 I

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

    尊敬的 Tony Liu:

    是的、请提供 I2C 通信的更详细的捕获。

    这些正数的转换非常清楚。  如果 FSR 设置为4.096标度电平的 ADC 读数为0xD7D0、则输入引脚的电压值是多少?[/QUOT]

    0xD7D0会在输入端对应-1.286V 的电压。

    这是您要查找的配置。 我再次引用。[/报价]

    对施加的输入信号有什么影响?

    此致、

    天使

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

    嗨、Angel、

    这里是  I2C 通信的放大捕获图。

    0xD7D0在输入端对应-1.286V 的电压。

    如何计算得出-1.286V? 我的计算结果是-1.284V。 您能否列出您的操作?

    关于要应用的输入信号的注解在哪里?

    此致、

    Tony Liu

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

    尊敬的 Tony Liu:

    安琪尔今天不在办公室,我们将在未来1-2天回复您

    感谢您的耐心

    -Bryan

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

    尊敬的 Tony Liu:

    感谢您提供放大的 I2C 采集、我将详细了解这些数据并在明天回复您。

    此致、

    天使

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

    尊敬的 Toni Liu:

    我介绍了您的 I2C 捕获、

    I2C 通信看起来是正确的。

    第一个字节为0x90、这是器件地址和写入位。

    第二个字节为0x00、这是指向转换寄存器的指针。

    第三个字节是0x91、即器件地址和读取位。

    第四个字节是数据 MS 字节、即0x45

    第五个字节是数据 LS 字节、即0xA0。

    因此、转换寄存器数据为0x45A0 (最后四位应始终为零、也就是这里)。

    满量程设置为+/-4.096V 时、1LSB 对应于2mV。

    ADC 转换结果(十六进制) 0x45A 对应于十进制1114。

    1114 * 2mV = 2.228V

    从 I2C 捕获显示的转换结果0x45A0对应于2.228V。

    此致、

    天使