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.

TDC1000-TDC7200EVM: RTD2 masking period

Part Number: TDC1000-TDC7200EVM

Hi! 

I am trying to get the RTD2 measurement code to work but I can't get any correct results. RTD1 is working as expected. (using PT1000).

My algorithm:

During tdc_trigger_measure() :

        if (measure_RTD1) { // RTD1 

            TI_TDC7200_SPIByteWriteReg(0x08u, 0); // reset mask

            TI_TDC7200_SPIByteWriteReg(0x09u, 0);

        }else{ // RTD2

            uint16_t stopMaskClk = mask_period/125; //using 8mhz clock

            printf("time: %f, mask:%d\n", mask_period, stopMaskClk);

            TI_TDC7200_SPIByteWriteReg(0x08u, stopMaskClk >> 8);

            TI_TDC7200_SPIByteWriteReg(0x09u, stopMaskClk);

        }

Then to calculate RTD1 and 2 in tdc7200_calc() :

        float rtd;

if (measure_RTD1) tref=start2stop[0]; // always use RTD1 tref

        // ---- RTDx measurement ----

        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.

            rtd = 0.259*((tref*1000.0/(start2stop[3]-start2stop[1]))-1000.0); // 0.259 is PT1000 conversion factor

        }

        else{

            rtd = 0.259*((tref*1000.0/(start2stop[2]-start2stop[1]))-1000.0);

        }

        if (measure_RTD1){

            rtd1=rtd;

            mask_period = start2stop[2]; // save masking period for first 3 stops

            measure_RTD1=0;

        }

        else {

            rtd2=rtd;

            measure_RTD1=1;

        }

        printf("RTD1:%.6f, RTD2:%.6f\n ",rtd1,rtd2); // output rtd temp. values

Output:

RTD1:21.936523, RTD2:-inf

The stopMaskClk gets to approx. 2990. 

I am using the TDC1000-TDC7200EVM and the demo code provided by you. 

Thanks in advance! 

Best regards,
Thibault