mirror of
https://github.com/opentx/opentx.git
synced 2025-07-26 01:35:21 +03:00
TX16S internal gps option (#7632)
This commit is contained in:
parent
f0a1c65d95
commit
82b13ebe3f
7 changed files with 44 additions and 7 deletions
|
@ -1357,8 +1357,10 @@ void registerOpenTxFirmwares()
|
||||||
/* Radiomaster TX16S board */
|
/* Radiomaster TX16S board */
|
||||||
firmware = new OpenTxFirmware("opentx-tx16s", Firmware::tr("Radiomaster TX16s / TX16s Hall / TX16s Masterfire"), BOARD_RADIOMASTER_TX16S);
|
firmware = new OpenTxFirmware("opentx-tx16s", Firmware::tr("Radiomaster TX16s / TX16s Hall / TX16s Masterfire"), BOARD_RADIOMASTER_TX16S);
|
||||||
addOpenTxFrskyOptions(firmware);
|
addOpenTxFrskyOptions(firmware);
|
||||||
firmware->addOption("bluetooth", Firmware::tr("Support for bluetooth module"));
|
|
||||||
addOpenTxRfOptions(firmware, FLEX);
|
addOpenTxRfOptions(firmware, FLEX);
|
||||||
|
static const Firmware::Option opt_bt("bluetooth", Firmware::tr("Support for bluetooth module"));
|
||||||
|
static const Firmware::Option opt_internal_gps("internalgps", Firmware::tr("Support internal GPS"));
|
||||||
|
firmware->addOptionsGroup({opt_bt, opt_internal_gps});
|
||||||
registerOpenTxFirmware(firmware);
|
registerOpenTxFirmware(firmware);
|
||||||
|
|
||||||
/* 9XR-Pro */
|
/* 9XR-Pro */
|
||||||
|
|
|
@ -53,6 +53,9 @@ static const char * options[] = {
|
||||||
#if defined(HORUS_STICKS)
|
#if defined(HORUS_STICKS)
|
||||||
"horussticks",
|
"horussticks",
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(INTERNAL_GPS)
|
||||||
|
"internalgps",
|
||||||
|
#endif
|
||||||
#if defined(INTERNAL_MODULE_PPM)
|
#if defined(INTERNAL_MODULE_PPM)
|
||||||
"internalppm",
|
"internalppm",
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -61,13 +61,15 @@ if (PCB STREQUAL X10)
|
||||||
add_definitions(-DRADIO_FAMILY_T16)
|
add_definitions(-DRADIO_FAMILY_T16)
|
||||||
option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON)
|
option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON)
|
||||||
option(BLUETOOTH "Support for bluetooth module" OFF)
|
option(BLUETOOTH "Support for bluetooth module" OFF)
|
||||||
|
option(INTERNAL_GPS "Support for internal ublox GPS" OFF)
|
||||||
set(HARDWARE_TOUCH YES)
|
set(HARDWARE_TOUCH YES)
|
||||||
set(USB_CHARGER YES)
|
set(USB_CHARGER YES)
|
||||||
set(DEFAULT_THEME "DARKBLUE")
|
set(DEFAULT_THEME "DARKBLUE")
|
||||||
set(AUX_SERIAL ON)
|
set(AUX_SERIAL ON)
|
||||||
if (NOT BLUETOOTH)
|
if (NOT BLUETOOTH AND NOT INTERNAL_GPS)
|
||||||
set(AUX2_SERIAL ON)
|
set(AUX2_SERIAL ON)
|
||||||
endif()
|
endif()
|
||||||
|
set(INTERNAL_GPS_BAUDRATE "9600" CACHE STRING "Baud rate for internal GPS")
|
||||||
else()
|
else()
|
||||||
set(FLAVOUR x10)
|
set(FLAVOUR x10)
|
||||||
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON)
|
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON)
|
||||||
|
@ -94,7 +96,6 @@ elseif (PCB STREQUAL X12S)
|
||||||
${TARGET_SRC}
|
${TARGET_SRC}
|
||||||
audio_spi_driver.cpp
|
audio_spi_driver.cpp
|
||||||
x12s_adc_driver.cpp
|
x12s_adc_driver.cpp
|
||||||
gps_driver.cpp
|
|
||||||
)
|
)
|
||||||
set(BITMAPS_TARGET x12s_bitmaps)
|
set(BITMAPS_TARGET x12s_bitmaps)
|
||||||
set(FONTS_TARGET x12s_fonts)
|
set(FONTS_TARGET x12s_fonts)
|
||||||
|
@ -199,6 +200,7 @@ endif()
|
||||||
|
|
||||||
if(INTERNAL_GPS)
|
if(INTERNAL_GPS)
|
||||||
set(SRC ${SRC} gps.cpp)
|
set(SRC ${SRC} gps.cpp)
|
||||||
|
set(TARGET_SRC ${TARGET_SRC} gps_driver.cpp)
|
||||||
add_definitions(-DINTERNAL_GPS)
|
add_definitions(-DINTERNAL_GPS)
|
||||||
message("Horus: Internal GPS enabled")
|
message("Horus: Internal GPS enabled")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -150,6 +150,7 @@ void boardInit()
|
||||||
BT_RCC_APB2Periph |
|
BT_RCC_APB2Periph |
|
||||||
AUX_SERIAL_RCC_APB2Periph |
|
AUX_SERIAL_RCC_APB2Periph |
|
||||||
AUX2_SERIAL_RCC_APB2Periph |
|
AUX2_SERIAL_RCC_APB2Periph |
|
||||||
|
GPS_RCC_APB2Periph |
|
||||||
BACKLIGHT_RCC_APB2Periph,
|
BACKLIGHT_RCC_APB2Periph,
|
||||||
ENABLE);
|
ENABLE);
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,8 @@ void gpsInit(uint32_t baudrate)
|
||||||
NVIC_InitTypeDef NVIC_InitStructure;
|
NVIC_InitTypeDef NVIC_InitStructure;
|
||||||
|
|
||||||
// RX and TX pins
|
// RX and TX pins
|
||||||
GPIO_PinAFConfig(GPIOA, GPS_TX_GPIO_PinSource, GPS_GPIO_AF);
|
GPIO_PinAFConfig(GPS_UART_GPIO, GPS_TX_GPIO_PinSource, GPS_GPIO_AF);
|
||||||
GPIO_PinAFConfig(GPIOA, GPS_RX_GPIO_PinSource, GPS_GPIO_AF);
|
GPIO_PinAFConfig(GPS_UART_GPIO, GPS_RX_GPIO_PinSource, GPS_GPIO_AF);
|
||||||
GPIO_InitStructure.GPIO_Pin = (GPS_TX_GPIO_PIN | GPS_RX_GPIO_PIN);
|
GPIO_InitStructure.GPIO_Pin = (GPS_TX_GPIO_PIN | GPS_RX_GPIO_PIN);
|
||||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||||
|
@ -58,6 +58,14 @@ void gpsInit(uint32_t baudrate)
|
||||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0;
|
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0;
|
||||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
||||||
NVIC_Init(&NVIC_InitStructure);
|
NVIC_Init(&NVIC_InitStructure);
|
||||||
|
|
||||||
|
#if defined(GPS_PWR_GPIO)
|
||||||
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||||
|
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||||
|
GPIO_InitStructure.GPIO_Pin = GPS_PWR_GPIO_PIN;
|
||||||
|
GPIO_Init(GPS_PWR_GPIO, &GPIO_InitStructure);
|
||||||
|
GPIO_SetBits(GPS_PWR_GPIO, GPS_PWR_GPIO_PIN);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
|
|
|
@ -418,7 +418,7 @@
|
||||||
#define AUX_SERIAL_RCC_APB2Periph 0
|
#define AUX_SERIAL_RCC_APB2Periph 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(RADIO_TX16S) && !defined(BLUETOOTH)
|
#if defined(AUX2_SERIAL)
|
||||||
#define AUX2_SERIAL_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOG | RCC_AHB1Periph_DMA2)
|
#define AUX2_SERIAL_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOG | RCC_AHB1Periph_DMA2)
|
||||||
#define AUX2_SERIAL_RCC_APB1Periph 0
|
#define AUX2_SERIAL_RCC_APB1Periph 0
|
||||||
#define AUX2_SERIAL_RCC_APB2Periph RCC_APB2Periph_USART6
|
#define AUX2_SERIAL_RCC_APB2Periph RCC_APB2Periph_USART6
|
||||||
|
@ -435,6 +435,24 @@
|
||||||
#define AUX2_SERIAL_DMA_Channel_RX DMA_Channel_5
|
#define AUX2_SERIAL_DMA_Channel_RX DMA_Channel_5
|
||||||
#define AUX2_SERIAL_PWR_GPIO GPIOB
|
#define AUX2_SERIAL_PWR_GPIO GPIOB
|
||||||
#define AUX2_SERIAL_PWR_GPIO_PIN GPIO_Pin_0 // PB.00
|
#define AUX2_SERIAL_PWR_GPIO_PIN GPIO_Pin_0 // PB.00
|
||||||
|
#elif defined(RADIO_TX16S) && defined(INTERNAL_GPS)
|
||||||
|
#define GPS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOG)
|
||||||
|
#define GPS_RCC_APB1Periph 0
|
||||||
|
#define GPS_RCC_APB2Periph RCC_APB2Periph_USART6
|
||||||
|
#define GPS_USART USART6
|
||||||
|
#define GPS_GPIO_AF GPIO_AF_USART6
|
||||||
|
#define GPS_USART_IRQn USART6_IRQn
|
||||||
|
#define GPS_USART_IRQHandler USART6_IRQHandler
|
||||||
|
#define GPS_UART_GPIO GPIOG
|
||||||
|
#define GPS_TX_GPIO_PIN GPIO_Pin_14 // PG.14
|
||||||
|
#define GPS_RX_GPIO_PIN GPIO_Pin_9 // PG.09
|
||||||
|
#define GPS_TX_GPIO_PinSource GPIO_PinSource14
|
||||||
|
#define GPS_RX_GPIO_PinSource GPIO_PinSource9
|
||||||
|
#define GPS_PWR_GPIO GPIOB
|
||||||
|
#define GPS_PWR_GPIO_PIN GPIO_Pin_0 // PB.00
|
||||||
|
#define AUX2_SERIAL_RCC_AHB1Periph 0
|
||||||
|
#define AUX2_SERIAL_RCC_APB1Periph 0
|
||||||
|
#define AUX2_SERIAL_RCC_APB2Periph 0
|
||||||
#else
|
#else
|
||||||
#define AUX2_SERIAL_RCC_AHB1Periph 0
|
#define AUX2_SERIAL_RCC_AHB1Periph 0
|
||||||
#define AUX2_SERIAL_RCC_APB1Periph 0
|
#define AUX2_SERIAL_RCC_APB1Periph 0
|
||||||
|
@ -900,6 +918,7 @@
|
||||||
#if defined(PCBX12S)
|
#if defined(PCBX12S)
|
||||||
#define GPS_RCC_AHB1Periph RCC_AHB1Periph_GPIOA
|
#define GPS_RCC_AHB1Periph RCC_AHB1Periph_GPIOA
|
||||||
#define GPS_RCC_APB1Periph RCC_APB1Periph_UART4
|
#define GPS_RCC_APB1Periph RCC_APB1Periph_UART4
|
||||||
|
#define GPS_RCC_APB2Periph 0
|
||||||
#define GPS_USART UART4
|
#define GPS_USART UART4
|
||||||
#define GPS_GPIO_AF GPIO_AF_UART4
|
#define GPS_GPIO_AF GPIO_AF_UART4
|
||||||
#define GPS_USART_IRQn UART4_IRQn
|
#define GPS_USART_IRQn UART4_IRQn
|
||||||
|
@ -909,9 +928,10 @@
|
||||||
#define GPS_RX_GPIO_PIN GPIO_Pin_1 // PA.01
|
#define GPS_RX_GPIO_PIN GPIO_Pin_1 // PA.01
|
||||||
#define GPS_TX_GPIO_PinSource GPIO_PinSource0
|
#define GPS_TX_GPIO_PinSource GPIO_PinSource0
|
||||||
#define GPS_RX_GPIO_PinSource GPIO_PinSource1
|
#define GPS_RX_GPIO_PinSource GPIO_PinSource1
|
||||||
#else
|
#elif !defined(INTERNAL_GPS)
|
||||||
#define GPS_RCC_AHB1Periph 0
|
#define GPS_RCC_AHB1Periph 0
|
||||||
#define GPS_RCC_APB1Periph 0
|
#define GPS_RCC_APB1Periph 0
|
||||||
|
#define GPS_RCC_APB2Periph 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // _HAL_H_
|
#endif // _HAL_H_
|
||||||
|
|
|
@ -234,4 +234,5 @@ options_radiomaster_tx16s = {
|
||||||
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
|
"nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"),
|
||||||
"flexr9m": ("MODULE_PROTOCOL_FLEX", "YES", None),
|
"flexr9m": ("MODULE_PROTOCOL_FLEX", "YES", None),
|
||||||
"bluetooth": ("BLUETOOTH", "YES", "NO"),
|
"bluetooth": ("BLUETOOTH", "YES", "NO"),
|
||||||
|
"internalgps": ("INTERNAL_GPS", "YES", "NO"),
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue