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.

ADS7038: How to start/stop conversion in on-the-fly mode to interleave GPIO writes

Part Number: ADS7038

Hi,

I have a very similar question as to that raised in this thread "Compiler: Manual and On-the-fly mode operations" There Art Kay said "1. Regarding your objective to " from time to time send a refresh command for the digital outputs". For Manual, and on-the-fly mode SDI is used to select the channel ID. For the Auto-sequence mode SDI is set low and not used. So, regardless of the mode you choose, you will need to stop converting and do a register write (24 bit write) to the GPO value register."

My question is how do you stop and start the ADC conversion in on-the-fly mode so that a register read/write can be performed?  I'm unclear of what registers need to be written to stop on-the-fly mode before I can read/write to the GPIO registers, or can I just do a register read/write to GPIO and that will automatically stop on-the-fly mode?

Thanks

Simon

  • Hi Simon,

    Are you going to be changing the GPIO configuration on a regular basis?  It would be easiest to use the ADS7038 in manual mode in that case.

  • Hi,

    Yes potentially changing the GPIO regularly.  We have looked at manual mode and it takes longer to perform and has added latency, we are looking for the most efficient use of the SPI bus to get multiple ADCs, GPIO read and write in the shortest time to allow for multiple devices on the bus.

    On-the-fly mode may take less time on the SPI bus, depending on how it's stopped after the required ADC channels are read.  This part seems missing in the documentation however, the other post I referred to said that you need to stop the ADCs before doing GPIO read/writes.  Our sequence each frame will be something like read ADC 1,2,3,4, Read GPIO, Write GPIO.

    Thanks

  • Let me look into the timing a little and see what the impact might be.

  • Hi Simon,

    The GPIO read/write functions would be the same thing as what is described in sections 8.3.12.2.1 and 8.3.12.2.2.   You would need to be in Manual mode to read the GPIO's and then you could potentially write to the sequence register to get back to On-the-Fly mode while you are reading the last GPIO register (the SEQ_MODE = 10b from Figure 35).  Once you have your ADC data, go back to manual mode with a 24-bit write as you are receiving you last ADC channel data packet (Data AINy from Figure 25, the SDI would be the SEQ_MODE = 00b write in the last frame).

  • Hi Tom,

    Thanks for that information, it was the stopping on the fly using the SEQ_MODE = 00b that wasn't clear to us.

    Simon