kriswiner/MPU9250

Self test Gyro and Accel is fail

Closed this issue · 6 comments

Hi, Kris.

I bought IC MPU9250 30 pieces,
I soldered them into the board,
Оnly 5 chips passed the self test. Mainly gyroscope test is failed, but accel test sometimes is fail too.
Result of test:
1.
Compass = 0x71 // whoami
Accel test: 2.113, -5.867, 6.430 // x, y, z respectively
Gyro test: 35.538, -1.239, -3.729 // x, y, z respectively
2.
Compass = 0x71
Accel test: 3.196, -1.056, 4.287
Gyro test: 54.333, 7.460, 0.413
3.
Compass = 0x71
Accel test: 10.754, -1.104, 0.790
Gyro test: 46.511, 1.630, -2.275
4.
Compass = 0x71
Accel test: -90.022, -92.128, -90.965
Gyro test: 64.147, 38.558, -11.374
5.
Compass = 0x71
Accel test: 16.004, 52.897, 63.220
Gyro test: 912.197, 17.676, -96.470
6.
Compass = 0x71
Accel test: 9.040, 3.397, -1.560
Gyro test: 85.267, 9.598, -99.190

Soldering temperature did not exceed 270 degrees Celsius.
My init algorithm is:
` resetMPU9250(); // Reset registers to default in preparation for device calibration
Delay_us(20000);

MPU9250SelfTest(selfTestResult);
printf("Accel test: %.3f, %.3f, %.3f\r\n", selfTestResult[0], selfTestResult[1], selfTestResult[2]);
printf("Gyro test: %.3f, %.3f, %.3f\r\n", selfTestResult[3], selfTestResult[4], selfTestResult[5]);

Delay_us(20000);
calibrateMPU9250(NULL, NULL);
Delay_us(3000);
initMPU9250(); 
Delay_us(20000);
res = initAK8963(magCalibration);`

What is the problem, any considering?

Thank you for your answer.

My selftest function was copyed from this project:

void MPU9250::calibrateMPU9250(uint8_t MPUnum, float * dest1, float * dest2)

I worry about the self test results because this have direct correlation with bechaviour of MPU9250.
If gyroscope test is fail i have slow change yaw at fast rotate of device.
if accelerometer test is fail then i have errors yaw at tilt of device.

this is my error.

that is selftest function what i use.

void MPU9250::SelfTest(uint8_t MPUnum, float * destination) // Should return percent deviation from factory trim values, +/- 14 or less deviation is a pass

Thank, Kris.

This is bad ICs,
I think my issue can be close.