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.

CCS/TDC1000-TDC7200EVM: RTD1 and RTD2 calculation

Part Number: TDC1000-TDC7200EVM

Tool/software: Code Composer Studio

Hello,

I am trying to sample and convert both RTD1 and RTD2 temperature values with the following code (tdc7200_calculation.c):

void print_start2stopn(void)

{

     if ((start2stop[2]-start2stop[1]) < 20000){ // If (stop2 to stop3 (ns) < 20000), use (stop2 to stop4 (ns)). Else: use (stop2 to stop3 (ns)) in RTD1 calculation.

          rtd1 = 0.26*((start2stop[0]*1000.0/(start2stop[3]-start2stop[1]))-1000.0); // 0.26 is PT1000 conversion factor
          // (rtd2 problem here)
      }
      else{
          rtd1 = 0.26*((start2stop[0]*1000.0/(start2stop[2]-start2stop[1]))-1000.0);
}
      rtd2 = 0.26*((start2stop[0]*1000.0/(start2stop[4]-start2stop[3]))-1000.0);

      sprintf((char *)outString, "A%.6fsB%.6f\n",rtd1,rtd2); // output rtd1 and rtd2 temp. values
      putsUART((unsigned char *)outString,strlen((char *)outString));
}

RTD1 values are perfectly working. However when the if-statement is true, the rtd2 value gets totally wrong (usually ~80°C instead of ~20°C). How can I correctly calculate the RTD2 value?

Thanks in advance!

Regards,
Thibault

  • Hi Thibault,

    This is a known issue with the RTD measurement described here: www.ti.com/.../snaa230.pdf

    Basically it is impossible to read both RTD1 and RTD2 in a single measurement. The RTD1 measurement can be done as shown in the code, and this even takes into account the short pulses from the application note above.

    However, to measure RTD2 a second measurement must be taken with the first 3 stops masked. Once the first three stops are masked, the rtd2 value can be calculated using the same tref (START to STOP1 or start2stop[0] in the code) from the first measurement, and the rtd2 will be either start2stop[3]- start2stop[1] or start2stop[2] - start2stop[1] depending on whether the short pulse is detected or not.

    Regards,