1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-17 13:25:30 +03:00

More MPU cleanups.

This commit is contained in:
Dominic Clifton 2015-09-23 01:02:39 +01:00
parent aac13914f9
commit 07d985ba5c
6 changed files with 19 additions and 35 deletions

View file

@ -167,7 +167,7 @@ static void mpu6050FindRevision(void)
// See https://android.googlesource.com/kernel/msm.git/+/eaf36994a3992b8f918c18e4f7411e8b2320a35f/drivers/misc/mpu6050/mldl_cfg.c // See https://android.googlesource.com/kernel/msm.git/+/eaf36994a3992b8f918c18e4f7411e8b2320a35f/drivers/misc/mpu6050/mldl_cfg.c
// determine product ID and accel revision // determine product ID and accel revision
ack = i2cRead(MPU_ADDRESS, MPU_RA_XA_OFFS_H, 6, readBuffer); ack = mpuConfiguration.read(MPU_RA_XA_OFFS_H, 6, readBuffer);
revision = ((readBuffer[5] & 0x01) << 2) | ((readBuffer[3] & 0x01) << 1) | (readBuffer[1] & 0x01); revision = ((readBuffer[5] & 0x01) << 2) | ((readBuffer[3] & 0x01) << 1) | (readBuffer[1] & 0x01);
if (revision) { if (revision) {
/* Congrats, these parts are better. */ /* Congrats, these parts are better. */
@ -179,7 +179,7 @@ static void mpu6050FindRevision(void)
failureMode(FAILURE_ACC_INCOMPATIBLE); failureMode(FAILURE_ACC_INCOMPATIBLE);
} }
} else { } else {
ack = i2cRead(MPU_ADDRESS, MPU_RA_PRODUCT_ID, 1, &productId); ack = mpuConfiguration.read(MPU_RA_PRODUCT_ID, 1, &productId);
revision = productId & 0x0F; revision = productId & 0x0F;
if (!revision) { if (!revision) {
failureMode(FAILURE_ACC_INCOMPATIBLE); failureMode(FAILURE_ACC_INCOMPATIBLE);

View file

@ -24,10 +24,12 @@
#define MPU6500_RA_INT_ENABLE (0x38) #define MPU6500_RA_INT_ENABLE (0x38)
#define MPU6500_RA_GYRO_XOUT_H (0x43) #define MPU6500_RA_GYRO_XOUT_H (0x43)
#define MPU6500_RA_SIGNAL_PATH_RST (0x68) #define MPU6500_RA_SIGNAL_PATH_RST (0x68)
#define MPU6500_RA_USER_CTRL (0x6A)
#define MPU6500_RA_PWR_MGMT_1 (0x6B) #define MPU6500_RA_PWR_MGMT_1 (0x6B)
#define MPU6500_RA_BANK_SEL (0x6D) #define MPU6500_RA_BANK_SEL (0x6D)
#define MPU6500_RA_MEM_RW (0x6F) #define MPU6500_RA_MEM_RW (0x6F)
#define MPU6500_RA_WHOAMI (0x75) #define MPU6500_RA_WHOAMI (0x75)
#define MPU6500_RA_XA_OFFS_H (0x77)
#define MPU6500_WHO_AM_I_CONST (0x70) #define MPU6500_WHO_AM_I_CONST (0x70)

View file

@ -15,24 +15,6 @@
* along with Cleanflight. If not, see <http://www.gnu.org/licenses/>. * along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
*/ */
#define MPU6500_RA_RATE_DIV (0x19)
#define MPU6500_RA_LPF (0x1A)
#define MPU6500_RA_GYRO_CFG (0x1B)
#define MPU6500_RA_ACCEL_CFG (0x1C)
#define MPU6500_RA_ACCEL_XOUT_H (0x3B)
#define MPU6500_RA_INT_PIN_CFG (0x37)
#define MPU6500_RA_INT_ENABLE (0x38)
#define MPU6500_RA_GYRO_XOUT_H (0x43)
#define MPU6500_RA_SIGNAL_PATH_RST (0x68)
#define MPU6500_RA_PWR_MGMT_1 (0x6B)
#define MPU6500_RA_BANK_SEL (0x6D)
#define MPU6500_RA_MEM_RW (0x6F)
#define MPU6500_RA_WHOAMI (0x75)
#define MPU6500_WHO_AM_I_CONST (0x70)
#define MPU6500_BIT_RESET (0x80)
#pragma once #pragma once
bool mpu6500SpiDetect(void); bool mpu6500SpiDetect(void);

View file

@ -111,7 +111,7 @@ const extiConfig_t *selectMPUIntExtiConfig(void)
} }
#endif #endif
#ifdef SPRACINGF3 #if defined(SPRACINGF3)
static const extiConfig_t spRacingF3MPUIntExtiConfig = { static const extiConfig_t spRacingF3MPUIntExtiConfig = {
.gpioAHBPeripherals = RCC_AHBPeriph_GPIOC, .gpioAHBPeripherals = RCC_AHBPeriph_GPIOC,
.gpioPort = GPIOC, .gpioPort = GPIOC,
@ -240,14 +240,17 @@ bool detectGyro(void)
case GYRO_MPU6500: case GYRO_MPU6500:
#ifdef USE_GYRO_MPU6500 #ifdef USE_GYRO_MPU6500
#ifdef USE_HARDWARE_REVISION_DETECTION #ifdef USE_GYRO_SPI_MPU6500
spiBusInit(); if (mpu6500GyroDetect(&gyro) || mpu6500SpiGyroDetect(&gyro))
#else
if (mpu6500GyroDetect(&gyro))
#endif #endif
if (mpu6500GyroDetect(&gyro) || mpu6500SpiGyroDetect(&gyro)) { {
#ifdef GYRO_MPU6500_ALIGN
gyroHardware = GYRO_MPU6500; gyroHardware = GYRO_MPU6500;
#ifdef GYRO_MPU6500_ALIGN
gyroAlign = GYRO_MPU6500_ALIGN; gyroAlign = GYRO_MPU6500_ALIGN;
#endif #endif
break; break;
} }
#endif #endif
@ -368,7 +371,12 @@ retry:
; // fallthrough ; // fallthrough
case ACC_MPU6500: case ACC_MPU6500:
#ifdef USE_ACC_MPU6500 #ifdef USE_ACC_MPU6500
if (mpu6500AccDetect(&acc) || mpu6500SpiAccDetect(&acc)) { #ifdef USE_ACC_SPI_MPU6500
if (mpu6500AccDetect(&acc) || mpu6500SpiAccDetect(&acc))
#else
if (mpu6500AccDetect(&acc))
#endif
{
#ifdef ACC_MPU6500_ALIGN #ifdef ACC_MPU6500_ALIGN
accAlign = ACC_MPU6500_ALIGN; accAlign = ACC_MPU6500_ALIGN;
#endif #endif

View file

@ -51,7 +51,3 @@ void detectHardwareRevision(void)
void updateHardwareRevision(void) void updateHardwareRevision(void)
{ {
} }
void spiBusInit(void)
{
}

View file

@ -27,7 +27,7 @@
#include "drivers/bus_spi.h" #include "drivers/bus_spi.h"
#include "drivers/sensor.h" #include "drivers/sensor.h"
#include "drivers/accgyro.h" #include "drivers/accgyro.h"
#include "drivers/accgyro_spi_mpu6500.h" #include "drivers/accgyro_mpu6500.h"
#include "hardware_revision.h" #include "hardware_revision.h"
@ -101,7 +101,3 @@ void updateHardwareRevision(void)
hardwareRevision = NAZE32_SP; hardwareRevision = NAZE32_SP;
#endif #endif
} }
void spiBusInit(void)
{
}