summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2018-10-13 09:43:25 -0700
committerKeith Packard <keithp@keithp.com>2018-10-19 08:38:32 -0700
commitf49763bf4a6cd8b2a47abfbec7ef3d8c8c029b8f (patch)
tree8f1895ac14de3f39a57d04f722f1997594b1776c
parent6fdc392ef1b624c06e26e7a053c3579435c455d5 (diff)
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 <keithp@keithp.com>
-rw-r--r--src/easymega-v2.0/Makefile22
-rw-r--r--src/easymega-v2.0/ao_easymega.c23
-rw-r--r--src/easymega-v2.0/ao_pins.h49
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 <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();
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