mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-17 05:15:25 +03:00
More MPU cleanups.
This commit is contained in:
parent
aac13914f9
commit
07d985ba5c
6 changed files with 19 additions and 35 deletions
|
@ -167,7 +167,7 @@ static void mpu6050FindRevision(void)
|
|||
// See https://android.googlesource.com/kernel/msm.git/+/eaf36994a3992b8f918c18e4f7411e8b2320a35f/drivers/misc/mpu6050/mldl_cfg.c
|
||||
|
||||
// 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);
|
||||
if (revision) {
|
||||
/* Congrats, these parts are better. */
|
||||
|
@ -179,7 +179,7 @@ static void mpu6050FindRevision(void)
|
|||
failureMode(FAILURE_ACC_INCOMPATIBLE);
|
||||
}
|
||||
} else {
|
||||
ack = i2cRead(MPU_ADDRESS, MPU_RA_PRODUCT_ID, 1, &productId);
|
||||
ack = mpuConfiguration.read(MPU_RA_PRODUCT_ID, 1, &productId);
|
||||
revision = productId & 0x0F;
|
||||
if (!revision) {
|
||||
failureMode(FAILURE_ACC_INCOMPATIBLE);
|
||||
|
|
|
@ -24,10 +24,12 @@
|
|||
#define MPU6500_RA_INT_ENABLE (0x38)
|
||||
#define MPU6500_RA_GYRO_XOUT_H (0x43)
|
||||
#define MPU6500_RA_SIGNAL_PATH_RST (0x68)
|
||||
#define MPU6500_RA_USER_CTRL (0x6A)
|
||||
#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_RA_XA_OFFS_H (0x77)
|
||||
|
||||
#define MPU6500_WHO_AM_I_CONST (0x70)
|
||||
|
||||
|
|
|
@ -15,24 +15,6 @@
|
|||
* 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
|
||||
|
||||
bool mpu6500SpiDetect(void);
|
||||
|
|
|
@ -111,7 +111,7 @@ const extiConfig_t *selectMPUIntExtiConfig(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef SPRACINGF3
|
||||
#if defined(SPRACINGF3)
|
||||
static const extiConfig_t spRacingF3MPUIntExtiConfig = {
|
||||
.gpioAHBPeripherals = RCC_AHBPeriph_GPIOC,
|
||||
.gpioPort = GPIOC,
|
||||
|
@ -240,14 +240,17 @@ bool detectGyro(void)
|
|||
|
||||
case GYRO_MPU6500:
|
||||
#ifdef USE_GYRO_MPU6500
|
||||
#ifdef USE_HARDWARE_REVISION_DETECTION
|
||||
spiBusInit();
|
||||
#ifdef USE_GYRO_SPI_MPU6500
|
||||
if (mpu6500GyroDetect(&gyro) || mpu6500SpiGyroDetect(&gyro))
|
||||
#else
|
||||
if (mpu6500GyroDetect(&gyro))
|
||||
#endif
|
||||
if (mpu6500GyroDetect(&gyro) || mpu6500SpiGyroDetect(&gyro)) {
|
||||
#ifdef GYRO_MPU6500_ALIGN
|
||||
{
|
||||
gyroHardware = GYRO_MPU6500;
|
||||
#ifdef GYRO_MPU6500_ALIGN
|
||||
gyroAlign = GYRO_MPU6500_ALIGN;
|
||||
#endif
|
||||
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
@ -368,7 +371,12 @@ retry:
|
|||
; // fallthrough
|
||||
case 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
|
||||
accAlign = ACC_MPU6500_ALIGN;
|
||||
#endif
|
||||
|
|
|
@ -51,7 +51,3 @@ void detectHardwareRevision(void)
|
|||
void updateHardwareRevision(void)
|
||||
{
|
||||
}
|
||||
|
||||
void spiBusInit(void)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "drivers/bus_spi.h"
|
||||
#include "drivers/sensor.h"
|
||||
#include "drivers/accgyro.h"
|
||||
#include "drivers/accgyro_spi_mpu6500.h"
|
||||
#include "drivers/accgyro_mpu6500.h"
|
||||
|
||||
#include "hardware_revision.h"
|
||||
|
||||
|
@ -101,7 +101,3 @@ void updateHardwareRevision(void)
|
|||
hardwareRevision = NAZE32_SP;
|
||||
#endif
|
||||
}
|
||||
|
||||
void spiBusInit(void)
|
||||
{
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue