mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-24 00:35:14 +03:00
parent
249576f79b
commit
b06e865141
18 changed files with 240 additions and 61 deletions
|
@ -341,7 +341,9 @@ endif()
|
|||
|
||||
# the current flavour is not automatically added if build in the current cmake iteration, so always
|
||||
# add its library name to be sure
|
||||
if(PCB STREQUAL X7 AND PCBREV STREQUAL T12)
|
||||
if(PCB STREQUAL X7 AND PCBREV STREQUAL ACCESS)
|
||||
set(FLAVOUR x7access)
|
||||
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T12)
|
||||
set(FLAVOUR t12)
|
||||
elseif(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019)
|
||||
set(FLAVOUR x9d+2019)
|
||||
|
|
|
@ -66,6 +66,7 @@ uint32_t Boards::getFourCC(Type board)
|
|||
case BOARD_TARANIS_XLITES:
|
||||
return 0x3B78746F;
|
||||
case BOARD_TARANIS_X7:
|
||||
case BOARD_TARANIS_X7_ACCESS:
|
||||
return 0x3678746F;
|
||||
case BOARD_TARANIS_X9E:
|
||||
return 0x3578746F;
|
||||
|
@ -116,6 +117,7 @@ int Boards::getEEpromSize(Board::Type board)
|
|||
case BOARD_TARANIS_XLITES:
|
||||
case BOARD_TARANIS_XLITE:
|
||||
case BOARD_TARANIS_X7:
|
||||
case BOARD_TARANIS_X7_ACCESS:
|
||||
case BOARD_TARANIS_X9LITE:
|
||||
case BOARD_TARANIS_X9LITES:
|
||||
case BOARD_TARANIS_X9D:
|
||||
|
@ -154,6 +156,7 @@ int Boards::getFlashSize(Type board)
|
|||
case BOARD_TARANIS_XLITES:
|
||||
case BOARD_TARANIS_XLITE:
|
||||
case BOARD_TARANIS_X7:
|
||||
case BOARD_TARANIS_X7_ACCESS:
|
||||
case BOARD_TARANIS_X9LITE:
|
||||
case BOARD_TARANIS_X9LITES:
|
||||
case BOARD_TARANIS_X9D:
|
||||
|
@ -497,6 +500,8 @@ QString Boards::getBoardName(Board::Type board)
|
|||
return "MEGA2560";
|
||||
case BOARD_TARANIS_X7:
|
||||
return "Taranis X7/X7S";
|
||||
case BOARD_TARANIS_X7_ACCESS:
|
||||
return "Taranis X7/X7S Access";
|
||||
case BOARD_JUMPER_T12:
|
||||
return "Jumper T12";
|
||||
case BOARD_TARANIS_XLITE:
|
||||
|
|
|
@ -40,6 +40,7 @@ namespace Board {
|
|||
BOARD_9XRPRO,
|
||||
BOARD_AR9X,
|
||||
BOARD_TARANIS_X7,
|
||||
BOARD_TARANIS_X7_ACCESS,
|
||||
BOARD_TARANIS_X9D,
|
||||
BOARD_TARANIS_X9DP,
|
||||
BOARD_TARANIS_X9DP_2019,
|
||||
|
@ -241,7 +242,12 @@ inline bool IS_TARANIS_XLITES(Board::Type board)
|
|||
|
||||
inline bool IS_TARANIS_X7(Board::Type board)
|
||||
{
|
||||
return board == Board::BOARD_TARANIS_X7;
|
||||
return board == Board::BOARD_TARANIS_X7 || board == Board::BOARD_TARANIS_X7_ACCESS;
|
||||
}
|
||||
|
||||
inline bool IS_TARANIS_X7_ACCESS(Board::Type board)
|
||||
{
|
||||
return board == Board::BOARD_TARANIS_X7_ACCESS;
|
||||
}
|
||||
|
||||
inline bool IS_TARANIS_X9LITE(Board::Type board)
|
||||
|
@ -321,7 +327,7 @@ inline bool HAS_EXTERNAL_ANTENNA(Board::Type board)
|
|||
|
||||
inline bool IS_ACCESS_RADIO(Board::Type board, QString &id)
|
||||
{
|
||||
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board) || board == Board::BOARD_TARANIS_X9DP_2019 || board == Board::BOARD_X10_EXPRESS ||
|
||||
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board) || board == Board::BOARD_TARANIS_X9DP_2019 || board == Board::BOARD_X10_EXPRESS || IS_TARANIS_X7_ACCESS(board) ||
|
||||
(IS_HORUS(board) && id.contains("internalaccess")));
|
||||
}
|
||||
|
||||
|
|
|
@ -80,6 +80,8 @@ const char * OpenTxEepromInterface::getName()
|
|||
return "OpenTX for FrSky Taranis X9E";
|
||||
case BOARD_TARANIS_X7:
|
||||
return "OpenTX for FrSky Taranis X7";
|
||||
case BOARD_TARANIS_X7_ACCESS:
|
||||
return "OpenTX for FrSky Taranis X7 Access";
|
||||
case BOARD_TARANIS_X9LITES:
|
||||
return "OpenTX for FrSky Taranis X9-Lite S";
|
||||
case BOARD_TARANIS_X9LITE:
|
||||
|
@ -330,6 +332,9 @@ int OpenTxEepromInterface::save(uint8_t * eeprom, const RadioData & radioData, u
|
|||
else if (IS_TARANIS_X9LITE(board)) {
|
||||
variant |= TARANIS_X9LITE_VARIANT;
|
||||
}
|
||||
else if (IS_TARANIS_X7_ACCESS(board)) {
|
||||
variant |= TARANIS_X7_VARIANT;
|
||||
}
|
||||
else if (IS_TARANIS_X7(board)) {
|
||||
variant |= TARANIS_X7_VARIANT;
|
||||
}
|
||||
|
@ -1254,6 +1259,11 @@ void registerOpenTxFirmwares()
|
|||
addOpenTxTaranisOptions(firmware);
|
||||
registerOpenTxFirmware(firmware);
|
||||
|
||||
/* FrSky X7 Access board */
|
||||
firmware = new OpenTxFirmware("opentx-x7access", Firmware::tr("FrSky Taranis X7 / X7S Access"), BOARD_TARANIS_X7_ACCESS);
|
||||
addOpenTxTaranisOptions(firmware);
|
||||
registerOpenTxFirmware(firmware);
|
||||
|
||||
/* FrSky X-Lite S/PRO board */
|
||||
firmware = new OpenTxFirmware("opentx-xlites", Firmware::tr("FrSky Taranis X-Lite S/PRO"), BOARD_TARANIS_XLITES);
|
||||
addOpenTxTaranisOptions(firmware);
|
||||
|
|
|
@ -64,6 +64,7 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
|
|||
radioUiWidget = new SimulatedUIWidgetX9LITE(simulator, this);
|
||||
break;
|
||||
case Board::BOARD_TARANIS_X7:
|
||||
case Board::BOARD_TARANIS_X7_ACCESS:
|
||||
radioUiWidget = new SimulatedUIWidgetX7(simulator, this);
|
||||
break;
|
||||
case Board::BOARD_TARANIS_X9D:
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include "opentx.h"
|
||||
|
||||
display_t displayBuf[DISPLAY_BUFFER_SIZE];
|
||||
display_t displayBuf[DISPLAY_BUFFER_SIZE] __DMA;
|
||||
|
||||
void lcdClear()
|
||||
{
|
||||
|
|
|
@ -259,7 +259,11 @@ void onModelAntennaSwitchConfirm(const char * result)
|
|||
#define EXTERNAL_ANTENNA_ROW
|
||||
#endif
|
||||
|
||||
#if defined(PCBX7) || defined(PCBX9LITE)
|
||||
#if defined(PCBX7ACCESS)
|
||||
#define TRAINER_BLUETOOTH_ROW (g_model.trainerData.mode == TRAINER_MODE_MASTER_BLUETOOTH ? TRAINER_BLUETOOTH_M_ROW : (g_model.trainerData.mode == TRAINER_MODE_SLAVE_BLUETOOTH ? TRAINER_BLUETOOTH_S_ROW : HIDDEN_ROW))
|
||||
#define TRAINER_PPM_PARAMS_ROW (g_model.trainerData.mode == TRAINER_MODE_SLAVE ? (uint8_t)2 : HIDDEN_ROW)
|
||||
#define TRAINER_ROWS LABEL(Trainer), 0, IF_BT_TRAINER_ON(TRAINER_BLUETOOTH_ROW), TRAINER_CHANNELS_ROW, TRAINER_PPM_PARAMS_ROW
|
||||
#elif defined(PCBX7) || defined(PCBX9LITE)
|
||||
#if defined(BLUETOOTH)
|
||||
#define TRAINER_BLUETOOTH_ROW (g_model.trainerData.mode == TRAINER_MODE_MASTER_BLUETOOTH ? TRAINER_BLUETOOTH_M_ROW : (g_model.trainerData.mode == TRAINER_MODE_SLAVE_BLUETOOTH ? TRAINER_BLUETOOTH_S_ROW : HIDDEN_ROW)),
|
||||
#else
|
||||
|
|
|
@ -16,15 +16,16 @@ set(LUA_INCLUDES
|
|||
)
|
||||
|
||||
if(PYTHONINTERP_FOUND)
|
||||
add_lua_export_target(x9lite ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9LITE -DPCBX9)
|
||||
add_lua_export_target(x9lites ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9LITES -DPCBX9LITE -DPCBX9)
|
||||
add_lua_export_target(x7 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_X7)
|
||||
add_lua_export_target(xlite ${LUA_INCLUDES} -DPCBTARANIS -DPCBXLITE)
|
||||
add_lua_export_target(xlites ${LUA_INCLUDES} -DPCBTARANIS -DPCBXLITES -DPCBXLITE -DGYRO)
|
||||
add_lua_export_target(x9d ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9D -DPCBX9)
|
||||
add_lua_export_target(x9e ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9E -DPCBX9)
|
||||
add_lua_export_target(x10 ${LUA_INCLUDES} -DPCBHORUS -DPCBX10)
|
||||
add_lua_export_target(x12s ${LUA_INCLUDES} -DPCBHORUS -DPCBX12S)
|
||||
add_lua_export_target(t12 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_T12)
|
||||
add_lua_export_target(t16 ${LUA_INCLUDES} -DPCBHORUS -DPCBX10 -DRADIO_T16)
|
||||
add_lua_export_target(x9lite ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9LITE -DPCBX9)
|
||||
add_lua_export_target(x9lites ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9LITES -DPCBX9LITE -DPCBX9)
|
||||
add_lua_export_target(x7 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_X7)
|
||||
add_lua_export_target(x7access ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7ACCESS -DPCBX7 -DRADIO_X7)
|
||||
add_lua_export_target(xlite ${LUA_INCLUDES} -DPCBTARANIS -DPCBXLITE)
|
||||
add_lua_export_target(xlites ${LUA_INCLUDES} -DPCBTARANIS -DPCBXLITES -DPCBXLITE -DGYRO)
|
||||
add_lua_export_target(x9d ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9D -DPCBX9)
|
||||
add_lua_export_target(x9e ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9E -DPCBX9)
|
||||
add_lua_export_target(x10 ${LUA_INCLUDES} -DPCBHORUS -DPCBX10)
|
||||
add_lua_export_target(x12s ${LUA_INCLUDES} -DPCBHORUS -DPCBX12S)
|
||||
add_lua_export_target(t12 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_T12)
|
||||
add_lua_export_target(t16 ${LUA_INCLUDES} -DPCBHORUS -DPCBX10 -DRADIO_T16)
|
||||
endif()
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
#include "lua/lua_exports_x10.inc"
|
||||
#elif defined(PCBX9E)
|
||||
#include "lua/lua_exports_x9e.inc"
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#include "lua/lua_exports_x7access.inc"
|
||||
#elif defined(RADIO_X7)
|
||||
#include "lua/lua_exports_x7.inc"
|
||||
#elif defined(RADIO_T12)
|
||||
|
|
|
@ -162,7 +162,9 @@ void getSwitchesPosition(bool startup)
|
|||
CHECK_2POS(SW_SI);
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS) || defined(PCBX7)
|
||||
#if defined(PCBX7ACCESS)
|
||||
CHECK_2POS(SW_SI);
|
||||
#elif defined(PCBHORUS) || defined(PCBX7)
|
||||
CHECK_2POS(SW_SI);
|
||||
CHECK_2POS(SW_SJ);
|
||||
#endif
|
||||
|
|
|
@ -24,7 +24,9 @@
|
|||
Fifo<uint8_t, BT_TX_FIFO_SIZE> btTxFifo;
|
||||
Fifo<uint8_t, BT_RX_FIFO_SIZE> btRxFifo;
|
||||
|
||||
#if defined(PCBX7) || defined(PCBXLITE)
|
||||
#if defined(PCBX7ACCESS)
|
||||
//nothing to do
|
||||
#elif defined(PCBX7) || defined(PCBXLITE)
|
||||
volatile uint8_t btChipPresent = 0;
|
||||
#endif
|
||||
|
||||
|
@ -117,7 +119,9 @@ extern "C" void BT_USART_IRQHandler(void)
|
|||
uint8_t byte = USART_ReceiveData(BT_USART);
|
||||
btRxFifo.push(byte);
|
||||
TRACE("BT %02X", byte);
|
||||
#if defined(PCBX7) || defined(PCBXLITE)
|
||||
#if defined(PCBX7ACCESS)
|
||||
//nothing to do
|
||||
#elif defined(PCBX7) || defined(PCBXLITE)
|
||||
if (!btChipPresent) {
|
||||
// This is to differentiate X7 and X7S and X-Lite with/without BT
|
||||
btChipPresent = 1;
|
||||
|
|
|
@ -605,6 +605,8 @@ class OpenTxSimulatorFactory: public SimulatorFactory
|
|||
return Board::BOARD_HORUS_X12S;
|
||||
#elif defined(PCBX10)
|
||||
return Board::BOARD_X10;
|
||||
#elif defined(PCBX7ACCESS)
|
||||
return Board::BOARD_TARANIS_X7_ACCESS;
|
||||
#elif defined(PCBX7)
|
||||
return Board::BOARD_TARANIS_X7;
|
||||
#elif defined(PCBX9LITES)
|
||||
|
|
|
@ -52,39 +52,39 @@ elseif(PCB STREQUAL X9D+)
|
|||
if (${PCBREV} STREQUAL 2019)
|
||||
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF)
|
||||
option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON)
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(FLAVOUR x9d+2019)
|
||||
set(CPU_TYPE STM32F4)
|
||||
set(CPU_TYPE_FULL STM32F407xE) # for size report
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f4_flash.ld)
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(FIRMWARE_TARGET_SRC
|
||||
${FIRMWARE_TARGET_SRC}
|
||||
startup_stm32f40_41xxx.s
|
||||
)
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f4_flash.ld)
|
||||
add_definitions(-DSTM32F40_41xxx)
|
||||
add_definitions(-DSOFTWARE_VOLUME -DPWR_BUTTON_${PWR_BUTTON} -DHARDWARE_POWER_MANAGEMENT_UNIT)
|
||||
set(STATUS_LEDS YES)
|
||||
set(PXX2 ON)
|
||||
set(PXX_FREQUENCY "HIGH")
|
||||
set(FLAVOUR x9d+2019)
|
||||
else()
|
||||
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON)
|
||||
option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF)
|
||||
set(FLAVOUR x9d+)
|
||||
set(CPU_TYPE STM32F2)
|
||||
set(CPU_TYPE_FULL STM32F205xE) # for size report
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f2_flash.ld)
|
||||
set(AUX_SERIAL_DRIVER ../common/arm/stm32/aux_serial_driver.cpp)
|
||||
set(STATUS_LEDS NO)
|
||||
set(FLAVOUR x9d+)
|
||||
endif()
|
||||
elseif(PCB STREQUAL X9D)
|
||||
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON)
|
||||
option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF)
|
||||
set(FLAVOUR x9d)
|
||||
set(CPU_TYPE STM32F2)
|
||||
set(CPU_TYPE_FULL STM32F205xE) # for size report
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f2_flash.ld)
|
||||
option(HAPTIC "Haptic support" OFF)
|
||||
set(LUA_EXPORT lua_export_x9d)
|
||||
set(FLAVOUR x9d)
|
||||
add_definitions(-DPCBX9D -DPCBX9)
|
||||
add_definitions(-DEEPROM_VARIANT=0)
|
||||
set(GUI_DIR 212x64)
|
||||
|
@ -97,34 +97,58 @@ elseif(PCB STREQUAL X9D)
|
|||
set(STATUS_LEDS NO)
|
||||
elseif(PCB STREQUAL X7)
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(CPU_TYPE STM32F2)
|
||||
set(CPU_TYPE_FULL STM32F205xE) # for size report
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f2_flash.ld)
|
||||
set(HAPTIC YES)
|
||||
if(PCBREV STREQUAL T12)
|
||||
set(LUA_EXPORT lua_export_t12)
|
||||
set(FLAVOUR t12)
|
||||
set(NAVIGATION_TYPE 9x)
|
||||
add_definitions(-DRADIO_T12)
|
||||
add_definitions(-DEEPROM_VARIANT=0x4001)
|
||||
option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" OFF)
|
||||
else()
|
||||
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON)
|
||||
option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF)
|
||||
set(LUA_EXPORT lua_export_x7)
|
||||
set(FLAVOUR x7)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
add_definitions(-DRADIO_X7)
|
||||
add_definitions(-DEEPROM_VARIANT=0x4000)
|
||||
endif()
|
||||
add_definitions(-DPCBX7 -DSOFTWARE_VOLUME)
|
||||
add_definitions(-DPWR_BUTTON_${PWR_BUTTON})
|
||||
set(GUI_DIR 128x64)
|
||||
set(BITMAPS_TARGET 9x_bitmaps)
|
||||
set(FONTS_TARGET 9x_fonts_1bit)
|
||||
set(LCD_DRIVER lcd_driver_spi.cpp)
|
||||
set(GVAR_SCREEN model_gvars.cpp)
|
||||
set(STATUS_LEDS YES)
|
||||
add_definitions(-DPCBX7 -DSOFTWARE_VOLUME)
|
||||
add_definitions(-DPWR_BUTTON_${PWR_BUTTON})
|
||||
if(PCBREV STREQUAL T12)
|
||||
option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" OFF)
|
||||
set(FLAVOUR t12)
|
||||
set(NAVIGATION_TYPE 9x)
|
||||
set(CPU_TYPE STM32F2)
|
||||
set(CPU_TYPE_FULL STM32F205xE) # for size report
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f2_flash.ld)
|
||||
set(LUA_EXPORT lua_export_t12)
|
||||
add_definitions(-DRADIO_T12)
|
||||
add_definitions(-DEEPROM_VARIANT=0x4001)
|
||||
elseif(PCBREV STREQUAL ACCESS)
|
||||
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF)
|
||||
option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON)
|
||||
set(FLAVOUR x7access)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE STM32F4)
|
||||
set(CPU_TYPE_FULL STM32F407xE) # for size report
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f4_flash.ld)
|
||||
set(LUA_EXPORT lua_export_x7access)
|
||||
add_definitions(-DRADIO_X7)
|
||||
add_definitions(-DEEPROM_VARIANT=0x4000)
|
||||
add_definitions(-DPCBREV=${PCBREV})
|
||||
add_definitions(-DPCBX7ACCESS)
|
||||
set(FIRMWARE_TARGET_SRC
|
||||
${FIRMWARE_TARGET_SRC}
|
||||
startup_stm32f40_41xxx.s
|
||||
)
|
||||
add_definitions(-DSTM32F40_41xxx)
|
||||
set(PXX2 ON)
|
||||
set(PXX_FREQUENCY "HIGH")
|
||||
add_definitions(-DHARDWARE_POWER_MANAGEMENT_UNIT)
|
||||
else()
|
||||
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON)
|
||||
option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF)
|
||||
set(FLAVOUR x7)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(CPU_TYPE STM32F2)
|
||||
set(CPU_TYPE_FULL STM32F205xE) # for size report
|
||||
set(LINKER_SCRIPT targets/taranis/stm32f2_flash.ld)
|
||||
set(LUA_EXPORT lua_export_x7)
|
||||
add_definitions(-DRADIO_X7)
|
||||
add_definitions(-DEEPROM_VARIANT=0x4000)
|
||||
endif()
|
||||
elseif(PCB STREQUAL X9LITE)
|
||||
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF)
|
||||
option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON)
|
||||
|
@ -229,7 +253,7 @@ if(PCB STREQUAL XLITES)
|
|||
)
|
||||
endif()
|
||||
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES OR PCB STREQUAL X9LITE OR PCB STREQUAL X9LITES OR (PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019))
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES OR PCB STREQUAL X9LITE OR PCB STREQUAL X9LITES OR (PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019) OR (PCB STREQUAL X7 AND PCBREV STREQUAL ACCESS))
|
||||
add_definitions(-DINTERNAL_MODULE_SERIAL)
|
||||
if(PXX_FREQUENCY STREQUAL HIGH)
|
||||
add_definitions(-DPXX_FREQUENCY_HIGH)
|
||||
|
|
|
@ -338,7 +338,11 @@ enum EnumSwitchesPositions
|
|||
SW_SI1,
|
||||
SW_SI2,
|
||||
#endif
|
||||
#if defined(PCBX7)
|
||||
#if defined(PCBX7ACCESS)
|
||||
SW_SI0,
|
||||
SW_SI1,
|
||||
SW_SI2,
|
||||
#elif defined(PCBX7)
|
||||
SW_SI0,
|
||||
SW_SI1,
|
||||
SW_SI2,
|
||||
|
@ -396,6 +400,11 @@ enum EnumSwitchesPositions
|
|||
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
|
||||
#define DEFAULT_SWITCH_CONFIG (SWITCH_2POS << 10) + (SWITCH_2POS << 8) + (SWITCH_3POS << 6) + (SWITCH_3POS << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0)
|
||||
#define DEFAULT_POTS_CONFIG (POT_WITHOUT_DETENT << 0) + (POT_WITHOUT_DETENT << 2); // S1 = pot without detent, S2 = pot with detent
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#define NUM_SWITCHES 7
|
||||
#define STORAGE_NUM_SWITCHES 8
|
||||
#define DEFAULT_SWITCH_CONFIG (SWITCH_TOGGLE << 10) + (SWITCH_2POS << 8) + (SWITCH_3POS << 6) + (SWITCH_3POS << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0)
|
||||
#define DEFAULT_POTS_CONFIG (POT_WITHOUT_DETENT << 0) + (POT_WITH_DETENT << 2); // S1 = pot without detent, S2 = pot with detent
|
||||
#elif defined(PCBX7)
|
||||
#define NUM_SWITCHES 8
|
||||
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
|
||||
|
@ -689,7 +698,9 @@ extern uint32_t telemetryErrors;
|
|||
void telemetryPortInvertedInit(uint32_t baudrate);
|
||||
|
||||
// PCBREV driver
|
||||
#if defined(PCBX7)
|
||||
#if defined(PCBX7ACCESS)
|
||||
#define HAS_SPORT_UPDATE_CONNECTOR() true
|
||||
#elif defined(PCBX7)
|
||||
#define IS_PCBREV_40() (GPIO_ReadInputDataBit(PCBREV_GPIO, PCBREV_GPIO_PIN) == Bit_SET)
|
||||
#define HAS_SPORT_UPDATE_CONNECTOR() IS_PCBREV_40()
|
||||
#elif defined(SPORT_UPDATE_PWR_GPIO)
|
||||
|
@ -785,7 +796,7 @@ void bluetoothInit(uint32_t baudrate, bool enable);
|
|||
void bluetoothWriteWakeup();
|
||||
uint8_t bluetoothIsWriting();
|
||||
void bluetoothDisable();
|
||||
#if defined(PCBX9LITES)
|
||||
#if defined(PCBX9LITES) || defined(PCBX7ACCESS)
|
||||
#define IS_BLUETOOTH_CHIP_PRESENT() (true)
|
||||
#elif defined(PCBX9LITE)
|
||||
#define IS_BLUETOOTH_CHIP_PRESENT() (false)
|
||||
|
|
|
@ -193,6 +193,23 @@
|
|||
#define TRIMS_GPIO_PIN_LVU GPIO_Pin_0 // PB.00
|
||||
#define TRIMS_GPIO_REG_LVD GPIOB->IDR
|
||||
#define TRIMS_GPIO_PIN_LVD GPIO_Pin_1 // PB.01
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#define TRIMS_GPIO_REG_LHR GPIOD->IDR
|
||||
#define TRIMS_GPIO_PIN_LHR GPIO_Pin_15 // PD.15
|
||||
#define TRIMS_GPIO_REG_LHL GPIOC->IDR
|
||||
#define TRIMS_GPIO_PIN_LHL GPIO_Pin_1 // PC.01
|
||||
#define TRIMS_GPIO_REG_LVD GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_LVD GPIO_Pin_6 // PE.06
|
||||
#define TRIMS_GPIO_REG_LVU GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_LVU GPIO_Pin_5 // PE.05
|
||||
#define TRIMS_GPIO_REG_RVD GPIOC->IDR
|
||||
#define TRIMS_GPIO_PIN_RVD GPIO_Pin_3 // PC.03
|
||||
#define TRIMS_GPIO_REG_RHR GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_RHR GPIO_Pin_3 // PE.03
|
||||
#define TRIMS_GPIO_REG_RVU GPIOC->IDR
|
||||
#define TRIMS_GPIO_PIN_RVU GPIO_Pin_2 // PC.02
|
||||
#define TRIMS_GPIO_REG_RHL GPIOE->IDR
|
||||
#define TRIMS_GPIO_PIN_RHL GPIO_Pin_4 // PE.04
|
||||
#elif defined(PCBX7)
|
||||
#define TRIMS_GPIO_REG_LHL GPIOD->IDR
|
||||
#define TRIMS_GPIO_PIN_LHL GPIO_Pin_15 // PD.15
|
||||
|
@ -351,8 +368,13 @@
|
|||
#define HARDWARE_SWITCH_C
|
||||
#define SWITCHES_GPIO_REG_C_L GPIOD->IDR
|
||||
#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_11 // PD.11
|
||||
#define SWITCHES_GPIO_REG_C_H GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_0 // PE.00
|
||||
#if defined(PCBX7ACCESS)
|
||||
#define SWITCHES_GPIO_REG_C_H GPIOD->IDR
|
||||
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_10 // PD.10
|
||||
#else
|
||||
#define SWITCHES_GPIO_REG_C_H GPIOE->IDR
|
||||
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_0 // PE.00
|
||||
#endif
|
||||
#else
|
||||
#define STORAGE_SWITCH_C
|
||||
#define HARDWARE_SWITCH_C
|
||||
|
@ -524,13 +546,19 @@
|
|||
#endif
|
||||
|
||||
// X7 P400 P401 headers additionnal momentary switches
|
||||
#if defined(PCBX7)
|
||||
#if defined(PCBX7ACCESS)
|
||||
#define STORAGE_SWITCH_I
|
||||
#define HARDWARE_SWITCH_I
|
||||
#define STORAGE_SWITCH_J
|
||||
#define HARDWARE_SWITCH_J
|
||||
#define SWITCHES_GPIO_REG_I GPIOC->IDR
|
||||
#define SWITCHES_GPIO_PIN_I GPIO_Pin_13 // PC.13
|
||||
#define STORAGE_SWITCH_J
|
||||
#elif defined(PCBX7)
|
||||
#define STORAGE_SWITCH_I
|
||||
#define HARDWARE_SWITCH_I
|
||||
#define SWITCHES_GPIO_REG_I GPIOC->IDR
|
||||
#define SWITCHES_GPIO_PIN_I GPIO_Pin_13 // PC.13
|
||||
#define STORAGE_SWITCH_J
|
||||
#define HARDWARE_SWITCH_J
|
||||
#define SWITCHES_GPIO_REG_J GPIOD->IDR
|
||||
#define SWITCHES_GPIO_PIN_J GPIO_Pin_10 // PD.10
|
||||
#endif
|
||||
|
@ -639,6 +667,12 @@
|
|||
#define KEYS_GPIOC_PINS (GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3)
|
||||
#define KEYS_GPIOD_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_7 | GPIO_Pin_11 | GPIO_Pin_14 | GPIO_Pin_15)
|
||||
#define KEYS_GPIOE_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15)
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE)
|
||||
#define KEYS_GPIOA_PINS GPIO_Pin_5
|
||||
#define KEYS_GPIOC_PINS (GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_13)
|
||||
#define KEYS_GPIOD_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_7 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_14 | GPIO_Pin_15)
|
||||
#define KEYS_GPIOE_PINS (GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15)
|
||||
#elif defined(RADIO_X7)
|
||||
#define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE)
|
||||
#define KEYS_GPIOA_PINS GPIO_Pin_5
|
||||
|
@ -898,6 +932,14 @@
|
|||
#define LED_RED_GPIO_PIN GPIO_Pin_4 // PE.04
|
||||
#define LED_GREEN_GPIO GPIOE
|
||||
#define LED_GREEN_GPIO_PIN GPIO_Pin_5 // PE.05
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON GPIO_SetBits
|
||||
#define GPIO_LED_GPIO_OFF GPIO_ResetBits
|
||||
#define LED_BLUE_GPIO GPIOB
|
||||
#define LED_BLUE_GPIO_PIN GPIO_Pin_1 // PB.01
|
||||
#define LED_RED_GPIO GPIOC
|
||||
#define LED_RED_GPIO_PIN GPIO_Pin_4 // PC.04
|
||||
#elif defined(PCBX7)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON GPIO_SetBits
|
||||
|
@ -982,6 +1024,26 @@
|
|||
#define INTMODULE_DMA_STREAM_IRQHandler DMA2_Stream7_IRQHandler
|
||||
#define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF7
|
||||
#define INTMODULE_DMA_CHANNEL DMA_Channel_4
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#define INTMODULE_RCC_APB1Periph 0
|
||||
#define INTMODULE_RCC_APB2Periph RCC_APB2Periph_USART1
|
||||
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA2)
|
||||
#define INTMODULE_PWR_GPIO GPIOC
|
||||
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_5 // PC.05
|
||||
#define INTMODULE_GPIO GPIOB
|
||||
#define INTMODULE_TX_GPIO_PIN GPIO_Pin_6 // PB.06
|
||||
#define INTMODULE_RX_GPIO_PIN GPIO_Pin_7 // PB.07
|
||||
#define INTMODULE_GPIO_PinSource_TX GPIO_PinSource6
|
||||
#define INTMODULE_GPIO_PinSource_RX GPIO_PinSource7
|
||||
#define INTMODULE_USART USART1
|
||||
#define INTMODULE_GPIO_AF GPIO_AF_USART1
|
||||
#define INTMODULE_USART_IRQHandler USART1_IRQHandler
|
||||
#define INTMODULE_USART_IRQn USART1_IRQn
|
||||
#define INTMODULE_DMA_STREAM DMA2_Stream7
|
||||
#define INTMODULE_DMA_STREAM_IRQ DMA2_Stream7_IRQn
|
||||
#define INTMODULE_DMA_STREAM_IRQHandler DMA2_Stream7_IRQHandler
|
||||
#define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF7
|
||||
#define INTMODULE_DMA_CHANNEL DMA_Channel_4
|
||||
#elif defined(PCBX9E) || defined(PCBX9DP) || defined(RADIO_X7)
|
||||
#define INTMODULE_PULSES
|
||||
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA2)
|
||||
|
@ -1051,9 +1113,9 @@
|
|||
#endif
|
||||
|
||||
// External Module
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE) || (defined(PCBX9DP) && PCBREV >= 2019)
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE) || (defined(PCBX9DP) && PCBREV >= 2019) || defined(PCBX7ACCESS)
|
||||
#define EXTMODULE_RCC_APB2Periph (RCC_APB2Periph_TIM8 | RCC_APB2Periph_USART6)
|
||||
#if defined(PCBX9DP) && PCBREV >= 2019
|
||||
#if (defined(PCBX9DP) && PCBREV >= 2019) || defined(PCBX7ACCESS)
|
||||
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
#define EXTMODULE_PWR_GPIO GPIOD
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PD.08
|
||||
|
@ -1268,7 +1330,7 @@
|
|||
#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) || defined(PCBX9LITE) || (defined(PCBX9DP) && PCBREV >= 2019)
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE) || (defined(PCBX9DP) && PCBREV >= 2019) || defined(PCBX7ACCESS)
|
||||
#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
|
||||
|
@ -1324,6 +1386,13 @@
|
|||
#define SPORT_UPDATE_PWR_GPIO_PIN GPIO_Pin_8 // PD.08
|
||||
#define GPIO_SPORT_UPDATE_PWR_GPIO_ON GPIO_SetBits
|
||||
#define GPIO_SPORT_UPDATE_PWR_GPIO_OFF GPIO_ResetBits
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#define SPORT_MAX_BAUDRATE 400000
|
||||
#define SPORT_UPDATE_RCC_AHB1Periph RCC_AHB1Periph_GPIOB
|
||||
#define SPORT_UPDATE_PWR_GPIO GPIOB
|
||||
#define SPORT_UPDATE_PWR_GPIO_PIN GPIO_Pin_3 // PB.03
|
||||
#define GPIO_SPORT_UPDATE_PWR_GPIO_ON GPIO_SetBits
|
||||
#define GPIO_SPORT_UPDATE_PWR_GPIO_OFF GPIO_ResetBits
|
||||
#elif defined(PCBX7)
|
||||
#define SPORT_MAX_BAUDRATE 250000 // < 400000
|
||||
#define SPORT_UPDATE_RCC_AHB1Periph RCC_AHB1Periph_GPIOB
|
||||
|
@ -1372,12 +1441,22 @@
|
|||
// #define INTMODULE_HEARTBEAT_EXTI_LINE EXTI_Line9
|
||||
// #define INTMODULE_HEARTBEAT_EXTI_IRQn EXTI9_5_IRQn
|
||||
// #define INTMODULE_HEARTBEAT_EXTI_IRQHandler EXTI9_5_IRQHandler
|
||||
#elif defined(RADIO_X7)
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#define INTMODULE_HEARTBEAT
|
||||
#define INTMODULE_HEARTBEAT_REUSE_INTERRUPT_ROTARY_ENCODER
|
||||
#define INTMODULE_HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOA
|
||||
#define INTMODULE_HEARTBEAT_GPIO GPIOA
|
||||
#define INTMODULE_HEARTBEAT_GPIO_PIN GPIO_Pin_7 // PA.07
|
||||
#define INTMODULE_HEARTBEAT_EXTI_PortSource EXTI_PortSourceGPIOA
|
||||
#define INTMODULE_HEARTBEAT_EXTI_PinSource GPIO_PinSource7
|
||||
#define INTMODULE_HEARTBEAT_EXTI_LINE EXTI_Line7
|
||||
#define INTMODULE_HEARTBEAT_EXTI_IRQn EXTI9_5_IRQn
|
||||
#elif defined(RADIO_X7)
|
||||
#define INTMODULE_HEARTBEAT
|
||||
#define INTMODULE_HEARTBEAT_REUSE_INTERRUPT_ROTARY_ENCODER
|
||||
#define INTMODULE_HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOC
|
||||
#define INTMODULE_HEARTBEAT_GPIO GPIOC
|
||||
#define INTMODULE_HEARTBEAT_GPIO_PIN GPIO_Pin_7
|
||||
#define INTMODULE_HEARTBEAT_GPIO_PIN GPIO_Pin_7 // PC.07
|
||||
#define INTMODULE_HEARTBEAT_EXTI_PortSource EXTI_PortSourceGPIOC
|
||||
#define INTMODULE_HEARTBEAT_EXTI_PinSource GPIO_PinSource7
|
||||
#define INTMODULE_HEARTBEAT_EXTI_LINE EXTI_Line7
|
||||
|
@ -1646,6 +1725,15 @@
|
|||
#define I2C_WP_GPIO_PIN GPIO_Pin_7 // PD.07
|
||||
#define I2C_SCL_GPIO_PinSource GPIO_PinSource8
|
||||
#define I2C_SDA_GPIO_PinSource GPIO_PinSource9
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#define I2C_RCC_AHB1Periph RCC_AHB1Periph_GPIOB
|
||||
#define I2C_SPI_GPIO GPIOB
|
||||
#define I2C_SDA_GPIO_PIN GPIO_Pin_9 // PB.09
|
||||
#define I2C_SCL_GPIO_PIN GPIO_Pin_8 // PB.08
|
||||
#define I2C_WP_GPIO GPIOB
|
||||
#define I2C_WP_GPIO_PIN GPIO_Pin_5 // PB.05
|
||||
#define I2C_SDA_GPIO_PinSource GPIO_PinSource9
|
||||
#define I2C_SCL_GPIO_PinSource GPIO_PinSource8
|
||||
#elif defined(PCBX9DP) && PCBREV >= 2019
|
||||
#define I2C_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOF)
|
||||
#define I2C_SPI_GPIO GPIOB
|
||||
|
@ -1759,7 +1847,7 @@
|
|||
#define HAPTIC_CCMR1 TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2
|
||||
#define HAPTIC_CCER TIM_CCER_CC2E
|
||||
#define BACKLIGHT_BDTR TIM_BDTR_MOE
|
||||
#elif defined(PCBX9DP) && PCBREV >= 2019
|
||||
#elif (defined(PCBX9DP) && PCBREV >= 2019) || defined(PCBX7ACCESS)
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_RCC_AHB1Periph RCC_AHB1Periph_GPIOA
|
||||
#define HAPTIC_RCC_APB2Periph RCC_APB2Periph_TIM1
|
||||
|
|
|
@ -195,6 +195,12 @@ uint32_t switchState(uint8_t index)
|
|||
#elif defined(PCBXLITE)
|
||||
ADD_3POS_CASE(D, 3);
|
||||
// no SWE, SWF, SWG and SWH on XLITE
|
||||
#elif defined(PCBX7ACCESS)
|
||||
ADD_3POS_CASE(D, 3);
|
||||
ADD_2POS_CASE(F);
|
||||
ADD_2POS_CASE(H);
|
||||
ADD_2POS_CASE(I);
|
||||
// no SWJ on XLITE
|
||||
#elif defined(PCBX7)
|
||||
ADD_3POS_CASE(D, 3);
|
||||
ADD_2POS_CASE(F);
|
||||
|
|
|
@ -311,7 +311,7 @@ void lcdInit()
|
|||
issued by the other parts of the code.
|
||||
*/
|
||||
|
||||
#if defined(PCBX9DP) && PCBREV >= 2019
|
||||
#if (defined(PCBX9DP) && PCBREV >= 2019) || defined(PCBX7ACCESS)
|
||||
#define LCD_DELAY_NEEDED() true
|
||||
#else
|
||||
#define LCD_DELAY_NEEDED() (!WAS_RESET_BY_WATCHDOG_OR_SOFTWARE())
|
||||
|
|
|
@ -103,6 +103,17 @@ boards = {
|
|||
"MULTIMODULE": "NO",
|
||||
"CROSSFIRE": "NO",
|
||||
"DEFAULT_MODE": "2",
|
||||
},
|
||||
"X7ACCESS": {
|
||||
"PCB": "X7",
|
||||
"PCBREV": "ACCESS",
|
||||
"LUA": "NO_MODEL_SCRIPTS",
|
||||
"GVARS": "YES",
|
||||
"AUTOUPDATE": "YES",
|
||||
"PXX1": "YES",
|
||||
"MULTIMODULE": "NO",
|
||||
"CROSSFIRE": "NO",
|
||||
"DEFAULT_MODE": "2",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue