We are experiencing an issue with the X gyroscope during burst mode reads on the ADIS16405. It seems to occur only when the X offset register has a negative value. In this scenario, the MSB of the 14-bit XGYRO_OUT register is not set for negative numbers, so they are interpreted as large positive values. We’ve attempted to isolate the issue using the following sequence of commands while the device was stationary on a lab bench:
Factory reset device (write 0xBE02)
Confirm the offset values are 0
Perform a precision calibration (write 0xBE10)
Read offset values (write 0x1A00, 0x1C00, 0x1E00), values were 0xFFC8, 0xFFC8, 0x0030
Read the gyro output registers (write 0x0400, 0x0600, 0x0800), values were 0x8002, 0x8000, 0x8000
Read registers again, values were 0xBFF9, 0x8009, 0xBFFD
Perform a burst read (write 0x3E00), gyro values were 0x8000, 0x8006, 0xBFF7
Perform a burst read again, values were 0x9FF8, 0xBFC6, 0x806B
It seems that the value 0x9FF8 should have been 0xBFF8.
The incorrect XGYRO_OUT values only begin occurring after a burst mode read has been completed. It doesn’t seem to matter if the last read is done as a burst or if the registers are read individually. All subsequent negative X values have the same problem, but the Y and Z values are fine. We are using 5 IMUs right now and this issue occurred on 3 of them. The other 2 devices had positive offset values. As an experiment, we wrote a negative value to the offset register of one of the working devices, and were able to reproduce the problem, so it appears to affect all units.
Does anyone know what is happening here?
It only takes one bit to change from 0xBFF8 to 0x9FF8, which we have never seen. Some of the tests for products in this family have involved taking >5,000,000 points of data, without a single recorded data error. Have you had a chance to look at the SPI signals, to see if there is any evidence of glitches, noise, ringing, or partial pulses on the SCLK line? Any noise peaks on the CS line, when it is during the Burst read?
Thanks for the reply.
I believe there was an initial attempt to verify the data signal, but we'll try to verify all the SPI signals.
I just wanted to let you know that we have been able to observe similar behavior on a unit in our lab and are working on a firmware update to address this behavior for future material. Once the firmware update is ready, we can support updating your ADIS16405 unit at the factory, but that would likely take at least 2 weeks and there are no options for upgrading firmware yourself. It might be easier to implement the bias correction function, inside of your firmware instead. I look forward to your response.
Good to know. We will implement the bias correction ourselves for now then.
I am using the ADIS16460 and have the same problems.
Even when I do a factory reset and leave the gyro offset registers empty (X_GYRO_OFF = Y_GYRO_OFF = Z_GYRO_OFF = 0x0000), the readings from the x axis are heavily distorted. Here you see a plot of the gyroscope output at 25 Hz, blue: x-axis, red: y-axis, yellow: z-axis
I am using the IMU as reference sensor for a research project and therefore i really have to rely on the measurements.
Can you help me solving this problem?