mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 16:25:16 +03:00
UART3 Debug/SPORT modes
This commit is contained in:
parent
cdfc8b5b2b
commit
c3417a0d88
13 changed files with 68 additions and 18 deletions
|
@ -620,7 +620,7 @@ ifeq ($(PCB), TARANIS)
|
||||||
EEPROMSRC = eeprom_common.cpp eeprom_rlc.cpp eeprom_conversions.cpp
|
EEPROMSRC = eeprom_common.cpp eeprom_rlc.cpp eeprom_conversions.cpp
|
||||||
PULSESSRC = protocols/pulses_arm.cpp protocols/ppm_arm.cpp protocols/pxx_arm.cpp
|
PULSESSRC = protocols/pulses_arm.cpp protocols/ppm_arm.cpp protocols/pxx_arm.cpp
|
||||||
CPPSRC += audio_arm.cpp
|
CPPSRC += audio_arm.cpp
|
||||||
CPPSRC += targets/taranis/pwr_driver.cpp targets/taranis/pulses_driver.cpp targets/taranis/keys_driver.cpp targets/taranis/adc_driver.cpp targets/taranis/trainer_driver.cpp targets/taranis/audio_driver.cpp targets/taranis/delays.cpp targets/taranis/uart_driver.cpp targets/taranis/sport_driver.cpp
|
CPPSRC += targets/taranis/pwr_driver.cpp targets/taranis/pulses_driver.cpp targets/taranis/keys_driver.cpp targets/taranis/adc_driver.cpp targets/taranis/trainer_driver.cpp targets/taranis/audio_driver.cpp targets/taranis/delays.cpp targets/taranis/uart3_driver.cpp targets/taranis/sport_driver.cpp
|
||||||
CPPSRC += bmp.cpp gui/view_channels.cpp gui/view_about.cpp gui/view_text.cpp
|
CPPSRC += bmp.cpp gui/view_channels.cpp gui/view_about.cpp gui/view_text.cpp
|
||||||
SRC += targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c
|
SRC += targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c
|
||||||
SRC += targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/src/misc.c
|
SRC += targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/src/misc.c
|
||||||
|
|
|
@ -73,7 +73,6 @@ inline void dump(unsigned char *data, unsigned int size)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void debugPutc(const char c);
|
|
||||||
void debugPuts(const char *string, ...);
|
void debugPuts(const char *string, ...);
|
||||||
void dump(unsigned char *data, unsigned int size);
|
void dump(unsigned char *data, unsigned int size);
|
||||||
|
|
||||||
|
|
|
@ -1200,8 +1200,12 @@ void menuGeneralHardware(uint8_t event)
|
||||||
}
|
}
|
||||||
|
|
||||||
case ITEM_SETUP_HW_UART3_MODE:
|
case ITEM_SETUP_HW_UART3_MODE:
|
||||||
g_eeGeneral.hw_uartMode = selectMenuItem(HW_SETTINGS_COLUMN, y, STR_UART3MODE, STR_UART3MODES, g_eeGeneral.hw_uartMode, 0, 2, attr, event);
|
g_eeGeneral.uart3Mode = selectMenuItem(HW_SETTINGS_COLUMN, y, STR_UART3MODE, STR_UART3MODES, g_eeGeneral.uart3Mode, 0, UART_MODE_MAX, attr, event);
|
||||||
|
if (checkIncDec_Ret) {
|
||||||
|
uart3Init(g_eeGeneral.uart3Mode);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -243,9 +243,20 @@ enum BeeperMode {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PCBTARANIS)
|
#if defined(PCBTARANIS)
|
||||||
|
enum uartModes {
|
||||||
|
UART_MODE_NONE,
|
||||||
|
UART_MODE_SPORT,
|
||||||
|
UART_MODE_VIRTUAL_SP2UART,
|
||||||
|
#if defined(DEBUG)
|
||||||
|
UART_MODE_DEBUG,
|
||||||
|
#endif
|
||||||
|
UART_MODE_COUNT,
|
||||||
|
UART_MODE_MAX = UART_MODE_COUNT-1
|
||||||
|
};
|
||||||
|
|
||||||
#define EXTRA_GENERAL_FIELDS \
|
#define EXTRA_GENERAL_FIELDS \
|
||||||
EXTRA_GENERAL_FIELDS_ARM \
|
EXTRA_GENERAL_FIELDS_ARM \
|
||||||
uint8_t hw_uartMode; \
|
uint8_t uart3Mode; \
|
||||||
uint8_t potsType;
|
uint8_t potsType;
|
||||||
#elif defined(CPUARM)
|
#elif defined(CPUARM)
|
||||||
#define EXTRA_GENERAL_FIELDS EXTRA_GENERAL_FIELDS_ARM
|
#define EXTRA_GENERAL_FIELDS EXTRA_GENERAL_FIELDS_ARM
|
||||||
|
|
|
@ -4972,6 +4972,10 @@ inline void opentxInit(OPENTX_INIT_ARGS)
|
||||||
lcdSetContrast();
|
lcdSetContrast();
|
||||||
backlightOn();
|
backlightOn();
|
||||||
|
|
||||||
|
#if defined(PCBTARANIS)
|
||||||
|
uart3Init(g_eeGeneral.uart3Mode);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
init_trainer_capture();
|
init_trainer_capture();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -632,6 +632,7 @@ void lcdRefresh()
|
||||||
|
|
||||||
#if defined(PCBTARANIS)
|
#if defined(PCBTARANIS)
|
||||||
void usbStart() { }
|
void usbStart() { }
|
||||||
|
void USART_DeInit(USART_TypeDef* ) { }
|
||||||
ErrorStatus RTC_SetTime(uint32_t RTC_Format, RTC_TimeTypeDef* RTC_TimeStruct) { return SUCCESS; }
|
ErrorStatus RTC_SetTime(uint32_t RTC_Format, RTC_TimeTypeDef* RTC_TimeStruct) { return SUCCESS; }
|
||||||
ErrorStatus RTC_SetDate(uint32_t RTC_Format, RTC_DateTypeDef* RTC_DateStruct) { return SUCCESS; }
|
ErrorStatus RTC_SetDate(uint32_t RTC_Format, RTC_DateTypeDef* RTC_DateStruct) { return SUCCESS; }
|
||||||
void RTC_GetTime(uint32_t RTC_Format, RTC_TimeTypeDef* RTC_TimeStruct) { }
|
void RTC_GetTime(uint32_t RTC_Format, RTC_TimeTypeDef* RTC_TimeStruct) { }
|
||||||
|
|
|
@ -406,4 +406,5 @@ extern char simuSdDirectory[1024];
|
||||||
#define SD_GET_SIZE_MB() (0)
|
#define SD_GET_SIZE_MB() (0)
|
||||||
#define SD_GET_SPEED() (0)
|
#define SD_GET_SPEED() (0)
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -258,4 +258,7 @@ void rotencEnd();
|
||||||
#define rotencDown() 0
|
#define rotencDown() 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Debug driver
|
||||||
|
void debugPutc(const char c);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -192,9 +192,6 @@ void boardInit()
|
||||||
adcInit();
|
adcInit();
|
||||||
delaysInit();
|
delaysInit();
|
||||||
audioInit();
|
audioInit();
|
||||||
#if defined(DEBUG)
|
|
||||||
uartInit(DEBUG_UART_BAUDRATE);
|
|
||||||
#endif
|
|
||||||
init5msTimer();
|
init5msTimer();
|
||||||
__enable_irq();
|
__enable_irq();
|
||||||
eepromInit();
|
eepromInit();
|
||||||
|
|
|
@ -77,11 +77,11 @@ extern uint16_t sessionTimer;
|
||||||
|
|
||||||
void delaysInit();
|
void delaysInit();
|
||||||
|
|
||||||
#define DEBUG_UART_BAUDRATE 115200
|
#define DEBUG_BAUDRATE 115200
|
||||||
#define SPORT_BAUDRATE 57600
|
#define SPORT_BAUDRATE 57600
|
||||||
|
|
||||||
void uartInit(uint32_t baudrate);
|
void uart3Init(unsigned int mode);
|
||||||
void uartPutc(const char c);
|
void uart3Putc(const char c);
|
||||||
|
|
||||||
void sportInit(void);
|
void sportInit(void);
|
||||||
|
|
||||||
|
@ -183,6 +183,8 @@ bool usbPlugged(void);
|
||||||
void eeWriteBlockCmp(const void *pointer_ram, uint16_t pointer_eeprom, size_t size);
|
void eeWriteBlockCmp(const void *pointer_ram, uint16_t pointer_eeprom, size_t size);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Debug driver
|
||||||
|
void debugPutc(const char c);
|
||||||
|
|
||||||
extern uint8_t currentTrainerMode;
|
extern uint8_t currentTrainerMode;
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
#include "../../opentx.h"
|
#include "../../opentx.h"
|
||||||
|
|
||||||
void uartInit(uint32_t baudrate)
|
void uart3Setup(unsigned int baudrate)
|
||||||
{
|
{
|
||||||
USART_InitTypeDef USART_InitStructure;
|
USART_InitTypeDef USART_InitStructure;
|
||||||
GPIO_InitTypeDef GPIO_InitStructure;
|
GPIO_InitTypeDef GPIO_InitStructure;
|
||||||
|
@ -69,22 +69,47 @@ void uartInit(uint32_t baudrate)
|
||||||
USART_ITConfig(UART3, USART_IT_TXE, DISABLE);
|
USART_ITConfig(UART3, USART_IT_TXE, DISABLE);
|
||||||
|
|
||||||
NVIC_EnableIRQ(USART3_IRQn);
|
NVIC_EnableIRQ(USART3_IRQn);
|
||||||
NVIC_SetPriority(USART3_IRQn, 8);
|
NVIC_SetPriority(USART3_IRQn, 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
void uart3Init(unsigned int mode)
|
||||||
|
{
|
||||||
|
USART_DeInit(USART3);
|
||||||
|
|
||||||
|
switch(mode) {
|
||||||
|
case UART_MODE_SPORT:
|
||||||
|
uart3Setup(SPORT_BAUDRATE);
|
||||||
|
break;
|
||||||
|
#if defined(DEBUG)
|
||||||
|
case UART_MODE_DEBUG:
|
||||||
|
uart3Setup(DEBUG_BAUDRATE);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Fifo<512> uart3TxFifo;
|
||||||
|
|
||||||
|
void uart3Putc(const char c)
|
||||||
|
{
|
||||||
|
uart3TxFifo.push(c);
|
||||||
|
USART_ITConfig(UART3, USART_IT_TXE, ENABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
Fifo<512> debugTxFifo;
|
|
||||||
void debugPutc(const char c)
|
void debugPutc(const char c)
|
||||||
{
|
{
|
||||||
debugTxFifo.push(c);
|
if (g_eeGeneral.uart3Mode == UART_MODE_DEBUG) {
|
||||||
USART_ITConfig(UART3, USART_IT_TXE, ENABLE);
|
uart3Putc(c);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
extern "C" void USART3_IRQHandler(void)
|
extern "C" void USART3_IRQHandler(void)
|
||||||
{
|
{
|
||||||
if (USART_GetITStatus(UART3, USART_IT_TXE) != RESET) {
|
if (USART_GetITStatus(UART3, USART_IT_TXE) != RESET) {
|
||||||
uint8_t txchar;
|
uint8_t txchar;
|
||||||
if (debugTxFifo.pop(txchar)) {
|
if (uart3TxFifo.pop(txchar)) {
|
||||||
/* Write one byte to the transmit data register */
|
/* Write one byte to the transmit data register */
|
||||||
USART_SendData(UART3, txchar);
|
USART_SendData(UART3, txchar);
|
||||||
}
|
}
|
||||||
|
@ -93,4 +118,3 @@ extern "C" void USART3_IRQHandler(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
|
@ -534,6 +534,10 @@ void processSerialData(uint8_t data)
|
||||||
btPushByte(data);
|
btPushByte(data);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (g_eeGeneral.uart3Mode == UART_MODE_SPORT) {
|
||||||
|
uart3Putc(data);
|
||||||
|
}
|
||||||
|
|
||||||
if (data == START_STOP) {
|
if (data == START_STOP) {
|
||||||
dataState = STATE_DATA_IN_FRAME;
|
dataState = STATE_DATA_IN_FRAME;
|
||||||
numPktBytes = 0;
|
numPktBytes = 0;
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
#define TR_TRNCHN "CH1CH2CH3CH4"
|
#define TR_TRNCHN "CH1CH2CH3CH4"
|
||||||
|
|
||||||
#define LEN_UART3MODES "\017"
|
#define LEN_UART3MODES "\017"
|
||||||
#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART"
|
#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART""Debug\0"
|
||||||
|
|
||||||
#define LEN_POTTYPES "\017"
|
#define LEN_POTTYPES "\017"
|
||||||
#define TR_POTTYPES "Pot\0 ""Multipos Switch"
|
#define TR_POTTYPES "Pot\0 ""Multipos Switch"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue