iam interfacing two AD7194 adc's to a single microcontroller using spi interface. And i use the same chip select pin from the microcontroller to select the two adc's using a MUX. And the steps for reading the data from the adc includes
1)intializing the spi interface ( microcontroller as master).
2) providing the address bits to mux to provide CS to first adc
3) Resetting the first adc by writing 1 for 40 clock cycles and setting the mode register
4) providing the address bits to mux to provide CS to second adc
5 Resetting the second adc by writing 1 for 40 clock cycles and setting the mode register
6 )After that continuously sets the configuration register to corresponding channel and reads data from the data register from both adc's using a while loop
But in this case for the first time both adc's will provide the correct readings.After that the configuration register values of all the channels in first adc will get read as 0xffffff and the data register value will become same as reference voltage.The second adc will continue to read the values correctly.
If i include the function for resetting the adc inside while loop before setting mode,config registers, the channels of both the adc's reads correctly.
Is it required to reset the adc each time before reading data register??why the data getting corrupted without resetting the adc each time?