From f49763bf4a6cd8b2a47abfbec7ef3d8c8c029b8f Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 13 Oct 2018 09:43:25 -0700 Subject: [PATCH] altos/easymega-v2.0: Add adxl375, replace mpu6000 with 9250 [v2] Should reflect current hardware design now. v2: Use SPI mode 3 for ADXL375 Invert ADXL375 values Signed-off-by: Keith Packard --- src/easymega-v2.0/Makefile | 22 ++------------- src/easymega-v2.0/ao_easymega.c | 23 ++++------------ src/easymega-v2.0/ao_pins.h | 49 ++++++++++++++++----------------- 3 files changed, 33 insertions(+), 61 deletions(-) diff --git a/src/easymega-v2.0/Makefile b/src/easymega-v2.0/Makefile index ece4e9bb..bfe8a849 100644 --- a/src/easymega-v2.0/Makefile +++ b/src/easymega-v2.0/Makefile @@ -19,15 +19,14 @@ INC = \ ao_product.h \ ao_ms5607.h \ ao_mpu9250.h \ + ao_adxl375.h \ ao_profile.h \ ao_task.h \ ao_whiten.h \ ao_sample_profile.h \ ao_quaternion.h \ - math.h \ ao_mpu.h \ stm32l.h \ - math.h \ Makefile # @@ -44,21 +43,6 @@ INC = \ #STACK_GUARD=ao_mpu_stm.c #STACK_GUARD_DEF=-DHAS_STACK_GUARD=1 -MATH_SRC=\ - ef_acos.c \ - ef_sqrt.c \ - ef_rem_pio2.c \ - kf_cos.c \ - kf_sin.c \ - kf_rem_pio2.c \ - sf_copysign.c \ - sf_cos.c \ - sf_fabs.c \ - sf_floor.c \ - sf_scalbn.c \ - sf_sin.c \ - ef_log.c - ALTOS_SRC = \ ao_boot_chain.c \ ao_interrupt.c \ @@ -67,7 +51,7 @@ ALTOS_SRC = \ ao_cmd.c \ ao_config.c \ ao_task.c \ - ao_led.c \ + ao_led_stm.c \ ao_stdio.c \ ao_panic.c \ ao_timer.c \ @@ -79,6 +63,7 @@ ALTOS_SRC = \ ao_data.c \ ao_ms5607.c \ ao_mpu9250.c \ + ao_adxl375.c \ ao_adc_stm.c \ ao_beep_stm.c \ ao_eeprom_stm.c \ @@ -97,7 +82,6 @@ ALTOS_SRC = \ ao_flight.c \ ao_companion.c \ ao_pyro.c \ - $(MATH_SRC) \ $(PROFILE) \ $(SAMPLE_PROFILE) \ $(STACK_GUARD) diff --git a/src/easymega-v2.0/ao_easymega.c b/src/easymega-v2.0/ao_easymega.c index 9848c367..bb2e7cfd 100644 --- a/src/easymega-v2.0/ao_easymega.c +++ b/src/easymega-v2.0/ao_easymega.c @@ -17,9 +17,9 @@ */ #include -#include -#include -#include +#include +#include +#include #include #include #include @@ -43,7 +43,7 @@ main(void) #endif ao_task_init(); - ao_led_init(LEDS_AVAILABLE); + ao_led_init(); ao_led_on(LEDS_AVAILABLE); ao_timer_init(); @@ -53,23 +53,12 @@ main(void) ao_exti_init(); ao_adc_init(); -#if HAS_BEEP ao_beep_init(); -#endif ao_cmd_init(); -#if HAS_MS5607 ao_ms5607_init(); -#endif -#if HAS_HMC5883 - ao_hmc5883_init(); -#endif -#if HAS_MPU6000 - ao_mpu6000_init(); -#endif -#if HAS_MMA655X - ao_mma655x_init(); -#endif + ao_mpu9250_init(); + ao_adxl375_init(); ao_eeprom_init(); ao_storage_init(); diff --git a/src/easymega-v2.0/ao_pins.h b/src/easymega-v2.0/ao_pins.h index 508c043c..6217b5d2 100644 --- a/src/easymega-v2.0/ao_pins.h +++ b/src/easymega-v2.0/ao_pins.h @@ -25,8 +25,8 @@ #define AO_HSE 16000000 /* PLLVCO = 96MHz (so that USB will work) */ -#define AO_PLLMUL 12 -#define AO_RCC_CFGR_PLLMUL (STM_RCC_CFGR_PLLMUL_12) +#define AO_PLLMUL 6 +#define AO_RCC_CFGR_PLLMUL (STM_RCC_CFGR_PLLMUL_6) /* SYSCLK = 32MHz (no need to go faster than CPU) */ #define AO_PLLDIV 3 @@ -89,20 +89,15 @@ #define HAS_SPI_1 1 #define SPI_1_PA5_PA6_PA7 1 /* Barometer */ -#define SPI_1_PB3_PB4_PB5 1 /* Accelerometer, Gyro */ +#define SPI_1_PB3_PB4_PB5 1 /* Accelerometer */ #define SPI_1_PE13_PE14_PE15 0 #define SPI_1_OSPEEDR STM_OSPEEDR_10MHz #define HAS_SPI_2 1 -#define SPI_2_PB13_PB14_PB15 1 /* Flash, Companion */ +#define SPI_2_PB13_PB14_PB15 1 /* Flash, IMU, Companion */ #define SPI_2_PD1_PD3_PD4 0 #define SPI_2_OSPEEDR STM_OSPEEDR_10MHz -#define SPI_2_PORT (&stm_gpiob) -#define SPI_2_SCK_PIN 13 -#define SPI_2_MISO_PIN 14 -#define SPI_2_MOSI_PIN 15 - #define HAS_I2C_1 1 #define I2C_1_PB8_PB9 1 @@ -169,9 +164,6 @@ /* Number of general purpose pyro channels available */ #define AO_PYRO_NUM 4 -#define AO_IGNITER_SET_DROGUE(v) stm_gpio_set(AO_IGNITER_DROGUE_PORT, AO_IGNITER_DROGUE_PIN, v) -#define AO_IGNITER_SET_MAIN(v) stm_gpio_set(AO_IGNITER_MAIN_PORT, AO_IGNITER_MAIN_PIN, v) - /* * ADC */ @@ -307,22 +299,29 @@ struct ao_adc { */ #define HAS_MPU9250 1 -#define AO_MPU9250_INT_PORT (&stm_gpioe) -#define AO_MPU9250_INT_PIN 0 -#define AO_MPU9250_SPI_BUS AO_SPI_1_PE13_PE14_PE15 -#define AO_MPU9250_SPI_CS_PORT (&stm_gpiod) -#define AO_MPU9250_SPI_CS_PIN 2 +#define AO_MPU9250_INT_PORT (&stm_gpioc) +#define AO_MPU9250_INT_PIN 15 +#define AO_MPU9250_SPI_BUS (AO_SPI_2_PB13_PB14_PB15 | AO_SPI_MODE_0) +#define AO_MPU9250_SPI_CS_PORT (&stm_gpioc) +#define AO_MPU9250_SPI_CS_PIN 13 #define HAS_IMU 1 -/* - * mma655x - */ +/* ADXL375 */ + +#define HAS_ADXL375 1 +#define AO_ADXL375_SPI_INDEX (AO_SPI_1_PB3_PB4_PB5 | AO_SPI_MODE_3) +#define AO_ADXL375_CS_PORT (&stm_gpioc) +#define AO_ADXL375_CS_PIN 12 +#define AO_ADXL375_SPI_SPEED AO_SPI_SPEED_4MHz + +#define AO_ADXL375_INT1_PORT (&stm_gpiob) +#define AO_ADXL375_INT1_PIN 8 + +#define AO_ADXL375_INT2_PORT (&stm_gpiob) +#define AO_ADXL375_INT2_PIN 9 -#define HAS_MMA655X 0 -#define AO_MMA655X_INVERT 0 -#define AO_MMA655X_SPI_INDEX AO_SPI_1_PB3_PB4_PB5 -#define AO_MMA655X_CS_PORT (&stm_gpioc) -#define AO_MMA655X_CS_PIN 12 +#define AO_ADXL375_AXIS x +#define AO_ADXL375_INVERT 1 #define NUM_CMDS 16 -- 2.30.2