mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-17 21:35:44 +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
|
// 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);
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -51,7 +51,3 @@ void detectHardwareRevision(void)
|
||||||
void updateHardwareRevision(void)
|
void updateHardwareRevision(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void spiBusInit(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -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)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue