Allow R9M 2019 in ACCESS mode on some radios (#7963)

Support for external R9M ACCESS
This commit is contained in:
3djc
2020-10-16 16:35:31 +02:00
committed by GitHub
parent d66829e0d8
commit 5fc342c85c
9 changed files with 43 additions and 7 deletions
+1 -1
View File
@@ -193,7 +193,7 @@ enum TrainerMode {
TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE,
TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE,
#endif
#if defined(PCBTARANIS) || defined(AUX_SERIAL)
#if defined(PCBTARANIS) || defined(AUX_SERIAL) || defined(AUX2_SERIAL)
TRAINER_MODE_MASTER_BATTERY_COMPARTMENT,
#endif
TRAINER_MODE_MASTER_BLUETOOTH,
+11
View File
@@ -92,6 +92,17 @@ bool menuRadioModulesVersion(event_t event)
y += FH;
continue;
}
#if defined(HARDWARE_EXTERNAL_ACCESS_MOD)
if (isModuleMultimodule(INTERNAL_MODULE)) {
char statusText[64];
lcdDrawText(COLUMN2_X, y, "Multimodule");
y += FH;
getMultiModuleStatus(INTERNAL_MODULE).getStatusString(statusText);
lcdDrawText(COLUMN2_X, y, statusText);
y += FH;
continue;
}
#endif
if (!isModulePXX2(INTERNAL_MODULE)) {
lcdDrawText(COLUMN2_X, y, STR_NO_INFORMATION);
y += FH;
+6
View File
@@ -26,6 +26,9 @@ static const char * const options[] = {
#if defined(AUTOUPDATE)
"autoupdate",
#endif
#if defined(BLUETOOTH)
"bluetooth",
#endif
#if defined(CROSSFIRE)
"crossfire",
#endif
@@ -91,6 +94,9 @@ static const char * const options[] = {
#endif
#if defined(SHUTDOWN_CONFIRMATION)
"shutdownconfirm",
#endif
#if defined(HARDWARE_EXTERNAL_ACCESS_MOD)
"externalaccessmod",
#endif
nullptr //sentinel
};
+7
View File
@@ -5,6 +5,7 @@ option(PXX2 "PXX2 protocol support" OFF)
option(AFHDS3 "AFHDS3 TX Module" ON)
option(MULTIMODULE "DIY Multiprotocol TX Module (https://github.com/pascallanger/DIY-Multiprotocol-TX-Module)" ON)
option(GHOST "Ghost TX Module" ON)
option(HARDWARE_EXTERNAL_ACCESS_MOD "Support for R9M 2019 hardware mod" OFF)
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
set(CPU_TYPE STM32F4)
@@ -139,6 +140,12 @@ if(NOT UNEXPECTED_SHUTDOWN)
add_definitions(-DNO_UNEXPECTED_SHUTDOWN)
endif()
if(HARDWARE_EXTERNAL_ACCESS_MOD)
set(PXX2 ON)
set(AUX_SERIAL OFF)
add_definitions(-DHARDWARE_EXTERNAL_ACCESS_MOD)
endif()
if(INTERNAL_MODULE_PXX1)
add_definitions(-DHARDWARE_INTERNAL_MODULE)
add_definitions(-DINTERNAL_MODULE_PXX1)
+1 -1
View File
@@ -635,8 +635,8 @@ void sportUpdatePowerInit();
#endif
// Aux serial port driver
#if defined(AUX_SERIAL_GPIO)
#define DEBUG_BAUDRATE 115200
#if defined(AUX_SERIAL_GPIO)
extern uint8_t auxSerialMode;
void auxSerialInit(unsigned int mode, unsigned int protocol);
void auxSerialPutc(char c);
+4 -4
View File
@@ -402,7 +402,7 @@
#endif
// Serial Port (DEBUG)
#if defined(PCBX12S) || defined(RADIO_TX16S)
#if (defined(PCBX12S) || defined(RADIO_TX16S)) && !defined(HARDWARE_EXTERNAL_ACCESS_MOD)
#define AUX_SERIAL_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
#define AUX_SERIAL_RCC_APB1Periph RCC_APB1Periph_USART3
#define AUX_SERIAL_RCC_APB2Periph 0
@@ -762,7 +762,7 @@
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_9 // PI.09
#endif
#define INIT_INTMODULE_BOOTCMD_PIN() GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
#if defined(PCBX10) || PCBREV >= 13
#if (defined(PCBX10) || PCBREV >= 13) && !defined(HARDWARE_EXTERNAL_ACCESS_MOD) //TIM2 used by ext mod
#define INTMODULE_RCC_APB1Periph RCC_APB1Periph_TIM2
#define INTMODULE_RCC_APB2Periph RCC_APB2Periph_USART1
#define INTMODULE_TIMER TIM2
@@ -782,7 +782,7 @@
#define EXTMODULE_PWR_GPIO GPIOB
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_3 // PB.03
#define EXTERNAL_MODULE_PWR_OFF() GPIO_ResetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN)
#if defined(PCBX10) && defined(PCBREV_EXPRESS)
#if (defined(PCBX10) && defined(PCBREV_EXPRESS)) || defined(HARDWARE_EXTERNAL_ACCESS_MOD)
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
#define EXTMODULE_RCC_APB1Periph (RCC_APB1Periph_TIM2 | RCC_APB1Periph_USART3)
#define EXTMODULE_RCC_APB2Periph 0
@@ -861,7 +861,7 @@
#define INTMODULE_HEARTBEAT_EXTI_LINE EXTI_Line12
#define INTMODULE_HEARTBEAT_EXTI_IRQn EXTI15_10_IRQn
#define INTMODULE_HEARTBEAT_REUSE_INTERRUPT_ROTARY_ENCODER
#if defined(PXX2)
#if defined(INTERNAL_MODULE_PXX2)
#define INTMODULE_HEARTBEAT_TRIGGER EXTI_Trigger_Falling
#else
#define INTMODULE_HEARTBEAT_TRIGGER EXTI_Trigger_Rising
+5
View File
@@ -139,8 +139,13 @@ void checkTrainerSettings()
stop_intmodule_heartbeat();
else
init_intmodule_heartbeat();
#else
#if defined(HARDWARE_EXTERNAL_ACCESS_MOD)
if (g_model.moduleData[EXTERNAL_MODULE].type != MODULE_TYPE_R9M_PXX2) // externalaccessmod 'bridges' HB and Ext module RX pins
init_intmodule_heartbeat();
#else
init_intmodule_heartbeat();
#endif
#endif
}
}