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.

[参考译文] ADS1220 μ 采集到的温度数据不正常

Guru**** 2394305 points
Other Parts Discussed in Thread: ADS1220

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/609836/ads1220

主题中讨论的其他器件:ADS1220

CJCcode = calc_CJC (MMC);
//将 ADS1220配置为首次热电偶1测量
SETUP_ADS1220 (ADS1220_MUX_AIN3_AIN2、ADS1220_OP_MODE_NORMAL、//ADS1220_OP_MODE_Turbo Äںˡ¤¼ÓËÙ
ADS1220_conversion 单次触发、ADS1220_data_rate _20SPS、ADS1220_gain_32、ADS1220_use_PGA、
ADS1220_IDAC1_AIN2、ADS1220_IDAC2_AIN3、ADS1220_IDAC_CURRENT_250_UA、ADS1220_VREF_EXT_REF0_Pins、ADS1220_TEMP_SENSOR_OFF);
DELAY_TEMP_(5);
ReadConversionData = 0;
ADS1220_Start ();
while (!ReadConversionData);
ADS1220_GET_TC_Conversion_Data_calibrated (&ADS1220TCdata);
//将 ADS1220配置为第二次斩波热电偶1测量
SETUP_ADS1220 (ADS1220_MUX_AIN2_AIN3、ADS1220_OP_MODE_NORMAL、
ADS1220_conversion 单次触发、ADS1220_data_rate _20SPS、ADS1220_gain_32、ADS1220_use_PGA、
ADS1220_IDAC1_AIN2、ADS1220_IDAC2_AIN3、ADS1220_IDAC_CURRENT_250_UA、ADS1220_VREF_EXT_REF0_Pins、ADS1220_TEMP_SENSOR_OFF);
TCtemperature2 = ADS1220TCdata/2;
DELAY_temp (5);//
ReadConversionData = 0;
ADS1220_Start ();
while (!ReadConversionData);
ADS1220_GET_TC_Conversion_Data_calibrated (&ADS1220TCdata);

ADS1220TCdata = ADS1220TCdata/2;
TCtemperature2 = ADS1220TCdata;
TCtemperature2 += CJCcode;//CJC
TCtemperature2 =内插 TCTemperatureValue (TCtemperature2);

