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.

[参考译文] ADS112C04:Vref 监控失败

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1526036/ads112c04-vref-monitoring-fails

部件号:ADS112C04

工具/软件:

尊敬的 TI 论坛:

我正在尝试根据 SBAA483 为 4 线 Pt1000 输入级建立断线检查。

器件已经正常测量、除了此检查外、所有操作都正常运行。  

此电路为:

代码如下:

bool ADS112C04_checkWireBreak(void)
{
    uint16_t VREF_MON;
    // REG0 = 11000001: VREF Monitor, Gain 1, PGA Bypass
    ADS112C04_writeRegister(CMD_WREG0, 0xC1);
    // REG1 = 11010000: 2000 SPS, SingleShot, Internal Ref., No Tempsens.
    ADS112C04_writeRegister(CMD_WREG1, 0xD0);
    // REG2 = 00001100: No Counter, No CRC, No Burnout-Dect, IDAC 250 µA
    ADS112C04_writeRegister(CMD_WREG2, 0x0C);
    // REG3 = 10000000: IDAC1 on AIN3, IDAC2 off
    ADS112C04_writeRegister(CMD_WREG3, 0x80);
    // Check current path
    if (!ADS112C04_measure()) return (STATUS_FAIL);
    __delay_cycles(4640); // 580 µs
    if (!ADS112C04_receive()) return (STATUS_FAIL);
    ((unsigned char *)&VREF_MON)[1] = ADS112C04_RxBuf[0];
    ((unsigned char *)&VREF_MON)[0] = ADS112C04_RxBuf[1];
    if (VREF_MON < VREF_THRESHOLD) return (STATUS_FAIL);
    // Check pos. voltage path
    // REG3 = 00100000: IDAC1 on AIN0, IDAC2 off
    ADS112C04_writeRegister(CMD_WREG3, 0x20);
    if (!ADS112C04_measure()) return (STATUS_FAIL);
    __delay_cycles(4640); // 580 µs
    //delay_us(580);
    if (!ADS112C04_receive()) return (STATUS_FAIL);
    ((unsigned char *)&VREF_MON)[1] = ADS112C04_RxBuf[0];
    ((unsigned char *)&VREF_MON)[0] = ADS112C04_RxBuf[1];
    if (VREF_MON < VREF_THRESHOLD) return (STATUS_FAIL);
    // Check neg. voltage path
    // REG3 = 01000000: IDAC1 on AIN1, IDAC2 off
    ADS112C04_writeRegister(CMD_WREG3, 0x40);
    if (!ADS112C04_measure()) return (STATUS_FAIL);
    __delay_cycles(4640); // 580 µs
    if (!ADS112C04_receive()) return (STATUS_FAIL);
    ((unsigned char *)&VREF_MON)[1] = ADS112C04_RxBuf[0];
    ((unsigned char *)&VREF_MON)[0] = ADS112C04_RxBuf[1];
    if (VREF_MON < VREF_THRESHOLD) return (STATUS_FAIL);

    return (STATUS_SUCCESS);
}

此代码触发的所有 3 次测量都会返回一个大约 16,000 增量的值、甚至是如此

如果 RTD 已断开一段时间并且所有电容器都已放电。

我在做什么?  

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

    您好、 Holger、

    当您说“如果 RTD 已断开一段时间“时、您是指所有 4 个导联都已断开?

    BR、

    Dale

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

    我发现错误。 我意外打开了烧毁电流源。

    它现在可以正常工作。 谢谢你