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.

[参考译文] ADS112U04:从数字代码转换为温度

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/883008/ads112u04-converting-from-digital-codes-to-temperature

器件型号:ADS112U04

我想将数字代码(来自 ADS112的数据)转换为温度。 我已经在数据表中完成了第8.3.10节"温度传感器"、但这一点有点令人困惑。

例如、我从芯片接收55 AA (LSB 优先)数据、然后实际数据将为 AA55。  由于只有14个 MSB 相关、相关数据将为2A95 (右移 AA55 2个位置)。

2A95 = 0010 1010 1001 0101 (MSB 为0、因此+ve 温度)

将其转换为温度可得出(2A95h = 10901 * 0.03125) 340.65625°C、这看起来是无效(超出范围)温度。

那么、来自芯片的数据是否无效、或者我在转换中犯了任何错误? 如果是、您能否用相同的示例解释转换?

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

    您好 Heli、

    我在以下帖子中回答了同一个问题:

    https://e2e.ti.com/support/data-converters/f/73/p/881515/3263233#3263233

    您的计算正确、但如果您接收的数据为0xAA55、则返回的值不正确。  这是您真正获得的价值还是假设的数字?  是否确定您看到的转换结果来自内部温度传感器?  我建议使用 RDATA 命令、您是否尝试过此操作?  最后、这听起来像是代码或配置的过程问题。

    启用内部温度传感器时、如果在单次模式下运行、则必须发出 START/SYNC 命令。  如果在连续转换模式下运行、则需要确保在尝试读取结果之前等待转换完成。

    此致、

    Bob B

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

    很抱歉再次发布相同的问题。 当您回复上一篇帖子时、我没有收到任何通知、因此我再次询问了。

    无论如何、我使用的数据是我从 ADC 读取的数据、而不是假设性数字。 我有另一组看起来正确的数据。 但有时我仍会获得无效数据。 我在单次转换模式下以手动模式读取数据(发送0x55、0x08以开始转换、然后发送0x55、0x10以每次读取数据)。  我已按如下方式配置寄存器:

       ADS112_WRITE_reg (0、0x00); // AINp = AIN0、AINn = AIN1、增益= 1、PGA 打开
       ADS112_WRITE_reg (1、0x01); // DR = 20、单 模式、内部基准、温度传感器模式
       ADS112_WRITE_reg (2、0x00); //数据计数器禁用、CRC 禁用、烧毁禁用、IDAC 关闭
       ADS112_WRITE_reg (3、0x00); // IDAC 禁用、手动模式
       ADS112_WRITE_reg (4、0x00); // GPIO 输入未使用

    其中 ADS112_write_reg (char reg、char data)通过 UART 将 pData[]={SYNC、CMD_WREG|(reg<1)、data}发送到芯片。

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

    您好 Heli、

    如果您有时获得正确的数据、而不是其他数据、则可能是通信出现问题、或者在发出 START 命令后等待足够长的时间来启动内部温度传感器转换。  在发送 START 命令之前、您需要确保数据已完全传输到寄存器写入、以启用温度传感器、然后必须等待转换完全完成、然后再尝试读取结果。

    此致、

    Bob B

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

    谢谢。

    解决了。 直到 DRDY 转换为低电平、并在 sendig 启动通信后立即向 ADS 发送 RDATA 命令。