Skip to content

Commit

Permalink
Merge pull request #7695 from mikeller/add_missing_unified_resources
Browse files Browse the repository at this point in the history
Added missing features to unified targets, centralised feature configuration.
  • Loading branch information
mikeller committed Mar 6, 2019
2 parents 747963a + f0b0537 commit 687d066
Show file tree
Hide file tree
Showing 14 changed files with 483 additions and 271 deletions.
8 changes: 6 additions & 2 deletions src/main/drivers/transponder_ir_io_hal.c
Expand Up @@ -45,6 +45,8 @@ volatile uint8_t transponderIrDataTransferInProgress = 0;
static IO_t transponderIO = IO_NONE;
static TIM_HandleTypeDef TimHandle;
static uint16_t timerChannel = 0;
static uint8_t output;
static uint8_t alternateFunction;

#if !defined(STM32F7)
#error "Transponder (via HAL) not supported on this MCU."
Expand All @@ -69,6 +71,8 @@ void transponderIrHardwareInit(ioTag_t ioTag, transponder_t *transponder)
const timerHardware_t *timerHardware = timerGetByTag(ioTag);
TIM_TypeDef *timer = timerHardware->tim;
timerChannel = timerHardware->channel;
output = timerHardware->output;
alternateFunction = timerHardware->alternateFunction;

#if defined(USE_DMA_SPEC)
const dmaChannelSpec_t *dmaSpec = dmaGetChannelSpecByTimer(timerHardware);
Expand Down Expand Up @@ -253,7 +257,7 @@ void transponderIrDisable(void)
}

