From e34ad5d6c2c1616f21c13abd2e68d1277b267ca8 Mon Sep 17 00:00:00 2001 From: jflyper Date: Fri, 10 Feb 2017 16:05:15 +0900 Subject: [PATCH] Force two software serial ports --- src/main/target/AIRHEROF3/target.h | 11 ++--- src/main/target/BETAFLIGHTF3/target.h | 4 +- src/main/target/BLUEJAYF4/target.h | 11 ++--- src/main/target/CC3D/target.h | 6 +-- src/main/target/FURYF3/target.h | 5 +- src/main/target/ISHAPEDF3/target.h | 11 ++--- src/main/target/KISSFC/target.h | 6 ++- src/main/target/MULTIFLITEPICO/target.h | 11 ++--- src/main/target/NAZE/target.h | 11 ++--- src/main/target/OMNIBUS/target.h | 3 +- src/main/target/OMNIBUSF4/target.h | 14 +----- src/main/target/REVO/target.h | 5 +- src/main/target/SINGULARITY/target.h | 6 +-- src/main/target/SPRACINGF3/target.h | 12 ++--- src/main/target/SPRACINGF3MINI/target.h | 13 +++-- src/main/target/VRRACE/target.h | 5 +- src/main/target/X_RACERSPI/target.h | 5 +- src/main/target/common_post.h | 66 +++++++++++++++++++++++++ 18 files changed, 124 insertions(+), 81 deletions(-) diff --git a/src/main/target/AIRHEROF3/target.h b/src/main/target/AIRHEROF3/target.h index 7e88ffe13d..9810a59457 100755 --- a/src/main/target/AIRHEROF3/target.h +++ b/src/main/target/AIRHEROF3/target.h @@ -63,12 +63,11 @@ #define USE_ESCSERIAL #define ESCSERIAL_TIMER_TX_HARDWARE 0 // PWM 1 -#define SOFTSERIAL_1_TIMER TIM3 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 4 // PWM 5 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 5 // PWM 6 -#define SOFTSERIAL_2_TIMER TIM3 -#define SOFTSERIAL_2_TIMER_RX_HARDWARE 6 // PWM 7 -#define SOFTSERIAL_2_TIMER_TX_HARDWARE 7 // PWM 8 +#define SOFTSERIAL1_RX_PIN PA6 // PWM 5 +#define SOFTSERIAL1_TX_PIN PA7 // PWM 6 + +#define SOFTSERIAL2_RX_PIN PB6 // PWM 7 +#define SOFTSERIAL2_TX_PIN PB1 // PWM 8 #define UART1_TX_PIN PA9 #define UART1_RX_PIN PA10 diff --git a/src/main/target/BETAFLIGHTF3/target.h b/src/main/target/BETAFLIGHTF3/target.h index 951e3f4814..59f5e1c003 100755 --- a/src/main/target/BETAFLIGHTF3/target.h +++ b/src/main/target/BETAFLIGHTF3/target.h @@ -70,8 +70,8 @@ #define UART3_TX_PIN PB10 #define UART3_RX_PIN PB11 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 6 // PWM 5 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 7 // PWM 6 +#define SOFTSERIAL1_RX_PIN PB0 // PWM 5 +#define SOFTSERIAL1_TX_PIN PB1 // PWM 6 #undef USE_I2C diff --git a/src/main/target/BLUEJAYF4/target.h b/src/main/target/BLUEJAYF4/target.h index db082c2e4b..845634e943 100644 --- a/src/main/target/BLUEJAYF4/target.h +++ b/src/main/target/BLUEJAYF4/target.h @@ -113,19 +113,14 @@ #define UART6_TX_PIN PC6 #define USE_SOFTSERIAL1 +#define SOFTSERIAL1_RX_PIN PB0 // PWM5 +#define SOFTSERIAL1_TX_PIN PB1 // PWM6 + #define SERIAL_PORT_COUNT 5 #define USE_ESCSERIAL #define ESCSERIAL_TIMER_TX_HARDWARE 0 // PWM 1 -#define SOFTSERIAL_1_TIMER TIM3 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 4 // PWM 5 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 5 // PWM 6 - - -#define USE_ESCSERIAL -#define ESCSERIAL_TIMER_TX_HARDWARE 0 - #define USE_SPI #define USE_SPI_DEVICE_1 diff --git a/src/main/target/CC3D/target.h b/src/main/target/CC3D/target.h index 9871d0cf46..9b1e75bbfb 100644 --- a/src/main/target/CC3D/target.h +++ b/src/main/target/CC3D/target.h @@ -76,6 +76,8 @@ #define SERIAL_PORT_COUNT 3 #else #define USE_SOFTSERIAL1 +#define SOFTSERIAL1_TX_PIN PB5 // PWM 2 +#define SOFTSERIAL1_RX_PIN PB0 // PWM 3 #define SERIAL_PORT_COUNT 4 #endif @@ -83,10 +85,6 @@ #undef USE_UART1_RX_DMA #endif -#define SOFTSERIAL_1_TIMER TIM3 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 1 // PWM 2 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 2 // PWM 3 - #define UART3_RX_PIN PB11 #define UART3_TX_PIN PB10 diff --git a/src/main/target/FURYF3/target.h b/src/main/target/FURYF3/target.h index 7bd8ee724e..a8c6c3663e 100644 --- a/src/main/target/FURYF3/target.h +++ b/src/main/target/FURYF3/target.h @@ -129,9 +129,8 @@ #define UART3_TX_PIN PB10 // PB10 (AF7) #define UART3_RX_PIN PB11 // PB11 (AF7) -#define SOFTSERIAL_1_TIMER TIM3 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 1 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 2 +#define SOFTSERIAL1_RX_PIN PB0 +#define SOFTSERIAL1_TX_PIN PB1 #define USE_I2C #define I2C_DEVICE (I2CDEV_1) // SDA (PB9/AF4), SCL (PB8/AF4) diff --git a/src/main/target/ISHAPEDF3/target.h b/src/main/target/ISHAPEDF3/target.h index c631a54172..ddcfc7d789 100644 --- a/src/main/target/ISHAPEDF3/target.h +++ b/src/main/target/ISHAPEDF3/target.h @@ -73,12 +73,11 @@ #define UART3_TX_PIN PB10 // PB10 (AF7) #define UART3_RX_PIN PB11 // PB11 (AF7) -#define SOFTSERIAL_1_TIMER TIM3 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 4 // PWM 5 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 5 // PWM 6 -#define SOFTSERIAL_2_TIMER TIM3 -#define SOFTSERIAL_2_TIMER_RX_HARDWARE 6 // PWM 7 -#define SOFTSERIAL_2_TIMER_TX_HARDWARE 7 // PWM 8 +#define SOFTSERIAL1_RX_PIN PB4 // PWM 5 +#define SOFTSERIAL1_TX_PIN PB5 // PWM 6 + +#define SOFTSERIAL2_RX_PIN PB0 // PWM 7 +#define SOFTSERIAL2_TX_PIN PB1 // PWM 8 #define USE_I2C #define I2C_DEVICE (I2CDEV_1) // PB6/SCL, PB7/SDA diff --git a/src/main/target/KISSFC/target.h b/src/main/target/KISSFC/target.h index acd455cb17..eeb4abc210 100644 --- a/src/main/target/KISSFC/target.h +++ b/src/main/target/KISSFC/target.h @@ -60,12 +60,11 @@ #define LED_STRIP #endif -#define USE_SOFTSERIAL #define USE_VCP #define USE_UART1 #define USE_UART2 #define USE_UART3 -#define SERIAL_PORT_COUNT 5 +#define SERIAL_PORT_COUNT 4 #define UART1_TX_PIN PA9 #define UART1_RX_PIN PA10 @@ -76,10 +75,13 @@ #define UART3_TX_PIN PB10 // PB10 (AF7) #define UART3_RX_PIN PB11 // PB11 (AF7) +// XXX 11 is out of bound +/* #ifdef KISSCC #define SOFTSERIAL_1_TIMER_RX_HARDWARE 11 #define SOFTSERIAL_1_TIMER_TX_HARDWARE 11 #endif +*/ #define USE_I2C #define I2C_DEVICE (I2CDEV_1) // PB6/SCL, PB7/SDA diff --git a/src/main/target/MULTIFLITEPICO/target.h b/src/main/target/MULTIFLITEPICO/target.h index 6ebc86e4e7..4727248757 100755 --- a/src/main/target/MULTIFLITEPICO/target.h +++ b/src/main/target/MULTIFLITEPICO/target.h @@ -81,12 +81,11 @@ #define UART3_RX_PIN PB11 // PB11 (AF7) /* -#define SOFTSERIAL_1_TIMER TIM3 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 4 // PWM 5 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 5 // PWM 6 -#define SOFTSERIAL_2_TIMER TIM3 -#define SOFTSERIAL_2_TIMER_RX_HARDWARE 6 // PWM 7 -#define SOFTSERIAL_2_TIMER_TX_HARDWARE 7 // PWM 8 +#define SOFTSERIAL1_RX_PIN PB4 // PWM 5 +#define SOFTSERIAL1_TX_PIN PB5 // PWM 6 + +#define SOFTSERIAL2_RX_PIN PB0 // PWM 7 +#define SOFTSERIAL2_TX_PIN PB1 // PWM 8 */ #define USE_I2C diff --git a/src/main/target/NAZE/target.h b/src/main/target/NAZE/target.h index b9cc396a3a..9f992744c1 100644 --- a/src/main/target/NAZE/target.h +++ b/src/main/target/NAZE/target.h @@ -125,12 +125,11 @@ #define USE_SOFTSERIAL2 #define SERIAL_PORT_COUNT 4 -#define SOFTSERIAL_1_TIMER TIM3 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 4 // PWM 5 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 5 // PWM 6 -#define SOFTSERIAL_2_TIMER TIM3 -#define SOFTSERIAL_2_TIMER_RX_HARDWARE 6 // PWM 7 -#define SOFTSERIAL_2_TIMER_TX_HARDWARE 7 // PWM 8 +#define SOFTSERIAL1_RX_PIN PA6 // PWM 5 +#define SOFTSERIAL1_TX_PIN PA7 // PWM 6 + +#define SOFTSERIAL2_RX_PIN PB0 // PWM 7 +#define SOFTSERIAL2_TX_PIN PB1 // PWM 8 #define UART3_RX_PIN PB11 #define UART3_TX_PIN PB10 diff --git a/src/main/target/OMNIBUS/target.h b/src/main/target/OMNIBUS/target.h index bc56b8c318..35fe1e4965 100644 --- a/src/main/target/OMNIBUS/target.h +++ b/src/main/target/OMNIBUS/target.h @@ -68,8 +68,7 @@ #define USE_UART1 #define USE_UART2 #define USE_UART3 -#define USE_SOFTSERIAL1 -#define SERIAL_PORT_COUNT 5 +#define SERIAL_PORT_COUNT 4 #define UART1_TX_PIN PA9 #define UART1_RX_PIN PA10 diff --git a/src/main/target/OMNIBUSF4/target.h b/src/main/target/OMNIBUSF4/target.h index 3d6e36c268..bc175d46bd 100644 --- a/src/main/target/OMNIBUSF4/target.h +++ b/src/main/target/OMNIBUSF4/target.h @@ -125,19 +125,7 @@ #define UART6_RX_PIN PC7 #define UART6_TX_PIN PC6 -#define USE_SOFTSERIAL1 -//#define SOFTSERIAL1_RX_PIN PC8 // S5_IN (TIM8 CH3) -//#define SOFTSERIAL1_TX_PIN PC9 // S6_IN (TIM8 CH4) - -#define USE_SOFTSERIAL2 -// Special case of using different timers for RX and TX -//#define SOFTSERIAL2_RX_PIN PA1 // PWM5, LED_STRIP -//#define SOFTSERIAL2_TX_PIN PA8 // PWM6 -// Experimental (untested) -//#define SOFTSERIAL2_RX_PIN PA8 // PWM6 -//#define SOFTSERIAL2_TX_PIN PB15 // S2_IN - -#define SERIAL_PORT_COUNT 6 //VCP, USART1, USART3, USART6, SOFTSERIALx2 +#define SERIAL_PORT_COUNT 4 //VCP, USART1, USART3, USART6 #define USE_ESCSERIAL #define ESCSERIAL_TIMER_TX_HARDWARE 0 // PWM 1 diff --git a/src/main/target/REVO/target.h b/src/main/target/REVO/target.h index a257860c9b..a93fdc3813 100644 --- a/src/main/target/REVO/target.h +++ b/src/main/target/REVO/target.h @@ -157,10 +157,7 @@ #define UART6_RX_PIN PC7 #define UART6_TX_PIN PC6 -#define USE_SOFTSERIAL1 -#define USE_SOFTSERIAL2 - -#define SERIAL_PORT_COUNT 6 //VCP, USART1, USART3, USART6, SOFTSERIALx2 +#define SERIAL_PORT_COUNT 4 //VCP, USART1, USART3, USART6 #define USE_ESCSERIAL #define ESCSERIAL_TIMER_TX_HARDWARE 0 // PWM 1 diff --git a/src/main/target/SINGULARITY/target.h b/src/main/target/SINGULARITY/target.h index 498c2a765a..b2dd548633 100644 --- a/src/main/target/SINGULARITY/target.h +++ b/src/main/target/SINGULARITY/target.h @@ -59,10 +59,8 @@ #define UART3_TX_PIN PB10 #define UART3_RX_PIN PB11 - -#define SOFTSERIAL_1_TIMER TIM15 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 7 //Not connected -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 8 +#define SOFTSERIAL1_RX_PIN PA2 //Not connected +#define SOFTSERIAL1_TX_PIN PA3 #define USE_I2C #define I2C_DEVICE (I2CDEV_1) // PB6/SCL, PB7/SDA diff --git a/src/main/target/SPRACINGF3/target.h b/src/main/target/SPRACINGF3/target.h index 644e81e7aa..1649af95bc 100644 --- a/src/main/target/SPRACINGF3/target.h +++ b/src/main/target/SPRACINGF3/target.h @@ -135,12 +135,12 @@ #define USE_SOFTSERIAL2 #define SERIAL_PORT_COUNT 5 -#define SOFTSERIAL_1_TIMER TIM3 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 4 // PWM 5 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 5 // PWM 6 -#define SOFTSERIAL_2_TIMER TIM3 -#define SOFTSERIAL_2_TIMER_RX_HARDWARE 6 // PWM 7 -#define SOFTSERIAL_2_TIMER_TX_HARDWARE 7 // PWM 8 +#define SOFTSERIAL1_RX_PIN PB4 // PWM 5 +#define SOFTSERIAL1_TX_PIN PB5 // PWM 6 + +#define SOFTSERIAL2_RX_PIN PB0 // PWM 7 +#define SOFTSERIAL2_TX_PIN PB1 // PWM 8 + #define SONAR_SOFTSERIAL2_EXCLUSIVE #endif diff --git a/src/main/target/SPRACINGF3MINI/target.h b/src/main/target/SPRACINGF3MINI/target.h index ebff516b0e..7c7c4c8d83 100644 --- a/src/main/target/SPRACINGF3MINI/target.h +++ b/src/main/target/SPRACINGF3MINI/target.h @@ -92,8 +92,13 @@ #define USE_UART1 #define USE_UART2 #define USE_UART3 + +#ifdef TINYBEEF3 +#define SERIAL_PORT_COUNT 4 +#else #define USE_SOFTSERIAL1 #define SERIAL_PORT_COUNT 5 +#endif #define USE_ESCSERIAL #define ESCSERIAL_TIMER_TX_HARDWARE 0 // PWM 1 @@ -107,9 +112,11 @@ #define UART3_TX_PIN PB10 // PB10 (AF7) #define UART3_RX_PIN PB11 // PB11 (AF7) -#define SOFTSERIAL_1_TIMER TIM2 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 9 // PA0 / PAD3 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 10 // PA1 / PAD4 +#ifndef TINYBEEF3 +#define SOFTSERIAL1_RX_PIN PA0 // PA0 / PAD3 +#define SOFTSERIAL1_TX_PIN PA1 // PA1 / PAD4 +#endif + #define SONAR_SOFTSERIAL1_EXCLUSIVE #define USE_I2C diff --git a/src/main/target/VRRACE/target.h b/src/main/target/VRRACE/target.h index fa27f4785d..7c2e6803c4 100644 --- a/src/main/target/VRRACE/target.h +++ b/src/main/target/VRRACE/target.h @@ -116,9 +116,8 @@ #define USE_SOFTSERIAL1 -#define SOFTSERIAL_1_TIMER TIM1 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 2 // PWM 3 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 1 // PWM 2 +#define SOFTSERIAL1_RX_PIN PE13 // PWM 3 +#define SOFTSERIAL1_TX_PIN PE11 // PWM 2 #define SERIAL_PORT_COUNT 6 //VCP, USART1, USART2, USART3, USART6, SOFTSERIAL1 #define USE_ESCSERIAL diff --git a/src/main/target/X_RACERSPI/target.h b/src/main/target/X_RACERSPI/target.h index f62d0ff86a..c9d50095fc 100644 --- a/src/main/target/X_RACERSPI/target.h +++ b/src/main/target/X_RACERSPI/target.h @@ -68,9 +68,8 @@ #define UART3_TX_PIN PB10 // PB10 (AF7) #define UART3_RX_PIN PB11 // PB11 (AF7) -#define SOFTSERIAL_1_TIMER TIM3 -#define SOFTSERIAL_1_TIMER_RX_HARDWARE 4 // PWM 5 -#define SOFTSERIAL_1_TIMER_TX_HARDWARE 5 // PWM 6 +#define SOFTSERIAL1_RX_PIN PB0 // PWM 5 +#define SOFTSERIAL1_TX_PIN PB1 // PWM 6 #define SONAR_SOFTSERIAL1_EXCLUSIVE #define USE_I2C diff --git a/src/main/target/common_post.h b/src/main/target/common_post.h index 7a089ebff7..2364c69044 100644 --- a/src/main/target/common_post.h +++ b/src/main/target/common_post.h @@ -26,3 +26,69 @@ # undef VTX_SMARTAUDIO # undef VTX_TRAMP #endif + +// Forced configuration of two software serials and SERIAL_PORT_COUNT recalc +#ifndef USE_SOFTSERIAL1 +# define USE_SOFTSERIAL1 +#endif + +#ifndef USE_SOFTSERIAL2 +# define USE_SOFTSERIAL2 +#endif + +#ifdef USE_VCP +# define N_VCP 1 +#else +# define N_VCP 0 +#endif + +#ifdef USE_UART1 + #define N_UART1 1 +#else + #define N_UART1 0 +#endif + +#ifdef USE_UART2 + #define N_UART2 1 +#else + #define N_UART2 0 +#endif + +#ifdef USE_UART3 + #define N_UART3 1 +#else + #define N_UART3 0 +#endif + +#ifdef USE_UART4 + #define N_UART4 1 +#else + #define N_UART4 0 +#endif + +#ifdef USE_UART5 + #define N_UART5 1 +#else + #define N_UART5 0 +#endif + +#ifdef USE_UART6 + #define N_UART6 1 +#else + #define N_UART6 0 +#endif + +#ifdef USE_SOFTSERIAL1 + #define N_SSERIAL1 1 +#else + #define N_SSERIAL1 0 +#endif + +#ifdef USE_SOFTSERIAL2 + #define N_SSERIAL2 1 +#else + #define N_SSERIAL2 0 +#endif + +#undef SERIAL_PORT_COUNT +#define SERIAL_PORT_COUNT (N_VCP + N_UART1 + N_UART2 + N_UART3 + N_UART4 + N_UART5 + N_UART6 + N_SSERIAL1 + N_SSERIAL2)