这是读取ads1220的代码,现在将热电偶放在沸水中温度只上升十几度 μ A

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

    您好、user4590050、

    您似乎没有从热电偶测量中获得预期的温度值。  您正在进行大量计算、但我在每个步骤之间看不到实际数据。  您能否向我发送一些数据进行比较?

    我认为、最好简化方法、而不是添加所有计算和斩波、而是通过电压来验证您的 TC 是否以正确的电压测量进行响应。  我看到您正在打开 IDAC、目标是什么?  您如何测量冷端?  您使用的基准电压值是多少?  根据 ADS1220器件设置、您可能会尝试测量 RTD、但代码似乎是 TC。  您可以将原理图发送给我吗?

    此致、

    Bob B

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

    Bob,ö m、您好

        Schemature.SCHEMATIC1_ 04 ADS1220.pdf

      ,当我关闭 IDAC 时,我发现数据 增加了,当我 将热电偶放入沸水中 时 、温度增加了大约82C。  我 认为 它可能会增加约95C。  

      

    这是我将 热电偶放入 沸水中。时的波形

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

    Bob、您好!

          这是我的测试代码;   

           

    CJCcode = calc_CJC (MMC); //来自 ADT7420的 MMC 数据  

    /*----------------- AIN0 AIN1---- *

    //将 ADS1220配置为首次热电偶1测量
    SETUP_ADS1220 (ADS1220_MUX_AIN0_AIN1、ADS1220_OP_MODE_NORMAL、
    ADS1220_conversion 单次触发、ADS1220_data_rate _90SPS、ADS1220_gain_32、ADS1220_use_PGA、
    ADS1220_IDAC1_DISABLED、ADS1220_IDAC2_DISABLED、ADS1220_IDAC_CURRENT_OFF、ADS1220_VREF_EXT_REF0_Pins、ADS1220_TEMP_SENSOR_OFF);
    DELAY_temp (5);//
    ReadConversionData = 0;
    ADS1220_Start ();
    while (!ReadConversionData);
    ADS1220_GET_TC_Conversion_Data_calibrated (&ADS1220TCdata);

    SETUP_ADS1220 (ADS1220_MUX_AIN1_AIN0、ADS1220_OP_MODE_NORMAL、
    ADS1220_conversion 单次触发、ADS1220_data_rate _90SPS、ADS1220_gain_32、ADS1220_use_PGA、
    ADS1220_IDAC1_DISABLED、ADS1220_IDAC2_DISABLED、ADS1220_IDAC_CURRENT_OFF、ADS1220_VREF_EXT_REF0_Pins、ADS1220_TEMP_SENSOR_OFF);

    TCtemperature1 =-ADS1220TCdata;
    DELAY_temp (5);//
    ReadConversionData = 0;
    ADS1220_Start ();
    while (!ReadConversionData);
    ADS1220_GET_TC_Conversion_Data_calibrated (&ADS1220TCdata);
    TCtemperature1 =(ADS1220TCDATA+TCtemperature1)/2;
    TCtemperature1 += CJCcode;//CJC
    TCtemperature1 =内插 TCTemperatureValue (TCtemperature1);//获取温度并转换为毫度 C  

    /*----------------- AIN2 AIN3 -------------------------- *
    SETUP_ADS1220 (ADS1220_MUX_AIN2_AIN3、ADS1220_OP_MODE_NORMAL、
    ADS1220_conversion 单次触发、ADS1220_data_rate _90SPS、ADS1220_gain_32、ADS1220_use_PGA、
    ADS1220_IDAC1_DISABLED、ADS1220_IDAC2_DISABLED、ADS1220_IDAC_CURRENT_OFF、ADS1220_VREF_EXT_REF0_Pins、ADS1220_TEMP_SENSOR_OFF);
    DELAY_temp (5);//
    ReadConversionData = 0;
    ADS1220_Start ();
    while (!ReadConversionData);
    ADS1220_GET_TC_Conversion_Data_calibrated (&ADS1220TCdata);

    SETUP_ADS1220 (ADS1220_MUX_AIN3_AIN2、ADS1220_OP_MODE_NORMAL、
    ADS1220_conversion 单次触发、ADS1220_data_rate _90SPS、ADS1220_gain_32、ADS1220_use_PGA、
    ADS1220_IDAC1_DISABLED、ADS1220_IDAC2_DISABLED、ADS1220_IDAC_CURRENT_OFF、ADS1220_VREF_EXT_REF0_Pins、ADS1220_TEMP_SENSOR_OFF);

    TCtemperature2 =-ADS1220TCdata;
    DELAY_temp (5);//
    ReadConversionData = 0;
    ADS1220_Start ();
    while (!ReadConversionData);
    ADS1220_GET_TC_Conversion_Data_calibrated (&ADS1220TCdata);
    TCtemperature2 =(ADS1220TCDATA+TCtemperature2)/2;
    TCtemperature2 += CJCcode;//CJC
    TCtemperature2 =内插 TCTemperatureValue (TCtemperature2);//获取温度并转换为毫度 C

                 

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

    您好!

    原理图中存在许多潜在问题。  我将从 左上角开始讨论、沿着原理图右移动。  我相信您正在尝试使用 单向 TVS 二极管创建双向 TVS 二极管堆栈。  我不能很好地理解为什么您希望将电流驱动到电源中或将其传递回 传感器。  D5 和 D4的连接应类似于 D8和 D9  、以便瞬变接地。

    您不需要 R44。  这 会产生不必要的分压器。  尽管 R44有助于建立共模、但通过 R43和 R54连接时的 TC 也是如此。  

    连接 C67、C72、D6和 D7对我来说毫无意义。  我认为这是为了提供额外的瞬态保护。  通常您需要 D6和 D7的引脚2进入供应 iso_3.3V。  我不确定 C67和 C72是否用作低通滤波器、但该连接仅提供非线性输出并导致漂移误差。  我将完全删除 C67和 C72。

    电路重复出现、因此其他输入也应进行校正。  我认为最大的问题是肖特基二极管 D6和 D7、因此我会先将它们移除、看看这是否能纠正您看到的温度差异。

    此致、

    Bob B