From: Keith Packard Date: Sun, 19 Sep 2021 05:45:33 +0000 (-0700) Subject: altos/telemega-v5.0: Fix config for MMC5983 X-Git-Tag: 1.9.8~1^2~25 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=6a913364ffd84edb36eb848e65863e963f51cd15 altos/telemega-v5.0: Fix config for MMC5983 SPI mode 3 Signed-off-by: Keith Packard --- diff --git a/src/telemega-v5.0/Makefile b/src/telemega-v5.0/Makefile index 809573ba..eeadb073 100644 --- a/src/telemega-v5.0/Makefile +++ b/src/telemega-v5.0/Makefile @@ -46,6 +46,9 @@ INC = \ #STACK_GUARD=ao_mpu_stm.c #STACK_GUARD_DEF=-DHAS_STACK_GUARD=1 +# Bit-bang MMC5983 chip needs this +# ao_i2c_bit.c + ALTOS_SRC = \ ao_boot_chain.c \ ao_interrupt.c \ diff --git a/src/telemega-v5.0/ao_pins.h b/src/telemega-v5.0/ao_pins.h index 9d65684d..0c89ff6a 100644 --- a/src/telemega-v5.0/ao_pins.h +++ b/src/telemega-v5.0/ao_pins.h @@ -94,9 +94,13 @@ #define SPI_1_PE13_PE14_PE15 1 /* MPU6000 */ #define SPI_1_OSPEEDR STM_OSPEEDR_10MHz +//#define MMC5983_I2C 1 + #define HAS_SPI_2 1 #define SPI_2_PB13_PB14_PB15 1 /* Flash, Companion */ +#ifndef MMC5983_I2C #define SPI_2_PD1_PD3_PD4 1 /* MMC5983 */ +#endif #define SPI_2_OSPEEDR STM_OSPEEDR_10MHz #define HAS_I2C_1 0 @@ -342,15 +346,28 @@ struct ao_adc { #define ao_data_pitch(packet) (-(packet)->mpu6000.gyro_y) #define ao_data_yaw(packet) ((packet)->mpu6000.gyro_z) +/* Bit-banging i2c */ +#define AO_I2C_SCL_PORT (&stm_gpiod) +#define AO_I2C_SCL_PIN 1 +#define AO_I2C_SDA_PORT (&stm_gpiod) +#define AO_I2C_SDA_PIN 4 + /* MMC5983 */ #define HAS_MMC5983 1 #define AO_MMC5983_INT_PORT (&stm_gpiod) #define AO_MMC5983_INT_PIN 5 -#define AO_MMC5983_SPI_INDEX AO_SPI_2_PD1_PD3_PD4 +#define AO_MMC5983_SPI_CLK_PORT (&stm_gpiod) +#define AO_MMC5983_SPI_CLK_PIN 1 +#define AO_MMC5983_SPI_MISO_PORT (&stm_gpiod) +#define AO_MMC5983_SPI_MISO_PIN 3 +#define AO_MMC5983_SPI_MOSI_PORT (&stm_gpiod) +#define AO_MMC5983_SPI_MOSI_PIN 4 +#define AO_MMC5983_SPI_INDEX (AO_SPI_2_PD1_PD3_PD4 | AO_SPI_MODE_3) #define AO_MMC5983_SPI_CS_PORT (&stm_gpioa) #define AO_MMC5983_SPI_CS_PIN 15 + #define ao_data_mag_along(packet) ((packet)->mmc5983.x) #define ao_data_mag_across(packet) ((packet)->mmc5983.y) #define ao_data_mag_through(packet) ((packet)->mmc5983.z) diff --git a/src/telemega-v5.0/ao_telemega.c b/src/telemega-v5.0/ao_telemega.c index 11ce9c5d..4e85c390 100644 --- a/src/telemega-v5.0/ao_telemega.c +++ b/src/telemega-v5.0/ao_telemega.c @@ -26,6 +26,7 @@ #include #include #include +#include #if HAS_SAMPLE_PROFILE #include #endif @@ -51,6 +52,9 @@ main(void) ao_timer_init(); ao_spi_init(); +#ifdef MMC5983_I2C + ao_i2c_bit_init(); +#endif ao_dma_init(); ao_exti_init();