mirror of
https://github.com/opentx/opentx.git
synced 2025-07-15 04:15:26 +03:00
tx16s aux fixes
This commit is contained in:
parent
0609cdb2d3
commit
318e4dd516
6 changed files with 45 additions and 9 deletions
|
@ -1634,9 +1634,9 @@ Reads characters from the serial port. The string is allowed to contain any char
|
||||||
*/
|
*/
|
||||||
static int luaSerialRead(lua_State * L)
|
static int luaSerialRead(lua_State * L)
|
||||||
{
|
{
|
||||||
|
#if defined(LUA) && !defined(CLI)
|
||||||
int num = luaL_optunsigned(L, 1, 0);
|
int num = luaL_optunsigned(L, 1, 0);
|
||||||
|
|
||||||
#if defined(LUA) && !defined(CLI)
|
|
||||||
if (!luaRxFifo) {
|
if (!luaRxFifo) {
|
||||||
luaRxFifo = new Fifo<uint8_t, LUA_FIFO_SIZE>();
|
luaRxFifo = new Fifo<uint8_t, LUA_FIFO_SIZE>();
|
||||||
if (!luaRxFifo) {
|
if (!luaRxFifo) {
|
||||||
|
|
|
@ -41,7 +41,7 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(CLI)
|
#if !defined(CLI) || defined(AUX2_SERIAL)
|
||||||
#define LUA_FIFO_SIZE 256
|
#define LUA_FIFO_SIZE 256
|
||||||
extern Fifo<uint8_t, LUA_FIFO_SIZE> * luaRxFifo;
|
extern Fifo<uint8_t, LUA_FIFO_SIZE> * luaRxFifo;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -101,6 +101,7 @@ void auxSerialInit(unsigned int mode, unsigned int protocol)
|
||||||
#if defined(CROSSFIRE)
|
#if defined(CROSSFIRE)
|
||||||
if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||||
auxSerialSetup(CROSSFIRE_TELEM_MIRROR_BAUDRATE, false);
|
auxSerialSetup(CROSSFIRE_TELEM_MIRROR_BAUDRATE, false);
|
||||||
|
AUX_SERIAL_POWER_OFF();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -110,17 +111,20 @@ void auxSerialInit(unsigned int mode, unsigned int protocol)
|
||||||
#if defined(DEBUG) || defined(CLI)
|
#if defined(DEBUG) || defined(CLI)
|
||||||
case UART_MODE_DEBUG:
|
case UART_MODE_DEBUG:
|
||||||
auxSerialSetup(DEBUG_BAUDRATE, false);
|
auxSerialSetup(DEBUG_BAUDRATE, false);
|
||||||
|
AUX_SERIAL_POWER_OFF();
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case UART_MODE_TELEMETRY:
|
case UART_MODE_TELEMETRY:
|
||||||
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
||||||
auxSerialSetup(FRSKY_D_BAUDRATE, true);
|
auxSerialSetup(FRSKY_D_BAUDRATE, true);
|
||||||
|
AUX_SERIAL_POWER_OFF();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UART_MODE_LUA:
|
case UART_MODE_LUA:
|
||||||
auxSerialSetup(DEBUG_BAUDRATE, false);
|
auxSerialSetup(DEBUG_BAUDRATE, false);
|
||||||
|
AUX_SERIAL_POWER_ON();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +196,7 @@ extern "C" void AUX_SERIAL_USART_IRQHandler(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if defined(LUA) && !defined(CLI)
|
#if defined(LUA) & !defined(CLI)
|
||||||
if (luaRxFifo && auxSerialMode == UART_MODE_LUA) {
|
if (luaRxFifo && auxSerialMode == UART_MODE_LUA) {
|
||||||
// Receive
|
// Receive
|
||||||
uint32_t status = AUX_SERIAL_USART->SR;
|
uint32_t status = AUX_SERIAL_USART->SR;
|
||||||
|
@ -204,6 +208,19 @@ extern "C" void AUX_SERIAL_USART_IRQHandler(void)
|
||||||
status = AUX_SERIAL_USART->SR;
|
status = AUX_SERIAL_USART->SR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if defined(AUX2_SERIAL)
|
||||||
|
if (luaRxFifo && aux2SerialMode == UART_MODE_LUA) {
|
||||||
|
// Receive
|
||||||
|
uint32_t status = AUX2_SERIAL_USART->SR;
|
||||||
|
while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) {
|
||||||
|
uint8_t data = AUX2_SERIAL_USART->DR;
|
||||||
|
if (!(status & USART_FLAG_ERRORS)) {
|
||||||
|
luaRxFifo->push(data);
|
||||||
|
}
|
||||||
|
status = AUX2_SERIAL_USART->SR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -288,26 +305,31 @@ void aux2SerialInit(unsigned int mode, unsigned int protocol)
|
||||||
#if defined(CROSSFIRE)
|
#if defined(CROSSFIRE)
|
||||||
if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||||
aux2SerialSetup(CROSSFIRE_TELEM_MIRROR_BAUDRATE, false);
|
aux2SerialSetup(CROSSFIRE_TELEM_MIRROR_BAUDRATE, false);
|
||||||
|
AUX2_SERIAL_POWER_OFF();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
aux2SerialSetup(FRSKY_TELEM_MIRROR_BAUDRATE, false);
|
aux2SerialSetup(FRSKY_TELEM_MIRROR_BAUDRATE, false);
|
||||||
|
AUX2_SERIAL_POWER_OFF();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if defined(DEBUG) || defined(CLI)
|
#if defined(DEBUG) || defined(CLI)
|
||||||
case UART_MODE_DEBUG:
|
case UART_MODE_DEBUG:
|
||||||
aux2SerialSetup(DEBUG_BAUDRATE, false);
|
aux2SerialSetup(DEBUG_BAUDRATE, false);
|
||||||
|
AUX2_SERIAL_POWER_OFF();
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case UART_MODE_TELEMETRY:
|
case UART_MODE_TELEMETRY:
|
||||||
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
||||||
aux2SerialSetup(FRSKY_D_BAUDRATE, true);
|
aux2SerialSetup(FRSKY_D_BAUDRATE, true);
|
||||||
|
AUX2_SERIAL_POWER_OFF();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UART_MODE_LUA:
|
case UART_MODE_LUA:
|
||||||
aux2SerialSetup(DEBUG_BAUDRATE, false);
|
aux2SerialSetup(DEBUG_BAUDRATE, false);
|
||||||
|
AUX2_SERIAL_POWER_ON();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,18 @@ void auxSerialPowerOff()
|
||||||
GPIO_ResetBits(AUX_SERIAL_PWR_GPIO, AUX_SERIAL_PWR_GPIO_PIN);
|
GPIO_ResetBits(AUX_SERIAL_PWR_GPIO, AUX_SERIAL_PWR_GPIO_PIN);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(AUX2_SERIAL_PWR_GPIO)
|
||||||
|
void aux2SerialPowerOn()
|
||||||
|
{
|
||||||
|
GPIO_SetBits(AUX2_SERIAL_PWR_GPIO, AUX2_SERIAL_PWR_GPIO_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
void aux2SerialPowerOff()
|
||||||
|
{
|
||||||
|
GPIO_ResetBits(AUX2_SERIAL_PWR_GPIO, AUX2_SERIAL_PWR_GPIO_PIN);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if HAS_SPORT_UPDATE_CONNECTOR()
|
#if HAS_SPORT_UPDATE_CONNECTOR()
|
||||||
void sportUpdateInit()
|
void sportUpdateInit()
|
||||||
|
|
|
@ -627,11 +627,11 @@ void auxSerialStop();
|
||||||
void auxSerialPowerOn();
|
void auxSerialPowerOn();
|
||||||
void auxSerialPowerOff();
|
void auxSerialPowerOff();
|
||||||
#if defined(AUX_SERIAL_PWR_GPIO)
|
#if defined(AUX_SERIAL_PWR_GPIO)
|
||||||
#define AUX_SERIAL_POWER_ON() auxSerialPowerOn()
|
#define AUX_SERIAL_POWER_ON() auxSerialPowerOn()
|
||||||
#define AUX_SERIAL__POWER_OFF() auxSerialPowerOff()
|
#define AUX_SERIAL_POWER_OFF() auxSerialPowerOff()
|
||||||
#else
|
#else
|
||||||
#define AUX_SERIAL_POWER_ON()
|
#define AUX_SERIAL_POWER_ON()
|
||||||
#define AUX_SERIAL__POWER_OFF()
|
#define AUX_SERIAL_POWER_OFF()
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -647,10 +647,10 @@ void aux2SerialPowerOn();
|
||||||
void aux2SerialPowerOff();
|
void aux2SerialPowerOff();
|
||||||
#if defined(AUX2_SERIAL_PWR_GPIO)
|
#if defined(AUX2_SERIAL_PWR_GPIO)
|
||||||
#define AUX2_SERIAL_POWER_ON() aux2SerialPowerOn()
|
#define AUX2_SERIAL_POWER_ON() aux2SerialPowerOn()
|
||||||
#define AUX2_SERIAL__POWER_OFF() aux2SerialPowerOff()
|
#define AUX2_SERIAL_POWER_OFF() aux2SerialPowerOff()
|
||||||
#else
|
#else
|
||||||
#define AUX2_SERIAL_POWER_ON()
|
#define AUX2_SERIAL_POWER_ON()
|
||||||
#define AUX2_SERIAL__POWER_OFF()
|
#define AUX2_SERIAL_POWER_OFF()
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -393,7 +393,7 @@
|
||||||
|
|
||||||
// Serial Port (DEBUG)
|
// Serial Port (DEBUG)
|
||||||
#if defined(PCBX12S) || defined(RADIO_TX16S)
|
#if defined(PCBX12S) || defined(RADIO_TX16S)
|
||||||
#define AUX_SERIAL_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
|
#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_APB1Periph RCC_APB1Periph_USART3
|
||||||
#define AUX_SERIAL_RCC_APB2Periph 0
|
#define AUX_SERIAL_RCC_APB2Periph 0
|
||||||
#define AUX_SERIAL_GPIO GPIOB
|
#define AUX_SERIAL_GPIO GPIOB
|
||||||
|
@ -407,6 +407,8 @@
|
||||||
#define AUX_SERIAL_USART_IRQn USART3_IRQn
|
#define AUX_SERIAL_USART_IRQn USART3_IRQn
|
||||||
#define AUX_SERIAL_DMA_Stream_RX DMA1_Stream1
|
#define AUX_SERIAL_DMA_Stream_RX DMA1_Stream1
|
||||||
#define AUX_SERIAL_DMA_Channel_RX DMA_Channel_4
|
#define AUX_SERIAL_DMA_Channel_RX DMA_Channel_4
|
||||||
|
#define AUX_SERIAL_PWR_GPIO GPIOA
|
||||||
|
#define AUX_SERIAL_PWR_GPIO_PIN GPIO_Pin_15 // PB.00
|
||||||
#if defined(RADIO_TX16S)
|
#if defined(RADIO_TX16S)
|
||||||
#define TRAINER_BATTERY_COMPARTMENT // allows serial port TTL trainer
|
#define TRAINER_BATTERY_COMPARTMENT // allows serial port TTL trainer
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue