From 393a5e929b530d9ee4f78cd01faa4dd90c95fe3a Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Fri, 12 Oct 2018 23:32:57 -0600 Subject: altos: first cut at easymega v2.0 support .. nothing working yet --- src/easymega-v2.0/Makefile | 139 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 src/easymega-v2.0/Makefile (limited to 'src/easymega-v2.0/Makefile') diff --git a/src/easymega-v2.0/Makefile b/src/easymega-v2.0/Makefile new file mode 100644 index 00000000..9d490d0f --- /dev/null +++ b/src/easymega-v2.0/Makefile @@ -0,0 +1,139 @@ +# +# AltOS build +# +# + +include ../stm/Makefile.defs + +INC = \ + ao.h \ + ao_arch.h \ + ao_arch_funcs.h \ + ao_boot.h \ + ao_companion.h \ + ao_data.h \ + ao_sample.h \ + ao_pins.h \ + altitude-pa.h \ + ao_kalman.h \ + ao_product.h \ + ao_ms5607.h \ + ao_mpu9250.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 + +# +# Common AltOS sources +# + +#PROFILE=ao_profile.c +#PROFILE_DEF=-DAO_PROFILE=1 + +#SAMPLE_PROFILE=ao_sample_profile.c \ +# ao_sample_profile_timer.c +#SAMPLE_PROFILE_DEF=-DHAS_SAMPLE_PROFILE=1 + +#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 \ + ao_product.c \ + ao_romconfig.c \ + ao_cmd.c \ + ao_config.c \ + ao_task.c \ + ao_led.c \ + ao_stdio.c \ + ao_panic.c \ + ao_timer.c \ + ao_mutex.c \ + ao_ignite.c \ + ao_freq.c \ + ao_dma_stm.c \ + ao_spi_stm.c \ + ao_data.c \ + ao_ms5607.c \ + ao_mpu9250.c \ + ao_adc_stm.c \ + ao_beep_stm.c \ + ao_eeprom_stm.c \ + ao_storage.c \ + ao_m25.c \ + ao_usb_stm.c \ + ao_exti_stm.c \ + ao_report.c \ + ao_i2c_stm.c \ + ao_convert_pa.c \ + ao_convert_volt.c \ + ao_log.c \ + ao_log_mega.c \ + ao_sample.c \ + ao_kalman.c \ + ao_flight.c \ + ao_companion.c \ + ao_pyro.c \ + $(MATH_SRC) \ + $(PROFILE) \ + $(SAMPLE_PROFILE) \ + $(STACK_GUARD) + +PRODUCT=EasyMega-v2.0 +PRODUCT_DEF=-DEASYMEGA +IDPRODUCT=0x0028 + +CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g + +PROGNAME=easymega-v1.0 +PROG=$(PROGNAME)-$(VERSION).elf +HEX=$(PROGNAME)-$(VERSION).ihx + +SRC=$(ALTOS_SRC) ao_easymega.c +OBJ=$(SRC:.c=.o) + +all: $(PROG) $(HEX) + +$(PROG): Makefile $(OBJ) altos.ld + $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS) + +../altitude-pa.h: make-altitude-pa + nickle $< > $@ + +$(OBJ): $(INC) + +ao_product.h: ao-make-product.5c ../Version + $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@ + +distclean: clean + +clean: + rm -f *.o $(PROGNAME)-*.elf $(PROGNAME)-*.ihx + rm -f ao_product.h + +install: + +uninstall: -- cgit v1.2.3 From 6fdc392ef1b624c06e26e7a053c3579435c455d5 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 13 Oct 2018 09:46:01 -0700 Subject: altos/easymega-v2.0: Change binary to easymega-v2.0 instead of easymega-v1.0 Signed-off-by: Keith Packard --- src/easymega-v2.0/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/easymega-v2.0/Makefile') diff --git a/src/easymega-v2.0/Makefile b/src/easymega-v2.0/Makefile index 9d490d0f..ece4e9bb 100644 --- a/src/easymega-v2.0/Makefile +++ b/src/easymega-v2.0/Makefile @@ -108,7 +108,7 @@ IDPRODUCT=0x0028 CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g -PROGNAME=easymega-v1.0 +PROGNAME=easymega-v2.0 PROG=$(PROGNAME)-$(VERSION).elf HEX=$(PROGNAME)-$(VERSION).ihx -- cgit v1.2.3 From f49763bf4a6cd8b2a47abfbec7ef3d8c8c029b8f Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 13 Oct 2018 09:43:25 -0700 Subject: 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(-) (limited to 'src/easymega-v2.0/Makefile') 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 -- cgit v1.2.3