Hi everyone, I am trying to use AD7173-8 in an application where 3 channels are to be used and I am a little confused about that.
What I want to do is to have a consistent way of reading all enabled channels of the ADC. The datasheet says about the DOUT/~RDY pin that goes low to indicate that a conversion has been completed. Up to now, when hooking a 'scope to check logic levels on the SPI lines, I cannot see DOUT/~RDY going low right after an SPI transaction; it remains high and then it goes Hi-Z (green trace is ~CS, yellow trace is DOUT/~RDY):
Has anyone a suggestion to move forward? What exactly should I have to do to switch channels fast enough without losing data?
1. In continuous conversion mode, the ADC converts continuously and when /CS is low the DOUT/RDY pin goes low each time a conversion is complete. So it is really important to monitor the DOUT/RDY pin or the /RDY bit in the status register and start reading the conversion as soon as it goes low. The /RDY pin is reset high when a read operation is complete and remains high until the next conversion is complete.
2. Yes, sufficient number of SCLKs must be provided and the SCLK rate must be fast enough so that a read is completed before the next conversion result and to avoid losing data.
3. When several channels are enabled, the ADC automatically sequences and performs conversion through the enabled channels. But then again, the DOUT/RDY pin pulses low each time the conversion is complete. So, just like the thread that you have mentioned you can monitor the DOUT/RDY pin and use it as an interrupt to the microcontroller to read a conversion result.