1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-24 16:55:36 +03:00

Timer mapping rework

- UART backdoors are added for maximum flexibility.
- PPM is assigned to TIM10_CH1 to avoid colliding with LED strip.
- Motors 5 and 6 (S5_OUT and S6_OUT) removed, as they are not wired.
- Backdoor on UART6 are removed, as timers on these pins conflict with
motors (TIM3 and TIM8).
- target.h has been modified to accommodate these changes.
This commit is contained in:
jflyper 2017-09-19 16:03:07 +09:00
parent c4e47ddede
commit 4e867c00bc
2 changed files with 23 additions and 18 deletions

View file

@ -25,15 +25,22 @@
#include "drivers/timer_def.h"
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM10, CH1, PB8, TIM_USE_PWM | TIM_USE_PPM, TIMER_OUTPUT_NONE, 0), // PPM
DEF_TIM(TIM4, CH3, PB8, TIM_USE_PWM | TIM_USE_PPM, TIMER_OUTPUT_NONE, 0), // PPM
// Motors
DEF_TIM(TIM3, CH3, PB0, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S1_OUT D1_ST7
DEF_TIM(TIM3, CH4, PB1, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S2_OUT D1_ST2
DEF_TIM(TIM8, CH4, PC9, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S3_OUT D1_ST6
DEF_TIM(TIM8, CH3, PC8, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S4_OUT D1_ST1
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S5_OUT
DEF_TIM(TIM3, CH2, PA1, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S6_OUT D1_ST2
DEF_TIM(TIM8, CH1, PC6, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // UART6 TX Softserial Smartport
DEF_TIM(TIM8, CH2, PC7, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // UART6 RX
DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR | TIM_USE_LED, TIMER_OUTPUT_STANDARD, 0), // LED
// LED strip
DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR | TIM_USE_LED, TIMER_OUTPUT_STANDARD, 0), // D1_ST0
// UART Backdoors
DEF_TIM(TIM1, CH2, PA9, TIM_USE_NONE, TIMER_OUTPUT_STANDARD, 0), // TX1 Bidir
DEF_TIM(TIM1, CH3, PA10, TIM_USE_NONE, TIMER_OUTPUT_STANDARD, 0), // RX1 Bidir
DEF_TIM(TIM5, CH3, PA2, TIM_USE_NONE, TIMER_OUTPUT_STANDARD, 0), // TX2 TX only
DEF_TIM(TIM9, CH2, PA3, TIM_USE_NONE, TIMER_OUTPUT_STANDARD, 0), // RX2 RX only
DEF_TIM(TIM2, CH3, PB10, TIM_USE_NONE, TIMER_OUTPUT_STANDARD, 0), // TX3 Bidir
DEF_TIM(TIM2, CH4, PB11, TIM_USE_NONE, TIMER_OUTPUT_STANDARD, 0), // RX3 Bidir
};

View file

@ -27,8 +27,8 @@
// Leave beeper here but with none as io - so disabled unless mapped.
#define BEEPER PB4
// PC0 used as inverter select GPIO
#define INVERTER_PIN_UART6 PC13
// PC13 used as inverter select GPIO for UART2
#define INVERTER_PIN_UART2 PC13
#define MPU6000_CS_PIN PA4
#define MPU6000_SPI_INSTANCE SPI1
@ -90,10 +90,9 @@
#define UART6_TX_PIN PC6
#define USE_SOFTSERIAL1
#define SOFTSERIAL1_RX_PIN PC7
#define SOFTSERIAL1_TX_PIN PC6
#define USE_SOFTSERIAL2
#define SERIAL_PORT_COUNT 6 //VCP, USART1, USART2, USART3, USART6
#define SERIAL_PORT_COUNT 7 //VCP, USART1, USART2, USART3, USART6, SOFTSERIAL1, SOFTSERIAL2
#define USE_ESCSERIAL
#define ESCSERIAL_TIMER_TX_PIN PB8 // (Hardware=0, PPM)
@ -135,12 +134,11 @@
#define USE_SERIAL_4WAY_BLHELI_INTERFACE
#define TARGET_IO_PORTA 0xffff
#define TARGET_IO_PORTB 0xffff
#define TARGET_IO_PORTC 0xffff
#define TARGET_IO_PORTD (BIT(2))
#define TARGET_IO_PORTA (0xffff & ~(BIT(14)|BIT(13)))
#define TARGET_IO_PORTB (0xffff & ~(BIT(2)))
#define TARGET_IO_PORTC (0xffff & ~(BIT(15)|BIT(14)))
#define TARGET_IO_PORTD BIT(2)
#define USABLE_TIMER_CHANNEL_COUNT 12
#define USABLE_TIMER_CHANNEL_COUNT 10
#define USED_TIMERS ( TIM_N(1) | TIM_N(3) | TIM_N(4) | TIM_N(8) )
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) | TIM_N(8) | TIM_N(9) | TIM_N(10) )