Hi all,
I have been asked to review a board that uses the ADS1256, and I don't understand how it can even be working. The ADC runs on with an 8MHz clock, the ADC registers are not changed from their defaults, and their conversion sequence goes like this:
Send STANDBY command and wait. When it's time to do a conversion:
Send 0x51, 0x00, 0x28 (Configure MUX register so Vin = AIN2-AINCOM)
...wait for DRDY to go low...
Send 0x01 and read out 3 bytes (the conversion result)
*** while reading the middle byte of the conversion result, DRDY goes high for about 4 SPI clock cycles in the middle of the byte, then goes back low ***
Send STANDBY command and again wait until it's time to do another conversion.
So, my questions:
1. It appears the ADC is waking up from standby by writing to the MUX register. I thought the proper way to wake it up was using the WAKEUP command, so why does this work and are there any side effects of doing this?
2. I really don't like the DRDY line going high while reading the conversion result -- doesn't this mean the ADC is updating the conversion result? Specially puzzling is the fact it only goes up for about 3us, then goes low again until it finishes shifting out the 3 bytes, so this is too fast the for ADC to perform another conversion during the short pulse.
So, before I suggest they need to completely change their conversion sequence to comply with the datasheet recommendation, is there something I missed in the datasheet where this sequence would yield valid data? (we are getting what appears to be valid data)
Thanks!
Fabiola