My project need measure 12 channels signal，I use 3 AD7177-2，and 4 channels for each AD7177-2. These 3 AD7177-2 share a same 16Mhz clock,share a SPI BUS, and CS signals connect different GPIOs. I configure AD7177-2 to 200Hz sample rate, thus 50Hz for each channel, in the timer interrupt function( interval is 1.6667ms), three AD7177-2 's CS signal take turns to set LOW to read one data. The DOUT/RDY signal is configured as EXIT function, when DOUT/RDY go LOW, read one date from the selected AD7177-2,then set the selected AD7177-2's CS to HIGH .
My problem is one or more AD7177-2 occasionally stop generating DOUT/RDY signal, so i can not read data in the EXIT function.
I tyied another way, in the timer interrupt function( interval is 0.8 ms),I read AD7177-2's state register to check if the RDY bit ==0. If RDY==0, Then set AD7177-2 's CS to LOW to read one data, and in the EXIT function, read one date from the selected AD7177-2. The problem is I offen get 5~6 same data， and the data is not continuous，which have Steps,but the input signal is SINE signal.
Please help me how can I read 12 channels's data correctly?