TIM_DMACmd(&TimHandle, timerChannel, DISABLE);
if (timerHardware->output & TIMER_OUTPUT_N_CHANNEL) {
if (output & TIMER_OUTPUT_N_CHANNEL) {
HAL_TIMEx_PWMN_Stop(&TimHandle, timerChannel);
} else {
HAL_TIM_PWM_Stop(&TimHandle, timerChannel);
Expand All @@ -268,7 +272,7 @@ void transponderIrDisable(void)
IOLo(transponderIO);
#endif

IOConfigGPIOAF(transponderIO, IO_CONFIG(GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_VERY_HIGH, GPIO_PULLDOWN), timerHardware->alternateFunction);
IOConfigGPIOAF(transponderIO, IO_CONFIG(GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_VERY_HIGH, GPIO_PULLDOWN), alternateFunction);
}

void transponderIrTransmit(void)
Expand Down
4 changes: 3 additions & 1 deletion src/main/drivers/transponder_ir_io_stdperiph.c
Expand Up @@ -42,6 +42,7 @@ volatile uint8_t transponderIrDataTransferInProgress = 0;

static IO_t transponderIO = IO_NONE;
static TIM_TypeDef *timer = NULL;
uint8_t alternateFunction;
#if defined(STM32F3)
static DMA_Channel_TypeDef *dmaRef = NULL;
#elif defined(STM32F4)
Expand Down Expand Up @@ -74,6 +75,7 @@ void transponderIrHardwareInit(ioTag_t ioTag, transponder_t *transponder)

const timerHardware_t *timerHardware = timerGetByTag(ioTag);
timer = timerHardware->tim;
alternateFunction = timerHardware->alternateFunction;

#if defined(USE_DMA_SPEC)
const dmaChannelSpec_t *dmaSpec = dmaGetChannelSpecByTimer(timerHardware);
Expand Down Expand Up @@ -235,7 +237,7 @@ void transponderIrDisable(void)
TIM_Cmd(timer, DISABLE);

IOInit(transponderIO, OWNER_TRANSPONDER, 0);
IOConfigGPIOAF(transponderIO, IO_CONFIG(GPIO_Mode_AF, GPIO_Speed_50MHz, GPIO_OType_PP, GPIO_PuPd_DOWN), timerHardware->alternateFunction);
IOConfigGPIOAF(transponderIO, IO_CONFIG(GPIO_Mode_AF, GPIO_Speed_50MHz, GPIO_OType_PP, GPIO_PuPd_DOWN), alternateFunction);

#ifdef TRANSPONDER_INVERTED
IOHi(transponderIO);
Expand Down
67 changes: 4 additions & 63 deletions src/main/target/STM32F405/target.h
Expand Up @@ -20,89 +20,30 @@

#pragma once

// Treat the target as generic, and expect manufacturer id / board name
// to be supplied when the board is configured for the first time
#define USE_UNIFIED_TARGET
#include "target/common_unified.h"

#define TARGET_BOARD_IDENTIFIER "S405"

#define USBD_PRODUCT_STRING "Betaflight STM32F405"

#define USE_BEEPER

// MPU interrupt
#define USE_EXTI
#define USE_MPU_DATA_READY_SIGNAL
//#define DEBUG_MPU_DATA_READY_INTERRUPT
#define USE_GYRO_EXTI

#define USE_ACC
#define USE_GYRO

#define USE_ACC_MPU6050
#define USE_GYRO_MPU6050
#define USE_ACC_MPU6500
#define USE_GYRO_MPU6500
#define USE_ACC_SPI_MPU6000
#define USE_GYRO_SPI_MPU6000
#define USE_ACC_SPI_MPU6500
#define USE_GYRO_SPI_MPU6500
#define USE_ACC_SPI_ICM20689
#define USE_GYRO_SPI_ICM20689
// Other USE_ACCs and USE_GYROs should follow

#define USE_MAG
#define USE_MAG_HMC5883
#define USE_MAG_SPI_HMC5883
#define USE_MAG_QMC5883
#define USE_MAG_LIS3MDL
#define USE_MAG_AK8963
#define USE_MAG_SPI_AK8963

#define USE_BARO
#define USE_BARO_MS5611
#define USE_BARO_SPI_MS5611
#define USE_BARO_BMP280
#define USE_BARO_SPI_BMP280
#define USE_BARO_LPS
#define USE_BARO_SPI_LPS

#define USE_SDCARD
#define USE_SDCARD_SPI

#define USE_FLASHFS
#define USE_FLASH_M25P16

#define USE_MAX7456

#define USE_I2C
#define USE_I2C_DEVICE_1
#define USE_I2C_DEVICE_2
#define USE_I2C_DEVICE_3
#define I2C_FULL_RECONFIGURABILITY

#define USE_VCP

#define USE_UART1
#define USE_UART2
#define USE_UART3
#define USE_UART4
#define USE_UART5
#define USE_UART6
#define USE_SOFTSERIAL1
#define USE_SOFTSERIAL2
#define USE_INVERTER
#define SERIAL_PORT_COUNT 9

#define USE_ESCSERIAL
#define SERIAL_PORT_COUNT (UNIFIED_SERIAL_PORT_COUNT + 6)

#define USE_INVERTER

#define USE_SPI
#define USE_SPI_DEVICE_1
#define USE_SPI_DEVICE_2
#define USE_SPI_DEVICE_3
#define SPI_FULL_RECONFIGURABILITY

#define USE_ADC

#define TARGET_IO_PORTA 0xffff
#define TARGET_IO_PORTB 0xffff
Expand Down
12 changes: 11 additions & 1 deletion src/main/target/STM32F405/target.mk
Expand Up @@ -5,4 +5,14 @@ TARGET_SRC = \
$(addprefix drivers/accgyro/,$(notdir $(wildcard $(SRC_DIR)/drivers/accgyro/*.c))) \
$(addprefix drivers/barometer/,$(notdir $(wildcard $(SRC_DIR)/drivers/barometer/*.c))) \
$(addprefix drivers/compass/,$(notdir $(wildcard $(SRC_DIR)/drivers/compass/*.c))) \
drivers/max7456.c
drivers/max7456.c \
rx/cc2500_common.c \
rx/cc2500_frsky_shared.c \
rx/cc2500_frsky_d.c \
rx/cc2500_frsky_x.c \
rx/cc2500_sfhss.c \
rx/a7105_flysky.c \
rx/cyrf6936_spektrum.c \
drivers/rx/rx_cc2500.c \
drivers/rx/rx_a7105.c \
drivers/rx/rx_cyrf6936.c
81 changes: 4 additions & 77 deletions src/main/target/STM32F411/target.h
Expand Up @@ -20,100 +20,27 @@

#pragma once

// Treat the target as generic, and expect manufacturer id / board name
// to be supplied when the board is configured for the first time
#define USE_UNIFIED_TARGET
#include "target/common_unified.h"

#define TARGET_BOARD_IDENTIFIER "S411"

#define USBD_PRODUCT_STRING "Betaflight STM32F411"

#define USE_BEEPER

// MPU interrupt
#define USE_EXTI
#define USE_MPU_DATA_READY_SIGNAL
//#define DEBUG_MPU_DATA_READY_INTERRUPT
#define USE_GYRO_EXTI

#define USE_ACC
#define USE_GYRO

#define USE_ACC_MPU6050
#define USE_GYRO_MPU6050
#define USE_ACC_MPU6500
#define USE_GYRO_MPU6500
#define USE_ACC_SPI_MPU6000
#define USE_GYRO_SPI_MPU6000
#define USE_ACC_SPI_MPU6500
#define USE_GYRO_SPI_MPU6500
#define USE_ACC_SPI_ICM20689
#define USE_GYRO_SPI_ICM20689
// Other USE_ACCs and USE_GYROs should follow

#define USE_MAG
#define USE_MAG_HMC5883
#define USE_MAG_SPI_HMC5883
#define USE_MAG_QMC5883
#define USE_MAG_LIS3MDL
#define USE_MAG_AK8963
#define USE_MAG_SPI_AK8963

#define USE_BARO
#define USE_BARO_MS5611
#define USE_BARO_SPI_MS5611
#define USE_BARO_BMP280
#define USE_BARO_SPI_BMP280
#define USE_BARO_LPS
#define USE_BARO_SPI_LPS

#define USE_SDCARD
#define USE_SDCARD_SPI

#define USE_FLASHFS
#define USE_FLASH_M25P16

#define USE_MAX7456

#define USE_I2C
#define USE_I2C_DEVICE_1
#define USE_I2C_DEVICE_2
#define USE_I2C_DEVICE_3
#define I2C_FULL_RECONFIGURABILITY

#define USE_VCP

#define USE_UART1
#define USE_UART2
#define USE_UART6
#define USE_SOFTSERIAL1
#define USE_SOFTSERIAL2
#define USE_INVERTER
#define SERIAL_PORT_COUNT 6

#define USE_ESCSERIAL
#define SERIAL_PORT_COUNT (UNIFIED_SERIAL_PORT_COUNT + 3)

#define USE_INVERTER

#define USE_SPI
#define USE_SPI_DEVICE_1
#define USE_SPI_DEVICE_2
#define USE_SPI_DEVICE_3
#define SPI_FULL_RECONFIGURABILITY

#define USE_ADC

#define USE_RX_SPI

#define USE_RX_FRSKY_SPI_D
#define USE_RX_FRSKY_SPI_X
#define USE_RX_SFHSS_SPI
#define USE_RX_FRSKY_SPI_TELEMETRY
#define USE_RX_CC2500_SPI_PA_LNA
#define USE_RX_CC2500_SPI_DIVERSITY

#define USE_RX_FLYSKY

#define USE_RX_SPEKTRUM
#define USE_RX_SPEKTRUM_TELEMETRY

#define TARGET_IO_PORTA 0xffff
#define TARGET_IO_PORTB 0xffff
Expand Down
65 changes: 2 additions & 63 deletions src/main/target/STM32F745/target.h
Expand Up @@ -20,69 +20,16 @@

#pragma once

// Treat the target as generic, and expect manufacturer id / board name
// to be supplied when the board is configured for the first time
#define USE_UNIFIED_TARGET
#include "target/common_unified.h"

#define TARGET_BOARD_IDENTIFIER "S745"

#define USBD_PRODUCT_STRING "Betaflight STM32F745"

#define USE_BEEPER

// MPU interrupt
#define USE_EXTI
#define USE_MPU_DATA_READY_SIGNAL
//#define DEBUG_MPU_DATA_READY_INTERRUPT
#define USE_GYRO_EXTI

#define USE_ACC
#define USE_GYRO

#define USE_ACC_MPU6050
#define USE_GYRO_MPU6050
#define USE_ACC_MPU6500
#define USE_GYRO_MPU6500
#define USE_ACC_SPI_MPU6000
#define USE_GYRO_SPI_MPU6000
#define USE_ACC_SPI_MPU6500
#define USE_GYRO_SPI_MPU6500
#define USE_ACC_SPI_ICM20689
#define USE_GYRO_SPI_ICM20689
// Other USE_ACCs and USE_GYROs should follow

#define USE_MAG
#define USE_MAG_HMC5883
#define USE_MAG_SPI_HMC5883
#define USE_MAG_QMC5883
#define USE_MAG_LIS3MDL
#define USE_MAG_AK8963
#define USE_MAG_SPI_AK8963

#define USE_BARO
#define USE_BARO_MS5611
#define USE_BARO_SPI_MS5611
#define USE_BARO_BMP280
#define USE_BARO_SPI_BMP280
#define USE_BARO_LPS
#define USE_BARO_SPI_LPS

#define USE_SDCARD
#define USE_SDCARD_SPI

#define USE_FLASHFS
#define USE_FLASH_M25P16

#define USE_MAX7456

#define USE_I2C
#define USE_I2C_DEVICE_1
#define USE_I2C_DEVICE_2
#define USE_I2C_DEVICE_3
#define USE_I2C_DEVICE_4
#define I2C_FULL_RECONFIGURABILITY

#define USE_VCP

#define USE_UART1
#define USE_UART2
Expand All @@ -92,23 +39,15 @@
#define USE_UART6
#define USE_UART7
#define USE_UART8
#define USE_SOFTSERIAL1
#define USE_SOFTSERIAL2

#define SERIAL_PORT_COUNT 11

#define USE_ESCSERIAL
#define SERIAL_PORT_COUNT (UNIFIED_SERIAL_PORT_COUNT + 8)

#define USE_SPI
#define USE_SPI_DEVICE_1
#define USE_SPI_DEVICE_2
#define USE_SPI_DEVICE_3
#define USE_SPI_DEVICE_4
#define USE_SPI_DEVICE_5
#define USE_SPI_DEVICE_6
#define SPI_FULL_RECONFIGURABILITY

#define USE_ADC

#define TARGET_IO_PORTA 0xffff
#define TARGET_IO_PORTB 0xffff
Expand Down

0 comments on commit 687d066

Please sign in to comment.