I have been successfully using my ADIS-16480 by triggering my ADIS readings with the ADIS' DIO2 pin. When the DIO2 pin transitions to a high state, it triggers an interrupt into my microcontroller, that reads the newly updated ADIS registers.
While this approach ensures that I read all ADIS information (never missing any registers' update), it has some minor drawbacks, since the handling of interrupts determines some occasional data loss in other serial communications received/transmitted by the microcontroller. In order to avoid this problem I have been looking for alternative solutions for reading the ADIS' registers and still being sure not to loose any data.
One possibility I was evaluating would consist in reading ADIS' registers with a rate slightly higher than the AIDS registers' update rate. In this way, however, I would need a method that tells me if the ADIS registers being read contain "old" or newly updated information. For example, the SYS_E_FLAG contains a bit that sets to1 when new magnetic information are available and the whole register resets to zero once it is read. If I were to read magnetic information only, reading the SYS_E_FLAG register with an appropriate rate would therefore to tell me if the magnetic data contained in the registers are "old" or "new". This, however, would work only for magnetic data. Is there any other register that works similarly and provides any information regarding data "freshness" ?
An other approach would be reading a register that updates very quickly (such as a LOW word register of a gyroscope) and see if it's equal to the previously read value. This method, however, doesn't give a real certainty that data are actually new...
I would very much appreciate any suggestion: thank you very much for any recommendation you might provide !!!