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.

ADS 1148 channel switching problem

Other Parts Discussed in Thread: ADS1148

Hi,

I am developing a converter that uses ADS1148 and 7 RTD's (PT 1000 to be exact). I've managed to do all the needed configuration of the ADS1148 and it is working without any problems. But now I tried to read AD conversion result of all 7 channels and that is causing me problems. First I do the initialization in my program (set the MUX0,1 SYS, IDAC and so on) and read the value of the first channel, and it gives me an accurate result. After reading the first channel i try to switch to next channel but it isn't working. I'm writing only to MUX0 and IDAC1 to change the input and the current generator output. But it's not working. I use 10 SPS and I'm waiting 100ms before and after i try to change the channel. If I try to read the second channel it still reads the value of the first one.

Can you help

  • HI Primoz,

    Welcome to the forum! How are you trying to retrieve the data (are you using RDATAC or SDATAC and reading by command RDATA)?  Have you verified that the write register has completed as desired?  You should be able to measure this externally. 

    One other recommendation is to switch the IDAC routing first and then change the MUX0 setting. Changing the MUX0 register first will add a degree of error to the measurement as the actual measurement begins at this point and there will be no current flowing through the RTD to be measured.

    Best regards,

    Bob B

  • Hi again,

    I'm issuing a SDATAC command during my ADS initialization routine, after that I'm using RDATA command to read the result of the conversion. 

    Is there a way to test if my write command was successful other than using the READ register command after the write. Could I use a Amper meter to test if IDAC output change was successful ?

    I'll change the order of my write commands, so that I will write in IDAC first and see what happens.

    Are there any timing requirements that I'm not fulfilling. I've calculated the delay I must wait after switching the IDAC output so that everything settles, also the Data sheet states that after changing to the desired channel a delay of 100ms in in order (using 20SPS).

    Thanks for your help.

  • Hello,

    I made a mistake in my previous post, I'm using data convert rate of 10 SPS not 20.

    Thanks again.

  • Hi Primoz,

    I would just use a volt meter to measure across the RTD to see if the voltage has changed to the newly selected MUX/IDAC selection.  You could measure the current as well, but as the current will produce a voltage you can just measure the voltage across the RTD.

    Best regards,

    Bob B

  • Hi,

    I'll try your idea with the volt meter as I go back to work tomorow. Do you have any comment or advice about the timing. 

    I really appreciate all your help.

  • Hi Primoz,

    The conversion will start as soon as the digital filter is reset and this takes place as soon as the MUX0 register has been written (relative to the falling edge of the last SCLK of the WREG command).  The timing for the conversion to complete will be based on a specific number of clock cycles shown in Table 12 of the datasheet.  The actual time will depend on the clock frequency.  When using the internal oscillator, the time can vary +/- 5% of the time shown in Table 12.  To be safest, you should add another 5%  to the time (105ms) or slightly longer when using the timer method.  Use of an interrupt driven system for DRDY is the best method for ensuring valid data, followed by DRDY polling and then timed methods.

    Best regards,

    Bob B