Part Number: ADS112C04
Tool/software:
Dear TI forum,
I'm trying to establish a wire break check for a 4-wire Pt1000 input stage according to SBAA483.
The device ist already measuring properly and everything is working fine except for this check.
This is the circuit:
This is the code:
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);
}
All the 3 measurements that this code triggers return a value of around 16,000 increments, even
if he RTD has been disconnected for a while and all the capacitors are dischharged.
What am I doing wrong?