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.

ADS1220: Internal Temperature Sensor register set time

Part Number: ADS1220

Hi, I am using the ADS1220 to get some readings, with a differential input coming in on AN1 and AN2 and another input on AN0. I am also reading the internal temperature sensor of the ADS1220. My issue arises in that after setting TS = 1, my analogue read function is getting a value that is from the previous state, as if the TS bit = 0. This only happens rarely so it is harder to diagnose exactly what the issue is. A solution that I have tried to fix this with is to read the control register 1 to make sure that the bit has changed, and waiting until it has if it hasn't (while spi_adc.xfer2([0x24, 0x00])[1]  != whatitshouldbe:). My question is, why doesn't this solution work (I'm still getting the old value even though TS is supposedly = 1) and if there is a better way that I should be doing this.

  • Hi Jordan,

    Welcome to the forum! How are you determining when the conversion has completed?  Are you monitoring DRDY?  Are you running in continuous conversion mode or single-shot mode?  What are your other register settings?

    It sounds like you might be concerned about communication.  Do you have any scope or logic analyzer shots of your communication?  Have you tried issuing the START/SYNC command after changing the register value to see if that helps?

    Best regards,

    Bob B

  • Thanks Bob, sending the START/SYNC command seems to be working.

    Thanks, Jordan.