altos/easymega-v2.0: Add adxl375, replace mpu6000 with 9250 [v2]
authorKeith Packard <keithp@keithp.com>
Sat, 13 Oct 2018 16:43:25 +0000 (09:43 -0700)
committerKeith Packard <keithp@keithp.com>
Fri, 19 Oct 2018 15:38:32 +0000 (08:38 -0700)
Should reflect current hardware design now.

v2:
Use SPI mode 3 for ADXL375
Invert ADXL375 values

Signed-off-by: Keith Packard <keithp@keithp.com>
src/easymega-v2.0/Makefile
src/easymega-v2.0/ao_easymega.c
src/easymega-v2.0/ao_pins.h

index ece4e9bb93f65511808487c20356adf0bfc2e9d7..bfe8a849a9aa98192d47dde6c2215f5d66f9902f 100644 (file)
@@ -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)
index 9848c36779c4dfd352f71e3c0f7ef17a7b3d6b0f..bb2e7cfdee9b728b0742cf0570694046d46ea931 100644 (file)
@@ -17,9 +17,9 @@
  */
 
 #include <ao.h>
-#include <ao_hmc5883.h>
-#include <ao_mpu6000.h>
-#include <ao_mma655x.h>
+#include <ao_ms5607.h>
+#include <ao_mpu9250.h>
+#include <ao_adxl375.h>
 #include <ao_log.h>
 #include <ao_exti.h>
 #include <ao_companion.h>
@@ -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();
index 508c043cc44a8ebd1d445b333fc42358c7af000f..6217b5d2376f487d168560668a1c71d4415d0368 100644 (file)
@@ -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
 
 #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
 
 /* 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