ADIS16460 Gyroscope x-axis output problem

Dear support,

i have a problem with my ADIS16460 IMU. The ouput of the gyroscope x axis is wrong in terms of jumping between two discrete values if using bias correction register.

The problem is very similar to https://ez.analog.com/mems/f/q-a/81805/x-gyro-output-error-on-adis16405, where I also reported it.

In the following you will find the answers to the questions the support (NevadaMark) asked me:

1. Is the misbehaving axis responsive to movement?

yes, imu was calibrated on a centrifugal test stand

2. Are the other two axes responding to rotation appropriately, with the correct scale?

yes, imu was calibrated on a centrifugal test stand

3. Are all 3 acceleroemeters responding gravity in an appropriate manner? 

yes, imu was calibrated on a multipose test stand

4. Is the data ready pulsing and the correct frequency?

yes, 2048 sps, checked with oscilloscope

5. Are you using any internal fitlering? 

just the average/decimation filter due to lower sampling rate (26 Hz). no bartlett window fir filter

6. Can you share the data from the plot? 

plot and raw data are attached

The following steps were taken to reproduce the error:

  • Test #1 : Factory reset

     data[0] = 0xBE;
     data[1] = 0x02;
     imu_read_bytes_sequence(2, &data[0]);
     hal_delay_us(20);

-> No Error, sampling rate 2048 Hz

  • Test #2 : Set Gyro Calibration Register

adis16460_set_offset_calibration(GYRO_OFFSET_X, 50.0/1000);
adis16460_set_offset_calibration(GYRO_OFFSET_Y, 10.0/1000);
adis16460_set_offset_calibration(GYRO_OFFSET_Z, -200.0/1000);

-> Error on gyro x axis as shown in plot and raw data "cal.csv"

  • Test #3 : Reset Gyro Calibration Register

    // Offset calibration
    adis16460_set_offset_calibration(GYRO_OFFSET_X, 0/1000);
    adis16460_set_offset_calibration(GYRO_OFFSET_Y, 0/1000);
    adis16460_set_offset_calibration(GYRO_OFFSET_Z, 0/1000);

    -> Error on gyro x axis occures only once

  • Test #4 : Set Gyro Calibration Register

    adis16460_set_offset_calibration(GYRO_OFFSET_X, 50.0/1000);
    adis16460_set_offset_calibration(GYRO_OFFSET_Y, 10.0/1000);
    adis16460_set_offset_calibration(GYRO_OFFSET_Z, -200.0/1000);


    -> Error behavior on gyro x axis appears again

See https://ruhr-uni-bochum.sciebo.de/s/XhkJaolZZLGxRGh for raw measurements and source code of the function adis16460_set_offset_calibration.

Best regards,

Eike



Link to cloud
[edited by: egrub at 9:53 AM (GMT 0) on 23 Jan 2020]