diff --git a/sw/airborne/boards/tawaki/chibios/common/tawaki.h b/sw/airborne/boards/tawaki/chibios/common/tawaki.h index 193ca40946..596cec5583 100644 --- a/sw/airborne/boards/tawaki/chibios/common/tawaki.h +++ b/sw/airborne/boards/tawaki/chibios/common/tawaki.h @@ -17,6 +17,11 @@ */ #define AHB_CLK STM32_HCLK +/* + * Concat macro + */ +#define _CONCAT_BOARD_PARAM(_s1, _s2) _s1 ## _s2 +#define CONCAT_BOARD_PARAM(_s1, _s2) _CONCAT_BOARD_PARAM(_s1, _s2) /* * LEDs @@ -62,7 +67,7 @@ */ // AUXa1 #if USE_ADC_1 -#define AD1_1_CHANNEL ADC_CHANNEL_IN0 +#define AD1_1_CHANNEL CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, AUX_A1_ADC_IN) #define ADC_1 AD1_1 #define ADC_1_GPIO_PORT PAL_PORT(LINE_AUX_A1) #define ADC_1_GPIO_PIN PAL_PAD(LINE_AUX_A1) @@ -70,7 +75,7 @@ // AUXa2 #if USE_ADC_2 -#define AD1_2_CHANNEL ADC_CHANNEL_IN1 +#define AD1_2_CHANNEL CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, AUX_A2_ADC_IN) #define ADC_2 AD1_2 #define ADC_2_GPIO_PORT PAL_PORT(LINE_AUX_A2) #define ADC_2_GPIO_PIN PAL_PAD(LINE_AUX_A2) @@ -78,7 +83,7 @@ // AUXa3 #if USE_ADC_3 -#define AD1_3_CHANNEL ADC_CHANNEL_IN2 +#define AD1_3_CHANNEL CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, AUX_A3_ADC_IN) #define ADC_3 AD1_3 #define ADC_3_GPIO_PORT PAL_PORT(LINE_AUX_A3) #define ADC_3_GPIO_PIN PAL_PAD(LINE_AUX_A3) @@ -86,7 +91,7 @@ // AUXa4 #if USE_ADC_4 -#define AD1_4_CHANNEL ADC_CHANNEL_IN6 +#define AD1_4_CHANNEL CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, AUX_A4_ADC_IN) #define ADC_4 AD1_4 #define ADC_4_GPIO_PORT PAL_PORT(LINE_AUX_A4) #define ADC_4_GPIO_PIN PAL_PAD(LINE_AUX_A4) @@ -94,7 +99,7 @@ // AUXb1 #if USE_ADC_5 -#define AD1_5_CHANNEL ADC_CHANNEL_IN3 +#define AD1_5_CHANNEL CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, AUX_B1_ADC_IN) #define ADC_5 AD1_5 #define ADC_5_GPIO_PORT PAL_PORT(LINE_AUX_B1) #define ADC_5_GPIO_PIN PAL_PAD(LINE_AUX_B1) @@ -102,7 +107,7 @@ // AUXb2 #if USE_ADC_6 -#define AD1_6_CHANNEL ADC_CHANNEL_IN7 +#define AD1_6_CHANNEL CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, AUX_B2_ADC_IN) #define ADC_6 AD1_6 #define ADC_6_GPIO_PORT PAL_PORT(LINE_AUX_B2) #define ADC_6_GPIO_PIN PAL_PAD(LINE_AUX_B2) @@ -110,7 +115,7 @@ // AUXb3 #if USE_ADC_7 -#define AD1_7_CHANNEL ADC_CHANNEL_IN8 +#define AD1_7_CHANNEL CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, AUX_B3_ADC_IN) #define ADC_7 AD1_7 #define ADC_7_GPIO_PORT PAL_PORT(LINE_AUX_B3) #define ADC_7_GPIO_PIN PAL_PAD(LINE_AUX_B3) @@ -118,7 +123,7 @@ // AUXb4 #if USE_ADC_8 -#define AD1_8_CHANNEL ADC_CHANNEL_IN9 +#define AD1_8_CHANNEL CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, AUX_B4_ADC_IN) #define ADC_8 AD1_8 #define ADC_8_GPIO_PORT PAL_PORT(LINE_AUX_B4) #define ADC_8_GPIO_PIN PAL_PAD(LINE_AUX_B4) @@ -129,7 +134,7 @@ #define USE_ADC_9 1 #endif #if USE_ADC_9 -#define AD1_9_CHANNEL ADC_CHANNEL_IN10 +#define AD1_9_CHANNEL CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, VBAT_MEAS_ADC_IN) #define ADC_9 AD1_9 #define ADC_9_GPIO_PORT PAL_PORT(LINE_VBAT_MEAS) #define ADC_9_GPIO_PIN PAL_PAD(LINE_VBAT_MEAS) @@ -163,8 +168,8 @@ #define PWM_SERVO_1_GPIO PAL_PORT(LINE_SRVA1) #define PWM_SERVO_1_PIN PAL_PAD(LINE_SRVA1) #define PWM_SERVO_1_AF AF_SRVA1 -#define PWM_SERVO_1_DRIVER PWMD1 -#define PWM_SERVO_1_CHANNEL 0 +#define PWM_SERVO_1_DRIVER CONCAT_BOARD_PARAM(PWMD, SRVA1_TIM) +#define PWM_SERVO_1_CHANNEL SRVA1_TIM_CH #define PWM_SERVO_1_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_1_ACTIVE PWM_OUTPUT_DISABLED @@ -178,8 +183,8 @@ #define PWM_SERVO_2_GPIO PAL_PORT(LINE_SRVA2) #define PWM_SERVO_2_PIN PAL_PAD(LINE_SRVA2) #define PWM_SERVO_2_AF AF_SRVA2 -#define PWM_SERVO_2_DRIVER PWMD1 -#define PWM_SERVO_2_CHANNEL 1 +#define PWM_SERVO_2_DRIVER CONCAT_BOARD_PARAM(PWMD, SRVA2_TIM) +#define PWM_SERVO_2_CHANNEL SRVA2_TIM_CH #define PWM_SERVO_2_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_2_ACTIVE PWM_OUTPUT_DISABLED @@ -193,8 +198,8 @@ #define PWM_SERVO_3_GPIO PAL_PORT(LINE_SRVA3) #define PWM_SERVO_3_PIN PAL_PAD(LINE_SRVA3) #define PWM_SERVO_3_AF AF_SRVA3 -#define PWM_SERVO_3_DRIVER PWMD1 -#define PWM_SERVO_3_CHANNEL 2 +#define PWM_SERVO_3_DRIVER CONCAT_BOARD_PARAM(PWMD, SRVA3_TIM) +#define PWM_SERVO_3_CHANNEL SRVA3_TIM_CH #define PWM_SERVO_3_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_3_ACTIVE PWM_OUTPUT_DISABLED @@ -208,8 +213,8 @@ #define PWM_SERVO_4_GPIO PAL_PORT(LINE_SRVA4) #define PWM_SERVO_4_PIN PAL_PAD(LINE_SRVA4) #define PWM_SERVO_4_AF AF_SRVA4 -#define PWM_SERVO_4_DRIVER PWMD1 -#define PWM_SERVO_4_CHANNEL 3 +#define PWM_SERVO_4_DRIVER CONCAT_BOARD_PARAM(PWMD, SRVA4_TIM) +#define PWM_SERVO_4_CHANNEL SRVA4_TIM_CH #define PWM_SERVO_4_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_4_ACTIVE PWM_OUTPUT_DISABLED @@ -225,8 +230,8 @@ #define PWM_SERVO_5_GPIO PAL_PORT(LINE_SRVB1) #define PWM_SERVO_5_PIN PAL_PAD(LINE_SRVB1) #define PWM_SERVO_5_AF AF_SRVB1 -#define PWM_SERVO_5_DRIVER PWMD4 -#define PWM_SERVO_5_CHANNEL 0 +#define PWM_SERVO_5_DRIVER CONCAT_BOARD_PARAM(PWMD, SRVB1_TIM) +#define PWM_SERVO_5_CHANNEL SRVB1_TIM_CH #define PWM_SERVO_5_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_5_ACTIVE PWM_OUTPUT_DISABLED @@ -240,8 +245,8 @@ #define PWM_SERVO_6_GPIO PAL_PORT(LINE_SRVB2) #define PWM_SERVO_6_PIN PAL_PAD(LINE_SRVB2) #define PWM_SERVO_6_AF AF_SRVB2 -#define PWM_SERVO_6_DRIVER PWMD4 -#define PWM_SERVO_6_CHANNEL 1 +#define PWM_SERVO_6_DRIVER CONCAT_BOARD_PARAM(PWMD, SRVB2_TIM) +#define PWM_SERVO_6_CHANNEL SRVB2_TIM_CH #define PWM_SERVO_6_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_6_ACTIVE PWM_OUTPUT_DISABLED @@ -255,8 +260,8 @@ #define PWM_SERVO_7_GPIO PAL_PORT(LINE_SRVB3) #define PWM_SERVO_7_PIN PAL_PAD(LINE_SRVB3) #define PWM_SERVO_7_AF AF_SRVB3 -#define PWM_SERVO_7_DRIVER PWMD4 -#define PWM_SERVO_7_CHANNEL 2 +#define PWM_SERVO_7_DRIVER CONCAT_BOARD_PARAM(PWMD, SRVB3_TIM) +#define PWM_SERVO_7_CHANNEL SRVB3_TIM_CH #define PWM_SERVO_7_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_7_ACTIVE PWM_OUTPUT_DISABLED @@ -270,8 +275,8 @@ #define PWM_SERVO_8_GPIO PAL_PORT(LINE_SRVB4) #define PWM_SERVO_8_PIN PAL_PAD(LINE_SRVB4) #define PWM_SERVO_8_AF AF_SRVB4 -#define PWM_SERVO_8_DRIVER PWMD4 -#define PWM_SERVO_8_CHANNEL 3 +#define PWM_SERVO_8_DRIVER CONCAT_BOARD_PARAM(PWMD, SRVB4_TIM) +#define PWM_SERVO_8_CHANNEL SRVB4_TIM_CH #define PWM_SERVO_8_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_8_ACTIVE PWM_OUTPUT_DISABLED @@ -285,8 +290,8 @@ #define PWM_SERVO_9_GPIO PAL_PORT(LINE_AUX_A1) #define PWM_SERVO_9_PIN PAL_PAD(LINE_AUX_A1) #define PWM_SERVO_9_AF GPIO_AF2 -#define PWM_SERVO_9_DRIVER PWMD5 -#define PWM_SERVO_9_CHANNEL 0 +#define PWM_SERVO_9_DRIVER CONCAT_BOARD_PARAM(PWMD, AUX_A1_TIM) +#define PWM_SERVO_9_CHANNEL AUX_A1_TIM_CH #define PWM_SERVO_9_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_9_ACTIVE PWM_OUTPUT_DISABLED @@ -300,8 +305,8 @@ #define PWM_SERVO_10_GPIO PAL_PORT(LINE_AUX_A2) #define PWM_SERVO_10_PIN PAL_PAD(LINE_AUX_A2) #define PWM_SERVO_10_AF GPIO_AF2 -#define PWM_SERVO_10_DRIVER PWMD5 -#define PWM_SERVO_10_CHANNEL 1 +#define PWM_SERVO_10_DRIVER CONCAT_BOARD_PARAM(PWMD, AUX_A2_TIM) +#define PWM_SERVO_10_CHANNEL AUX_A2_TIM_CH #define PWM_SERVO_10_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_10_ACTIVE PWM_OUTPUT_DISABLED @@ -315,8 +320,8 @@ #define PWM_SERVO_11_GPIO PAL_PORT(LINE_AUX_A3) #define PWM_SERVO_11_PIN PAL_PAD(LINE_AUX_A3) #define PWM_SERVO_11_AF GPIO_AF2 -#define PWM_SERVO_11_DRIVER PWMD5 -#define PWM_SERVO_11_CHANNEL 2 +#define PWM_SERVO_11_DRIVER CONCAT_BOARD_PARAM(PWMD, AUX_A3_TIM) +#define PWM_SERVO_11_CHANNEL AUX_A3_TIM_CH #define PWM_SERVO_11_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_11_ACTIVE PWM_OUTPUT_DISABLED @@ -330,8 +335,8 @@ #define PWM_SERVO_12_GPIO PAL_PORT(LINE_AUX_A4) #define PWM_SERVO_12_PIN PAL_PAD(LINE_AUX_A4) #define PWM_SERVO_12_AF GPIO_AF2 -#define PWM_SERVO_12_DRIVER PWMD5 -#define PWM_SERVO_12_CHANNEL 3 +#define PWM_SERVO_12_DRIVER CONCAT_BOARD_PARAM(PWMD, AUX_A4_TIM) +#define PWM_SERVO_12_CHANNEL AUX_A4_TIM_CH #define PWM_SERVO_12_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_12_ACTIVE PWM_OUTPUT_DISABLED @@ -345,8 +350,8 @@ #define PWM_SERVO_13_GPIO PAL_PORT(LINE_AUX_B1) #define PWM_SERVO_13_PIN PAL_PAD(LINE_AUX_B1) #define PWM_SERVO_13_AF GPIO_AF2 -#define PWM_SERVO_13_DRIVER PWMD3 -#define PWM_SERVO_13_CHANNEL 0 +#define PWM_SERVO_13_DRIVER CONCAT_BOARD_PARAM(PWMD, AUX_B1_TIM) +#define PWM_SERVO_13_CHANNEL AUX_B1_TIM_CH #define PWM_SERVO_13_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_13_ACTIVE PWM_OUTPUT_DISABLED @@ -360,8 +365,8 @@ #define PWM_SERVO_14_GPIO PAL_PORT(LINE_AUX_B2) #define PWM_SERVO_14_PIN PAL_PAD(LINE_AUX_B2) #define PWM_SERVO_14_AF GPIO_AF2 -#define PWM_SERVO_14_DRIVER PWMD3 -#define PWM_SERVO_14_CHANNEL 1 +#define PWM_SERVO_14_DRIVER CONCAT_BOARD_PARAM(PWMD, AUX_B2_TIM) +#define PWM_SERVO_14_CHANNEL AUX_B2_TIM_CH #define PWM_SERVO_14_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_14_ACTIVE PWM_OUTPUT_DISABLED @@ -375,8 +380,8 @@ #define PWM_SERVO_15_GPIO PAL_PORT(LINE_AUX_B3) #define PWM_SERVO_15_PIN PAL_PAD(LINE_AUX_B3) #define PWM_SERVO_15_AF GPIO_AF2 -#define PWM_SERVO_15_DRIVER PWMD3 -#define PWM_SERVO_15_CHANNEL 2 +#define PWM_SERVO_15_DRIVER CONCAT_BOARD_PARAM(PWMD, AUX_B3_TIM) +#define PWM_SERVO_15_CHANNEL AUX_B3_TIM_CH #define PWM_SERVO_15_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_15_ACTIVE PWM_OUTPUT_DISABLED @@ -390,8 +395,8 @@ #define PWM_SERVO_16_GPIO PAL_PORT(LINE_AUX_B4) #define PWM_SERVO_16_PIN PAL_PAD(LINE_AUX_B4) #define PWM_SERVO_16_AF GPIO_AF2 -#define PWM_SERVO_16_DRIVER PWMD3 -#define PWM_SERVO_16_CHANNEL 3 +#define PWM_SERVO_16_DRIVER CONCAT_BOARD_PARAM(PWMD, AUX_B4_TIM) +#define PWM_SERVO_16_CHANNEL AUX_B4_TIM_CH #define PWM_SERVO_16_ACTIVE PWM_OUTPUT_ACTIVE_HIGH #else #define PWM_SERVO_16_ACTIVE PWM_OUTPUT_DISABLED @@ -496,29 +501,29 @@ #define DSHOT_SERVO_1_GPIO PAL_PORT(LINE_SRVB1) #define DSHOT_SERVO_1_PIN PAL_PAD(LINE_SRVB1) #define DSHOT_SERVO_1_AF AF_SRVB1 -#define DSHOT_SERVO_1_DRIVER DSHOTD4 -#define DSHOT_SERVO_1_CHANNEL 0 +#define DSHOT_SERVO_1_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SRVB1_TIM) +#define DSHOT_SERVO_1_CHANNEL SRVB1_TIM_CH #define DSHOT_SERVO_2 2 #define DSHOT_SERVO_2_GPIO PAL_PORT(LINE_SRVB2) #define DSHOT_SERVO_2_PIN PAL_PAD(LINE_SRVB2) #define DSHOT_SERVO_2_AF AF_SRVB2 -#define DSHOT_SERVO_2_DRIVER DSHOTD4 -#define DSHOT_SERVO_2_CHANNEL 1 +#define DSHOT_SERVO_2_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SRVB2_TIM) +#define DSHOT_SERVO_2_CHANNEL SRVB2_TIM_CH #define DSHOT_SERVO_3 3 #define DSHOT_SERVO_3_GPIO PAL_PORT(LINE_SRVB3) #define DSHOT_SERVO_3_PIN PAL_PAD(LINE_SRVB3) #define DSHOT_SERVO_3_AF AF_SRVB3 -#define DSHOT_SERVO_3_DRIVER DSHOTD4 -#define DSHOT_SERVO_3_CHANNEL 2 +#define DSHOT_SERVO_3_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SRVB3_TIM) +#define DSHOT_SERVO_3_CHANNEL SRVB3_TIM_CH #define DSHOT_SERVO_4 4 #define DSHOT_SERVO_4_GPIO PAL_PORT(LINE_SRVB4) #define DSHOT_SERVO_4_PIN PAL_PAD(LINE_SRVB4) #define DSHOT_SERVO_4_AF AF_SRVB4 -#define DSHOT_SERVO_4_DRIVER DSHOTD4 -#define DSHOT_SERVO_4_CHANNEL 3 +#define DSHOT_SERVO_4_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SRVB4_TIM) +#define DSHOT_SERVO_4_CHANNEL SRVB4_TIM_CH #define DSHOT_CONF_TIM4 1 #define DSHOT_CONF4_DEF { \ @@ -536,29 +541,29 @@ #define DSHOT_SERVO_5_GPIO PAL_PORT(LINE_SRVA1) #define DSHOT_SERVO_5_PIN PAL_PAD(LINE_SRVA1) #define DSHOT_SERVO_5_AF AF_SRVA1 -#define DSHOT_SERVO_5_DRIVER DSHOTD1 -#define DSHOT_SERVO_5_CHANNEL 0 +#define DSHOT_SERVO_5_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SRVA1_TIM) +#define DSHOT_SERVO_5_CHANNEL SRVA1_TIM_CH #define DSHOT_SERVO_6 6 #define DSHOT_SERVO_6_GPIO PAL_PORT(LINE_SRVA2) #define DSHOT_SERVO_6_PIN PAL_PAD(LINE_SRVA2) #define DSHOT_SERVO_6_AF AF_SRVA2 -#define DSHOT_SERVO_6_DRIVER DSHOTD1 -#define DSHOT_SERVO_6_CHANNEL 1 +#define DSHOT_SERVO_6_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SRVA2_TIM) +#define DSHOT_SERVO_6_CHANNEL SRVA2_TIM_CH #define DSHOT_SERVO_7 7 #define DSHOT_SERVO_7_GPIO PAL_PORT(LINE_SRVA3) #define DSHOT_SERVO_7_PIN PAL_PAD(LINE_SRVA3) #define DSHOT_SERVO_7_AF AF_SRVA3 -#define DSHOT_SERVO_7_DRIVER DSHOTD1 -#define DSHOT_SERVO_7_CHANNEL 2 +#define DSHOT_SERVO_7_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SRVA3_TIM) +#define DSHOT_SERVO_7_CHANNEL SRVA3_TIM_CH #define DSHOT_SERVO_8 8 #define DSHOT_SERVO_8_GPIO PAL_PORT(LINE_SRVA4) #define DSHOT_SERVO_8_PIN PAL_PAD(LINE_SRVA4) #define DSHOT_SERVO_8_AF AF_SRVA4 -#define DSHOT_SERVO_8_DRIVER DSHOTD1 -#define DSHOT_SERVO_8_CHANNEL 3 +#define DSHOT_SERVO_8_DRIVER CONCAT_BOARD_PARAM(DSHOTD, SRVA4_TIM) +#define DSHOT_SERVO_8_CHANNEL SRVA4_TIM_CH #define DSHOT_CONF_TIM1 1 #define DSHOT_CONF1_DEF { \ @@ -577,7 +582,7 @@ #define UART2_GPIO_TX PAL_PAD(LINE_UART2_TX) #define UART2_GPIO_PORT_RX PAL_PORT(LINE_UART2_RX) #define UART2_GPIO_RX PAL_PAD(LINE_UART2_RX) -#define UART2_GPIO_AF 7 +#define UART2_GPIO_AF AF_UART2_TX #ifndef UART2_HW_FLOW_CONTROL #define UART2_HW_FLOW_CONTROL FALSE #endif @@ -591,13 +596,13 @@ #define UART3_GPIO_TX PAL_PAD(LINE_UART3_TX) #define UART3_GPIO_PORT_RX PAL_PORT(LINE_UART3_RX) #define UART3_GPIO_RX PAL_PAD(LINE_UART3_RX) -#define UART3_GPIO_AF 7 +#define UART3_GPIO_AF AF_UART3_TX #define UART7_GPIO_PORT_TX PAL_PORT(LINE_UART7_TX) #define UART7_GPIO_TX PAL_PAD(LINE_UART7_TX) #define UART7_GPIO_PORT_RX PAL_PORT(LINE_UART7_RX) #define UART7_GPIO_RX PAL_PAD(LINE_UART7_RX) -#define UART7_GPIO_AF 12 +#define UART7_GPIO_AF AF_UART7_TX /** * UART4 on AUXa (not configured by default) @@ -607,7 +612,7 @@ #define UART4_GPIO_TX PAL_PAD(LINE_AUX_A1) #define UART4_GPIO_PORT_RX PAL_PORT(LINE_AUX_A2) #define UART4_GPIO_RX PAL_PAD(LINE_AUX_A2) -#define UART4_GPIO_AF 8 +#define UART4_GPIO_AF AUX_A1_UART_AF /** * SBUS / Spektrum port @@ -628,14 +633,14 @@ #endif #define UART8_GPIO_PORT_RX PAL_PORT(LINE_RC1) #define UART8_GPIO_RX PAL_PAD(LINE_RC1) -#define UART8_GPIO_AF 8 +#define UART8_GPIO_AF RC1_UART_AF // FIXME when RC2 is used for FrSky telemetry #define USE_UART6_RX TRUE #define USE_UART6_TX FALSE #define UART6_GPIO_PORT_RX PAL_PORT(LINE_RC2) #define UART6_GPIO_RX PAL_PAD(LINE_RC2) -#define UART6_GPIO_AF 8 +#define UART6_GPIO_AF RC2_USART_AF /* The line that is pulled low at power up to initiate the bind process * PB1: AUXb4 @@ -653,8 +658,8 @@ */ #define RC_PPM_TICKS_PER_USEC 6 #define PPM_TIMER_FREQUENCY 6000000 -#define PPM_CHANNEL ICU_CHANNEL_1 -#define PPM_TIMER ICUD8 +#define PPM_CHANNEL CONCAT_BOARD_PARAM(ICU_CHANNEL_, RC2_TIM_CH) +#define PPM_TIMER CONCAT_BOARD_PARAM(ICUD, RC2_TIM) /* * PWM input @@ -736,7 +741,7 @@ */ // Internal SPI (IMU) -#define SPI4_GPIO_AF GPIO_AF5 +#define SPI4_GPIO_AF AF_SPI4_INTERNAL_CLK #define SPI4_GPIO_PORT_MISO PAL_PORT(LINE_SPI4_INTERNAL_MISO) #define SPI4_GPIO_MISO PAL_PAD(LINE_SPI4_INTERNAL_MISO) #define SPI4_GPIO_PORT_MOSI PAL_PORT(LINE_SPI4_INTERNAL_MOSI) @@ -745,7 +750,7 @@ #define SPI4_GPIO_SCK PAL_PAD(LINE_SPI4_INTERNAL_CLK) // External SPI -#define SPI2_GPIO_AF GPIO_AF5 +#define SPI2_GPIO_AF AF_SPI2_EXTERNAL_CLK #define SPI2_GPIO_PORT_MISO PAL_PORT(LINE_SPI2_EXTERNAL_MISO) #define SPI2_GPIO_MISO PAL_PAD(LINE_SPI2_EXTERNAL_MISO) #define SPI2_GPIO_PORT_MOSI PAL_PORT(LINE_SPI2_EXTERNAL_MOSI) @@ -797,10 +802,10 @@ #define SDIO_CK_PIN PAL_PAD(LINE_SDMMC1_CK) #define SDIO_CMD_PORT PAL_PORT(LINE_SDMMC1_CMD) #define SDIO_CMD_PIN PAL_PAD(LINE_SDMMC1_CMD) -#define SDIO_AF 12 +#define SDIO_AF AF_SDMMC1_CK // bat monitoring for file closing -#define SDLOG_BAT_ADC ADCD1 -#define SDLOG_BAT_CHAN ADC_CHANNEL_IN10 +#define SDLOG_BAT_ADC CONCAT_BOARD_PARAM(ADCD, VBAT_MEAS_ADC) +#define SDLOG_BAT_CHAN CONCAT_BOARD_PARAM(ADC_CHANNEL_IN, VBAT_MEAS_ADC_IN) // usb led status #define SDLOG_USB_LED 4 #define SDLOG_USB_VBUS_PORT PAL_PORT(LINE_USB_VBUS) diff --git a/sw/airborne/boards/tawaki/chibios/v1.0/board.h b/sw/airborne/boards/tawaki/chibios/v1.0/board.h index 918a5cc929..829ed57309 100644 --- a/sw/airborne/boards/tawaki/chibios/v1.0/board.h +++ b/sw/airborne/boards/tawaki/chibios/v1.0/board.h @@ -1547,6 +1547,120 @@ #define AF_LINE_OSC_OUT 0U +#define AUX_A1_ADC 1 +#define AUX_A1_ADC_FN IN +#define AUX_A1_ADC_IN 0 +#define AUX_A1_TIM 5 +#define AUX_A1_TIM_FN CH +#define AUX_A1_TIM_CH 1 +#define AUX_A1_TIM_AF 2 +#define AUX_A1_UART 4 +#define AUX_A1_UART_FN TX +#define AUX_A1_UART_AF 8 +#define AUX_A1_USART 2 +#define AUX_A1_USART_FN CTS +#define AUX_A1_USART_AF 7 +#define AUX_A2_ADC 1 +#define AUX_A2_ADC_FN IN +#define AUX_A2_ADC_IN 1 +#define AUX_A2_TIM 5 +#define AUX_A2_TIM_FN CH +#define AUX_A2_TIM_CH 2 +#define AUX_A2_TIM_AF 2 +#define AUX_A2_UART 4 +#define AUX_A2_UART_FN RX +#define AUX_A2_UART_AF 8 +#define AUX_A2_USART 2 +#define AUX_A2_USART_FN RTS +#define AUX_A2_USART_AF 7 +#define AUX_A3_ADC 1 +#define AUX_A3_ADC_FN IN +#define AUX_A3_ADC_IN 2 +#define AUX_A3_TIM 5 +#define AUX_A3_TIM_FN CH +#define AUX_A3_TIM_CH 3 +#define AUX_A3_TIM_AF 2 +#define AUX_B1_ADC 1 +#define AUX_B1_ADC_FN IN +#define AUX_B1_ADC_IN 3 +#define AUX_B1_TIM 5 +#define AUX_B1_TIM_FN CH +#define AUX_B1_TIM_CH 4 +#define AUX_B1_TIM_AF 2 +#define AUX_A4_ADC 1 +#define AUX_A4_ADC_FN IN +#define AUX_A4_ADC_IN 6 +#define AUX_A4_TIM 3 +#define AUX_A4_TIM_FN CH +#define AUX_A4_TIM_CH 1 +#define AUX_A4_TIM_AF 2 +#define AUX_B2_ADC 1 +#define AUX_B2_ADC_FN IN +#define AUX_B2_ADC_IN 7 +#define AUX_B2_TIM 3 +#define AUX_B2_TIM_FN CH +#define AUX_B2_TIM_CH 2 +#define AUX_B2_TIM_AF 2 +#define AUX_B3_ADC 1 +#define AUX_B3_ADC_FN IN +#define AUX_B3_ADC_IN 8 +#define AUX_B3_TIM 3 +#define AUX_B3_TIM_FN CH +#define AUX_B3_TIM_CH 3 +#define AUX_B3_TIM_AF 2 +#define AUX_B4_ADC 1 +#define AUX_B4_ADC_FN IN +#define AUX_B4_ADC_IN 9 +#define AUX_B4_TIM 3 +#define AUX_B4_TIM_FN CH +#define AUX_B4_TIM_CH 4 +#define AUX_B4_TIM_AF 2 +#define SRVB1_TIM 4 +#define SRVB1_TIM_FN CH +#define SRVB1_TIM_CH 1 +#define SRVB1_TIM_AF 2 +#define SRVB2_TIM 4 +#define SRVB2_TIM_FN CH +#define SRVB2_TIM_CH 2 +#define SRVB2_TIM_AF 2 +#define SRVB3_TIM 4 +#define SRVB3_TIM_FN CH +#define SRVB3_TIM_CH 3 +#define SRVB3_TIM_AF 2 +#define SRVB4_TIM 4 +#define SRVB4_TIM_FN CH +#define SRVB4_TIM_CH 4 +#define SRVB4_TIM_AF 2 +#define VBAT_MEAS_ADC 1 +#define VBAT_MEAS_ADC_FN IN +#define VBAT_MEAS_ADC_IN 1 +#define RC2_TIM 8 +#define RC2_TIM_FN CH +#define RC2_TIM_CH 1 +#define RC2_TIM_AF 3 +#define RC2_USART 6 +#define RC2_USART_FN TX +#define RC2_USART_AF 8 +#define RC1_UART 8 +#define RC1_UART_FN RX +#define RC1_UART_AF 8 +#define SRVA1_TIM 1 +#define SRVA1_TIM_FN CH +#define SRVA1_TIM_CH 1 +#define SRVA1_TIM_AF 1 +#define SRVA2_TIM 1 +#define SRVA2_TIM_FN CH +#define SRVA2_TIM_CH 2 +#define SRVA2_TIM_AF 1 +#define SRVA3_TIM 1 +#define SRVA3_TIM_FN CH +#define SRVA3_TIM_CH 3 +#define SRVA3_TIM_AF 1 +#define SRVA4_TIM 1 +#define SRVA4_TIM_FN CH +#define SRVA4_TIM_CH 4 +#define SRVA4_TIM_AF 1 + #if !defined(_FROM_ASM_) #ifdef __cplusplus extern "C" { diff --git a/sw/airborne/boards/tawaki/chibios/v1.0/tawaki_1.0.cfg b/sw/airborne/boards/tawaki/chibios/v1.0/tawaki_1.0.cfg index 2c628acb69..c2ca0ad0cc 100644 --- a/sw/airborne/boards/tawaki/chibios/v1.0/tawaki_1.0.cfg +++ b/sw/airborne/boards/tawaki/chibios/v1.0/tawaki_1.0.cfg @@ -75,34 +75,34 @@ DEFAULT INPUT PUSHPULL SPEED_VERYLOW PULLDOWN LEVEL_LOW AF0 -PA00 AUX_A1 PASSIVE #AF:USART2_CTS -PA01 AUX_A2 PASSIVE #AF:USART2_RTS -PA02 AUX_A3 PASSIVE #AF:TIM9_CH1 -PA03 AUX_B1 PASSIVE #AF:TIM9_CH2 -PA06 AUX_A4 PASSIVE #AF:TIM13_CH1 -PA07 AUX_B2 PASSIVE #AF:TIM14_CH1 +PA00 AUX_A1 PASSIVE (ADC1_IN0, AF:TIM5_CH1, AF:UART4_TX, AF:USART2_CTS) +PA01 AUX_A2 PASSIVE (ADC1_IN1, AF:TIM5_CH2, AF:UART4_RX, AF:USART2_RTS) +PA02 AUX_A3 PASSIVE (ADC1_IN2, AF:TIM5_CH3) #AF:TIM9_CH1 +PA03 AUX_B1 PASSIVE (ADC1_IN3, AF:TIM5_CH4) #AF:TIM9_CH2 +PA06 AUX_A4 PASSIVE (ADC1_IN6, AF:TIM3_CH1) #AF:TIM13_CH1 +PA07 AUX_B2 PASSIVE (ADC1_IN7, AF:TIM3_CH2) #AF:TIM14_CH1 PA09 USB_VBUS INPUT PULLDOWN PA10 LED2 LED PA11 OTG_FS_DM OTG AF:USB_OTG_FS_DM PA12 OTG_FS_DP OTG AF:USB_OTG_FS_DP PA15 UART7_TX UART AF:UART7_TX -PB00 AUX_B3 PASSIVE -PB01 AUX_B4 PASSIVE +PB00 AUX_B3 PASSIVE (ADC1_IN8, AF:TIM3_CH3) +PB01 AUX_B4 PASSIVE (ADC1_IN9, AF:TIM3_CH4) PB03 UART7_RX UART AF:UART7_RX PB05 DSHOT_RX UART AF:UART5_RX -PB06 SRVB1 PWM AF:TIM4_CH1 -PB07 SRVB2 PWM AF:TIM4_CH2 -PB08 SRVB3 PWM AF:TIM4_CH3 -PB09 SRVB4 PWM AF:TIM4_CH4 +PB06 SRVB1 PWM AF:TIM4_CH1 () +PB07 SRVB2 PWM AF:TIM4_CH2 () +PB08 SRVB3 PWM AF:TIM4_CH3 () +PB09 SRVB4 PWM AF:TIM4_CH4 () PB10 I2C2_SCL_EXTERNAL I2C AF:I2C2_SCL PB11 I2C2_SDA_EXTERNAL I2C AF:I2C2_SDA PB12 SPI2_EXTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH PB14 SPI2_EXTERNAL_MISO SPI AF:SPI2_MISO PB15 SPI2_EXTERNAL_MOSI SPI AF:SPI2_MOSI -PC00 VBAT_MEAS ADC ADC1_IN10 -PC06 RC2 PASSIVE #TLMF_TX6 UART AF:USART6_TX +PC00 VBAT_MEAS ADC ADC1_IN10 () +PC06 RC2 PASSIVE (AF:TIM8_CH1, AF:USART6_TX) #TLMF_TX6 UART AF:USART6_TX PC07 LED3 LED PC08 SDMMC1_D0 SDIO AF:SDMMC1_D0 PC09 SDMMC1_D1 SDIO AF:SDMMC1_D1 @@ -125,15 +125,15 @@ PD12 I2C4_SCL_EXTERNAL I2C AF:I2C4_SCL PD13 I2C4_SDA_EXTERNAL I2C AF:I2C4_SDA PD15 LED1 LED -PE00 RC1 UART AF:UART8_RX +PE00 RC1 UART AF:UART8_RX () PE02 SPI4_INTERNAL_CLK SPI AF:SPI4_SCK PE04 SPI4_INTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH PE05 SPI4_INTERNAL_MISO SPI AF:SPI4_MISO PE06 SPI4_INTERNAL_MOSI SPI AF:SPI4_MOSI -PE09 SRVA1 PWM AF:TIM1_CH1 -PE11 SRVA2 PWM AF:TIM1_CH2 -PE13 SRVA3 PWM AF:TIM1_CH3 -PE14 SRVA4 PWM AF:TIM1_CH4 +PE09 SRVA1 PWM AF:TIM1_CH1 () +PE11 SRVA2 PWM AF:TIM1_CH2 () +PE13 SRVA3 PWM AF:TIM1_CH3 () +PE14 SRVA4 PWM AF:TIM1_CH4 () diff --git a/sw/airborne/boards/tawaki/chibios/v1.1/board.h b/sw/airborne/boards/tawaki/chibios/v1.1/board.h index de35fc2e0e..235c16be70 100644 --- a/sw/airborne/boards/tawaki/chibios/v1.1/board.h +++ b/sw/airborne/boards/tawaki/chibios/v1.1/board.h @@ -1547,6 +1547,120 @@ #define AF_LINE_OSC_OUT 0U +#define AUX_A1_ADC 1 +#define AUX_A1_ADC_FN IN +#define AUX_A1_ADC_IN 0 +#define AUX_A1_TIM 5 +#define AUX_A1_TIM_FN CH +#define AUX_A1_TIM_CH 1 +#define AUX_A1_TIM_AF 2 +#define AUX_A1_UART 4 +#define AUX_A1_UART_FN TX +#define AUX_A1_UART_AF 8 +#define AUX_A1_USART 2 +#define AUX_A1_USART_FN CTS +#define AUX_A1_USART_AF 7 +#define AUX_A2_ADC 1 +#define AUX_A2_ADC_FN IN +#define AUX_A2_ADC_IN 1 +#define AUX_A2_TIM 5 +#define AUX_A2_TIM_FN CH +#define AUX_A2_TIM_CH 2 +#define AUX_A2_TIM_AF 2 +#define AUX_A2_UART 4 +#define AUX_A2_UART_FN RX +#define AUX_A2_UART_AF 8 +#define AUX_A2_USART 2 +#define AUX_A2_USART_FN RTS +#define AUX_A2_USART_AF 7 +#define AUX_A3_ADC 1 +#define AUX_A3_ADC_FN IN +#define AUX_A3_ADC_IN 2 +#define AUX_A3_TIM 5 +#define AUX_A3_TIM_FN CH +#define AUX_A3_TIM_CH 3 +#define AUX_A3_TIM_AF 2 +#define AUX_A4_ADC 1 +#define AUX_A4_ADC_FN IN +#define AUX_A4_ADC_IN 3 +#define AUX_A4_TIM 5 +#define AUX_A4_TIM_FN CH +#define AUX_A4_TIM_CH 4 +#define AUX_A4_TIM_AF 2 +#define AUX_B1_ADC 1 +#define AUX_B1_ADC_FN IN +#define AUX_B1_ADC_IN 6 +#define AUX_B1_TIM 3 +#define AUX_B1_TIM_FN CH +#define AUX_B1_TIM_CH 1 +#define AUX_B1_TIM_AF 2 +#define AUX_B2_ADC 1 +#define AUX_B2_ADC_FN IN +#define AUX_B2_ADC_IN 7 +#define AUX_B2_TIM 3 +#define AUX_B2_TIM_FN CH +#define AUX_B2_TIM_CH 2 +#define AUX_B2_TIM_AF 2 +#define AUX_B3_ADC 1 +#define AUX_B3_ADC_FN IN +#define AUX_B3_ADC_IN 8 +#define AUX_B3_TIM 3 +#define AUX_B3_TIM_FN CH +#define AUX_B3_TIM_CH 3 +#define AUX_B3_TIM_AF 2 +#define AUX_B4_ADC 1 +#define AUX_B4_ADC_FN IN +#define AUX_B4_ADC_IN 9 +#define AUX_B4_TIM 3 +#define AUX_B4_TIM_FN CH +#define AUX_B4_TIM_CH 4 +#define AUX_B4_TIM_AF 2 +#define SRVB1_TIM 4 +#define SRVB1_TIM_FN CH +#define SRVB1_TIM_CH 1 +#define SRVB1_TIM_AF 2 +#define SRVB2_TIM 4 +#define SRVB2_TIM_FN CH +#define SRVB2_TIM_CH 2 +#define SRVB2_TIM_AF 2 +#define SRVB3_TIM 4 +#define SRVB3_TIM_FN CH +#define SRVB3_TIM_CH 3 +#define SRVB3_TIM_AF 2 +#define SRVB4_TIM 4 +#define SRVB4_TIM_FN CH +#define SRVB4_TIM_CH 4 +#define SRVB4_TIM_AF 2 +#define VBAT_MEAS_ADC 1 +#define VBAT_MEAS_ADC_FN IN +#define VBAT_MEAS_ADC_IN 1 +#define RC2_TIM 8 +#define RC2_TIM_FN CH +#define RC2_TIM_CH 1 +#define RC2_TIM_AF 3 +#define RC2_USART 6 +#define RC2_USART_FN TX +#define RC2_USART_AF 8 +#define RC1_UART 8 +#define RC1_UART_FN RX +#define RC1_UART_AF 8 +#define SRVA1_TIM 1 +#define SRVA1_TIM_FN CH +#define SRVA1_TIM_CH 1 +#define SRVA1_TIM_AF 1 +#define SRVA2_TIM 1 +#define SRVA2_TIM_FN CH +#define SRVA2_TIM_CH 2 +#define SRVA2_TIM_AF 1 +#define SRVA3_TIM 1 +#define SRVA3_TIM_FN CH +#define SRVA3_TIM_CH 3 +#define SRVA3_TIM_AF 1 +#define SRVA4_TIM 1 +#define SRVA4_TIM_FN CH +#define SRVA4_TIM_CH 4 +#define SRVA4_TIM_AF 1 + #if !defined(_FROM_ASM_) #ifdef __cplusplus extern "C" { diff --git a/sw/airborne/boards/tawaki/chibios/v1.1/tawaki_1.1.cfg b/sw/airborne/boards/tawaki/chibios/v1.1/tawaki_1.1.cfg index 584beb1bd0..6c5b6bc90b 100644 --- a/sw/airborne/boards/tawaki/chibios/v1.1/tawaki_1.1.cfg +++ b/sw/airborne/boards/tawaki/chibios/v1.1/tawaki_1.1.cfg @@ -75,34 +75,34 @@ DEFAULT INPUT PUSHPULL SPEED_VERYLOW PULLDOWN LEVEL_LOW AF0 -PA00 AUX_A1 PASSIVE #AF:USART2_CTS -PA01 AUX_A2 PASSIVE #AF:USART2_RTS -PA02 AUX_A3 PASSIVE #AF:TIM9_CH1 -PA03 AUX_A4 PASSIVE #AF:TIM9_CH2 -PA06 AUX_B1 PASSIVE #AF:TIM13_CH1 -PA07 AUX_B2 PASSIVE #AF:TIM14_CH1 +PA00 AUX_A1 PASSIVE (ADC1_IN0, AF:TIM5_CH1, AF:UART4_TX, AF:USART2_CTS) +PA01 AUX_A2 PASSIVE (ADC1_IN1, AF:TIM5_CH2, AF:UART4_RX, AF:USART2_RTS) +PA02 AUX_A3 PASSIVE (ADC1_IN2, AF:TIM5_CH3) #AF:TIM9_CH1 +PA03 AUX_A4 PASSIVE (ADC1_IN3, AF:TIM5_CH4) #AF:TIM9_CH2 +PA06 AUX_B1 PASSIVE (ADC1_IN6, AF:TIM3_CH1) #AF:TIM13_CH1 +PA07 AUX_B2 PASSIVE (ADC1_IN7, AF:TIM3_CH2) #AF:TIM14_CH1 PA09 USB_VBUS INPUT PULLDOWN -PA10 LED2 LED +PA10 LED2 LED PA11 OTG_FS_DM OTG AF:USB_OTG_FS_DM PA12 OTG_FS_DP OTG AF:USB_OTG_FS_DP PA15 UART7_TX UART AF:UART7_TX -PB00 AUX_B3 PASSIVE -PB01 AUX_B4 PASSIVE +PB00 AUX_B3 PASSIVE (ADC1_IN8, AF:TIM3_CH3) +PB01 AUX_B4 PASSIVE (ADC1_IN9, AF:TIM3_CH4) PB03 UART7_RX UART AF:UART7_RX PB05 DSHOT_RX UART AF:UART5_RX -PB06 SRVB1 PWM AF:TIM4_CH1 -PB07 SRVB2 PWM AF:TIM4_CH2 -PB08 SRVB3 PWM AF:TIM4_CH3 -PB09 SRVB4 PWM AF:TIM4_CH4 +PB06 SRVB1 PWM AF:TIM4_CH1 () +PB07 SRVB2 PWM AF:TIM4_CH2 () +PB08 SRVB3 PWM AF:TIM4_CH3 () +PB09 SRVB4 PWM AF:TIM4_CH4 () PB10 I2C2_SCL_EXTERNAL I2C AF:I2C2_SCL PB11 I2C2_SDA_EXTERNAL I2C AF:I2C2_SDA PB12 SPI2_EXTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH PB14 SPI2_EXTERNAL_MISO SPI AF:SPI2_MISO PB15 SPI2_EXTERNAL_MOSI SPI AF:SPI2_MOSI -PC00 VBAT_MEAS ADC ADC1_IN10 -PC06 RC2 PASSIVE #TLMF_TX6 UART AF:USART6_TX +PC00 VBAT_MEAS ADC ADC1_IN10 () +PC06 RC2 PASSIVE (AF:TIM8_CH1, AF:USART6_TX) #TLMF_TX6 UART AF:USART6_TX PC07 LED3 LED PC08 SDMMC1_D0 SDIO AF:SDMMC1_D0 PC09 SDMMC1_D1 SDIO AF:SDMMC1_D1 @@ -125,15 +125,15 @@ PD12 I2C4_SCL_EXTERNAL I2C AF:I2C4_SCL PD13 I2C4_SDA_EXTERNAL I2C AF:I2C4_SDA PD15 LED1 LED -PE00 RC1 UART AF:UART8_RX +PE00 RC1 UART AF:UART8_RX () PE02 SPI4_INTERNAL_CLK SPI AF:SPI4_SCK PE04 SPI4_INTERNAL_CS OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH PE05 SPI4_INTERNAL_MISO SPI AF:SPI4_MISO PE06 SPI4_INTERNAL_MOSI SPI AF:SPI4_MOSI -PE09 SRVA1 PWM AF:TIM1_CH1 -PE11 SRVA2 PWM AF:TIM1_CH2 -PE13 SRVA3 PWM AF:TIM1_CH3 -PE14 SRVA4 PWM AF:TIM1_CH4 +PE09 SRVA1 PWM AF:TIM1_CH1 () +PE11 SRVA2 PWM AF:TIM1_CH2 () +PE13 SRVA3 PWM AF:TIM1_CH3 () +PE14 SRVA4 PWM AF:TIM1_CH4 ()