XLite REV 0.2 support (#5785)

XLite REV 0.2 support
This commit is contained in:
Bertrand Songis
2018-04-02 20:37:34 +02:00
committed by GitHub
parent 6535ccbdd8
commit 329b753df5
6 changed files with 49 additions and 34 deletions
+16 -12
View File
@@ -529,15 +529,7 @@ enum SwitchSources {
SWSRC_FIRST_SWITCH,
#if defined(PCBXLITE)
SWSRC_SA0 = SWSRC_FIRST_SWITCH,
SWSRC_SA1,
SWSRC_SA2,
SWSRC_SB0,
SWSRC_SB1,
SWSRC_SB2,
SWSRC_LAST_SWITCH = SWSRC_SB2,
#elif defined(PCBTARANIS) || defined(PCBHORUS)
#if defined(PCBTARANIS) || defined(PCBHORUS)
SWSRC_SA0 = SWSRC_FIRST_SWITCH,
SWSRC_SA1,
SWSRC_SA2,
@@ -555,18 +547,21 @@ enum SwitchSources {
SWSRC_SE1,
SWSRC_SE2,
#endif
#if !defined(PCBXLITE)
SWSRC_SF0,
SWSRC_SF1,
SWSRC_SF2,
#endif
#if !defined(PCBX7) && !defined(PCBXLITE)
SWSRC_SG0,
SWSRC_SG1,
SWSRC_SG2,
#endif
#if !defined(PCBXLITE)
SWSRC_SH0,
SWSRC_SH1,
SWSRC_SH2,
SWSRC_TRAINER = SWSRC_SH2,
#endif
#if defined(PCBX9E)
SWSRC_SI0,
SWSRC_SI1,
@@ -598,11 +593,18 @@ enum SwitchSources {
SWSRC_SR0,
SWSRC_SR1,
SWSRC_SR2,
#endif
#if defined(PCBX9E)
SWSRC_TRAINER = SWSRC_SH2,
SWSRC_LAST_SWITCH = SWSRC_SR2,
#elif defined(PCBXLITE)
SWSRC_TRAINER = SWSRC_SD2,
SWSRC_LAST_SWITCH = SWSRC_SD2,
#else
SWSRC_TRAINER = SWSRC_SH2,
SWSRC_LAST_SWITCH = SWSRC_SH2,
#endif
#else
#else // neither Taranis nor Horus
SWSRC_ID0 = SWSRC_FIRST_SWITCH,
SWSRC_ID1,
SWSRC_ID2,
@@ -803,7 +805,9 @@ enum MixSources {
#if defined(PCBXLITE)
MIXSRC_SA = MIXSRC_FIRST_SWITCH, LUA_EXPORT("sa", "Switch A")
MIXSRC_SB, LUA_EXPORT("sb", "Switch B")
MIXSRC_LAST_SWITCH = MIXSRC_SB,
MIXSRC_SC, LUA_EXPORT("sc", "Switch C")
MIXSRC_SD, LUA_EXPORT("sd", "Switch D")
MIXSRC_LAST_SWITCH = MIXSRC_SD,
#elif defined(PCBTARANIS) || defined(PCBHORUS)
MIXSRC_SA = MIXSRC_FIRST_SWITCH, LUA_EXPORT("sa", "Switch A")
MIXSRC_SB, LUA_EXPORT("sb", "Switch B")
+1 -1
View File
@@ -1183,7 +1183,7 @@ static inline void check_struct()
CHKSIZE(TrainerData, 16);
#if defined(PCBXLITE)
CHKSIZE(RadioData, 838);
CHKSIZE(RadioData, 844);
CHKSIZE(ModelData, 6025);
#elif defined(PCBX7)
CHKSIZE(RadioData, 850);
+1 -3
View File
@@ -298,14 +298,12 @@ enum EnumSwitchesPositions
SW_SB0,
SW_SB1,
SW_SB2,
#if !defined(PCBXLITE)
SW_SC0,
SW_SC1,
SW_SC2,
SW_SD0,
SW_SD1,
SW_SD2,
#endif
#if !defined(PCBX7) && !defined(PCBXLITE)
SW_SE0,
SW_SE1,
@@ -360,7 +358,7 @@ enum EnumSwitchesPositions
#endif
};
#if defined(PCBXLITE)
#define NUM_SWITCHES 2
#define NUM_SWITCHES 4
#elif defined(PCBX7)
#define NUM_SWITCHES 6
#elif defined(PCBX9E)
+26 -12
View File
@@ -183,10 +183,10 @@
#define SWITCHES_GPIO_REG_B_L GPIOG->IDR
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_10 // PG.10
#elif defined(PCBXLITE)
#define SWITCHES_GPIO_REG_B_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_2 // PE.02
#define SWITCHES_GPIO_REG_B_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_3 // PE.03
#define SWITCHES_GPIO_REG_B_H GPIOA->IDR
#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_6 // PA.06
#define SWITCHES_GPIO_REG_B_L GPIOA->IDR
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_5 // PA.05
#elif defined(PCBX7)
#define SWITCHES_GPIO_REG_B_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_15 // PE.15
@@ -205,7 +205,10 @@
#define SWITCHES_GPIO_REG_C_L GPIOF->IDR
#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_14 // PF.14
#elif defined(PCBXLITE)
// no SWC
#define SWITCHES_GPIO_REG_C_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_2 // PE.02
#define SWITCHES_GPIO_REG_C_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_3 // PE.03
#elif defined(PCBX7)
#define SWITCHES_GPIO_REG_C_L GPIOD->IDR
#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_11 // PD.11
@@ -229,7 +232,10 @@
#define SWITCHES_GPIO_REG_D_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_D_L GPIO_Pin_13 // PE.13
#elif defined(PCBXLITE)
// no SWD
#define SWITCHES_GPIO_REG_D_H GPIOB->IDR
#define SWITCHES_GPIO_PIN_D_H GPIO_Pin_4 // PB.04
#define SWITCHES_GPIO_REG_D_L GPIOB->IDR
#define SWITCHES_GPIO_PIN_D_L GPIO_Pin_5 // PB.05
#elif defined(PCBX7)
#define SWITCHES_GPIO_REG_D_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_D_L GPIO_Pin_1 // PE.01
@@ -360,7 +366,8 @@
#define KEYS_GPIOE_PINS (KEYS_GPIO_PIN_PLUS | KEYS_GPIO_PIN_ENTER | KEYS_GPIO_PIN_MINUS | TRIMS_GPIO_PIN_LHR | TRIMS_GPIO_PIN_LHL | TRIMS_GPIO_PIN_LVD | TRIMS_GPIO_PIN_LVU | SWITCHES_GPIO_PIN_F | SWITCHES_GPIO_PIN_A_L | SWITCHES_GPIO_PIN_B_H | SWITCHES_GPIO_PIN_B_L | SWITCHES_GPIO_PIN_C_H | SWITCHES_GPIO_PIN_D_H | SWITCHES_GPIO_PIN_D_L | SWITCHES_GPIO_PIN_G_H | SWITCHES_GPIO_PIN_G_L)
#elif defined(PCBXLITE)
#define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOE)
#define KEYS_GPIOB_PINS (GPIO_Pin_0 | GPIO_Pin_1)
#define KEYS_GPIOA_PINS (GPIO_Pin_5 | GPIO_Pin_6)
#define KEYS_GPIOB_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5)
#define KEYS_GPIOC_PINS (GPIO_Pin_4 | GPIO_Pin_5)
#define KEYS_GPIOE_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14)
#elif defined(PCBX7)
@@ -728,6 +735,13 @@
#define TELEMETRY_RCC_APB1Periph RCC_APB1Periph_USART2
#define TELEMETRY_DIR_GPIO GPIOD
#define TELEMETRY_DIR_GPIO_PIN GPIO_Pin_4 // PD.04
#if defined(PCBXLITE)
#define TELEMETRY_DIR_OUTPUT() TELEMETRY_DIR_GPIO->BSRRH = TELEMETRY_DIR_GPIO_PIN
#define TELEMETRY_DIR_INPUT() TELEMETRY_DIR_GPIO->BSRRL = TELEMETRY_DIR_GPIO_PIN
#else
#define TELEMETRY_DIR_OUTPUT() TELEMETRY_DIR_GPIO->BSRRL = TELEMETRY_DIR_GPIO_PIN
#define TELEMETRY_DIR_INPUT() TELEMETRY_DIR_GPIO->BSRRH = TELEMETRY_DIR_GPIO_PIN
#endif
#define TELEMETRY_GPIO GPIOD
#define TELEMETRY_TX_GPIO_PIN GPIO_Pin_5 // PD.05
#define TELEMETRY_RX_GPIO_PIN GPIO_Pin_6 // PD.06
@@ -834,12 +848,12 @@
#define BACKLIGHT_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
#define BACKLIGHT_TIMER TIM1
#define BACKLIGHT_GPIO GPIOA
#define BACKLIGHT_GPIO_PIN GPIO_Pin_10 // PA.10
#define BACKLIGHT_GPIO_PinSource GPIO_PinSource10
#define BACKLIGHT_GPIO_PIN GPIO_Pin_8 // PA.08
#define BACKLIGHT_GPIO_PinSource GPIO_PinSource8
#define BACKLIGHT_GPIO_AF GPIO_AF_TIM1
#define BACKLIGHT_CCMR2 TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2 // Channel 3, PWM
#define BACKLIGHT_CCER TIM_CCER_CC3E
#define BACKLIGHT_COUNTER_REGISTER BACKLIGHT_TIMER->CCR3
#define BACKLIGHT_CCMR1 TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 // Channel 1, PWM
#define BACKLIGHT_CCER TIM_CCER_CC1E
#define BACKLIGHT_COUNTER_REGISTER BACKLIGHT_TIMER->CCR1
#elif defined(PCBX7)
#define BACKLIGHT_RCC_AHB1Periph RCC_AHB1Periph_GPIOD
#define BACKLIGHT_RCC_APB1Periph RCC_APB1Periph_TIM4
+1 -2
View File
@@ -176,11 +176,10 @@ uint32_t switchState(uint8_t index)
switch (index) {
ADD_3POS_CASE(A, 0);
ADD_3POS_CASE(B, 1);
#if !defined(PCBXLITE)
ADD_3POS_CASE(C, 2);
ADD_3POS_CASE(D, 3);
#endif
#if defined(PCBXLITE)
// no SWF, SWG and SWH on XLITE
#elif defined(PCBX7)
ADD_2POS_CASE(F);
ADD_2POS_CASE(H);
@@ -79,14 +79,14 @@ void telemetryPortInit(uint32_t baudrate, uint8_t mode)
void telemetryPortSetDirectionOutput()
{
TELEMETRY_DIR_GPIO->BSRRL = TELEMETRY_DIR_GPIO_PIN; // output enable
TELEMETRY_USART->CR1 &= ~USART_CR1_RE; // turn off receiver
TELEMETRY_DIR_OUTPUT();
TELEMETRY_USART->CR1 &= ~USART_CR1_RE; // turn off receiver
}
void telemetryPortSetDirectionInput()
{
TELEMETRY_DIR_GPIO->BSRRH = TELEMETRY_DIR_GPIO_PIN; // output disable
TELEMETRY_USART->CR1 |= USART_CR1_RE; // turn on receiver
TELEMETRY_DIR_INPUT();
TELEMETRY_USART->CR1 |= USART_CR1_RE; // turn on receiver
}
void sportSendBuffer(uint8_t * buffer, uint32_t count)