I'm feeding the ADIS16505 SYNC pin with a 1Hz PPS signal from a GNSS receiver and the IMU is configured in scaled sync mode with UP_SCALE = 2000.
I'm receiving data continuously from the IMU at 400Hz in burst mode successfully, however the DIAG_STAT flags sporadically report 0x8000 (clock error). When this occurs it seems to be sticky for a period of several seconds, i.e. there will be a long period of time in which this error is reported continuously, followed by an extended period of time where the error disappears. In a period of 15 minutes I recorded 215000 clock errors @ 400 Hz output sample rate = approximately 60% of burst transfers reported this error flag.
The datasheet suggestion to "adjust the frequency of the clock signal on the SYNC pin to operate within the appropriate range" is useless in this situation as the timing of the PPS signal is out of my control. Is the meaning intended here to instead make an adjustment to the UP_SCALE register?
This seems to be a fairly common problem across a number of different ADI IMUs when configured for external sync mode with a 1 Hz external clock. Here are some similar posts I found, none of which had a satisfactory resolution that actually got to the root of the issue.
ADIS16467 Clock Error in Scaled Sync mode
ADIS16465 Reading buffer data is abnormal in scaled sync mode
Is the datasheet wrong in stating that a 1Hz external clock is a supported configuration?
I have confirmed the PPS signal has consistent timing (measured in an edge capture interrupt by a microcontroller running off an 8MHz 30ppm oscillator / 216MHz core clock).
PPS period - mean 999983 us, sd 1 us, min 999971 us, max 999994 us
I've also confirmed the PPS waveform meets the requirements of the ADIS - it is a 1ms low pulse idling high at 3.3V otherwise, and the waveform is clean.
The DRDY signal coming out of the IMU looks good as well (400Hz 32-bit burst format, 5:1 decimation)
DRDY period - mean 2500 us, sd 3 us, min 2263 us, max 2530 us
What can I do to resolve this issue?
* As an aside - does a burst read automatically clear the error flags? The behaviour observed here suggests that is the case but it isn't explicitly stated in the datasheet.



