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
/* Set internal clock source and Sleep mode */
send[0] = MPU6050_RA_PWR_MGMT_1; /* Power management register 1*/
send[1] = 0b00000001; /* X gyro as PLL reference, sleep disabled */
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
/* Set Gyro range */
send[0] = MPU6050_RA_GYRO_CONFIG; /* Gyro configuration register */
send[1] = 0b00011000; /* range = +-2000 deg/s */
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
/* Set Accelerometer range */
send[0] = MPU6050_RA_ACCEL_CONFIG; /* Accel configuration register */
send[1] = 0b00011000; /* range = +-16g */
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
/* Set Digital Low-Pass Filter */
send[0] = MPU6050_RA_CONFIG; /* Configuration register */
send[1] = 0b00000010; /* DLP level = 2 -> DLP cutoff = ~95Hz*/
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
/* Set Sample Rate */
send[0] = MPU6050_RA_SMPLRT_DIV; /* Sample rate register */
send[1] = 4; /* Sample at 200Hz -> 1kHz / (1 + SMPLRT) -> SMPLRT = 4 */
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
/* Set interrupt pin config */
send[0] = MPU6050_RA_INT_PIN_CFG; /* Interrupt pin register */
send[1] = 0b00010000; /* INT active high, push-pull, 50us pulse, any read clears interrupt */
I2C_MasterTransferData(I2C2, &Setup, I2C_TRANSFER_POLLING);
/* Set interrupts */
send[0] = MPU6050_RA_INT_ENABLE; /* Interrupt enable register */
send[1] = 0x01; /* Data ready interrupt */
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