Nu har jag krigat länge med MPU6050n och skulle behöva lite hjälp!
Jag har hållit på att bara testa och se så att allt data som kommer ut ur den ser vettigt ut och med dessa inställningar:
Kod: Markera allt
send[0] = MPU6050_RA_PWR_MGMT_1;
send[1] = 0b00000001;
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
send[0] = MPU6050_RA_GYRO_CONFIG;
send[1] = 0b00011000;
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
send[0] = MPU6050_RA_ACCEL_CONFIG;
send[1] = 0b00011000;
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
send[0] = MPU6050_RA_CONFIG;
send[1] = 0b00000010;
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
send[0] = MPU6050_RA_SMPLRT_DIV;
send[1] = 4;
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
send[0] = MPU6050_RA_INT_PIN_CFG;
send[1] = 0b00010000;
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
send[0] = MPU6050_RA_INT_ENABLE;
send[1] = 0x01;
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
Jag har då +- 16g (2048LSB/g) som känslighet på accelerometern men om jag bara lägger den på bordet så får jag ett absolutbelopp av ca 1024 (|a| = sqrt(x^2 + y^2 + z^2)), dvs 0.5g.
Förstår någon varför jag får detta? Med 2048LSB/g så borde absolutbeloppet vara ca 2048.
Samma gäller alla inställningar av acceleration, det blir x LSB/g genom 2 som jag får ut när den bara ligger stilla och jag tror inte vi har halv acceleration i Sverige.
Tankar, idéer, tips om varför det blir såhär?
Register Map:
http://invensense.com/mems/gyro/documen ... -6000A.pdf