I have a circuit with four AD7190s. We read at 24bit accuracy as frequently as the chips allows. Each set of four reads must be absolutely synchronized. We read at full resolution (24bit) from AIN3 and use a common sync pin connected to all four ADCs SYNC pins to ensure the readings are in sync. We have this working using the internal clock. To improve synchronization further we want all four ADCs to use the same external clock signal from a 4.91MHz square wave generator supplied to their MCLK2 pins. The results we get from this external clock are not as expected. Rather than simply tightening up on synchronization it appears that using the external clock affects the ADC Read values.
Results using internal clock. (Mode register 0x80061)
Reading Reading / Volts
1V 1,015,291 1,015,291
2V 2,039,035 1,019,518
3V 3,062,847 1,020,949
4V 4,087,029 1,021,757
(Average per volt value = 1,019,379 )
The above shows a reasonably linear relationship.
Using external clock signal on MCLK2 . (Mode register set to 0x40060, actual 0x40061)
1V 876,317 876,317
2V 1,902,749 951,375
3V 2,928,701 976,234
4V 3,955,095 988,774
(Average per volt value = 948,175)
Using the external clock signal changed the results and now they are not just different but they are not linear.
(Internal clock register values)
(External clock signal on MCLK2 register values)
Set MODE_REG: 0x40060
Please can you see if we have something set wrong or could you improve the way we are doing this. What we need is 24bit accuracy. We are continually reading 4 separate voltage sources ;( X sensor, Y sensor, Z sensor and reference sensor). It is critical that we take all 4 readings at exactly the same time. Any lack of synchronization results in big errors.
The external clock signal used is a 4.91MHz ,5V, square wave,see attached. The square wave is actually a square the slight ripples are down to probe termination rather than a real feature of the square wave. The circuit diagram for the Square wave generator is also attached.