From 033de5e6275b468097d34ec0ff45a1bd2044d360 Mon Sep 17 00:00:00 2001 From: Piotr Wilkon Date: Tue, 4 Mar 2025 09:31:22 +0100 Subject: [PATCH] digi active led and disable switch, kiss tx deadlock resolved hopefully --- .cproject | 596 +++++++++++-------------------- CHANGELOG.md | 13 +- Core/Inc/digipeater.h | 11 +- Core/Inc/drivers/digipeater_ll.h | 62 ++++ Core/Inc/drivers/modem_ll.h | 78 ++-- Core/Inc/drivers/uart_ll.h | 22 +- Core/Inc/drivers/usb.h | 6 +- Core/Src/common.c | 14 +- Core/Src/digipeater.c | 28 +- Core/Src/main.c | 19 +- Core/Src/uart.c | 2 + doc/manual.md | 5 +- doc/manual_pl.md | 5 +- doc/schematic.png | Bin 57463 -> 47683 bytes 14 files changed, 391 insertions(+), 470 deletions(-) create mode 100644 Core/Inc/drivers/digipeater_ll.h diff --git a/.cproject b/.cproject index 6dcb8d2..9caa672 100644 --- a/.cproject +++ b/.cproject @@ -1,398 +1,202 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dba6c9..d1736d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# 2.1.0 (2025-03-04) +## New features +* Digipeater disable input at PB0 (pull to GND to disable digipeater) +* Digipeater active LED at PB1 (high state when active) +## Bug fixes +* Hopefully resolved KISS TX deadlock ultimately... +* No more problems when entering callsigns without explicit SSID +## Other +* do...while(0) guards on multiline macros +## Known bugs +* none # 2.0.1 (2025-02-06) ## New features * none @@ -6,7 +17,7 @@ ## Other * none ## Known bugs -* none +* KISS TX deadlock still present anyway... # 2.0.0 (2023-09-09) ## New features * New modems: AFSK Bell 103 (300 Bd, 1600/1800 Hz), GFSK G3RUH (9600 Bd), AFSK V.23 (1200 Bd, 1300/2100 Hz) diff --git a/Core/Inc/digipeater.h b/Core/Inc/digipeater.h index 8decfc9..01b478a 100644 --- a/Core/Inc/digipeater.h +++ b/Core/Inc/digipeater.h @@ -1,5 +1,5 @@ /* -Copyright 2020-2023 Piotr Wilkon +Copyright 2020-2025 Piotr Wilkon This file is part of VP-Digi. @@ -59,9 +59,14 @@ void DigiDigipeat(uint8_t *frame, uint16_t len); void DigiStoreDeDupe(uint8_t *buf, uint16_t size); /** - * @brief Refresh viscous-delay buffers and push frames to TX buffer if necessary + * @brief Initialize digipeater + */ +void DigiInitialize(void); + +/** + * @brief Update internal digipeater state * @attention Should be called in main loop */ -void DigiViscousRefresh(void); +void DigiUpdateState(void); #endif /* DIGIPEATER_H_ */ diff --git a/Core/Inc/drivers/digipeater_ll.h b/Core/Inc/drivers/digipeater_ll.h new file mode 100644 index 0000000..666469b --- /dev/null +++ b/Core/Inc/drivers/digipeater_ll.h @@ -0,0 +1,62 @@ +/* +Copyright 2020-2025 Piotr Wilkon +This file is part of VP-Digi. + +VP-Digi is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +VP-Digi is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with VP-Digi. If not, see . +*/ + +/* + * This file is kind of HAL for digipeater external controls and signalization + */ + +#ifndef DRIVERS_DIGIPEATER_LL_H_ +#define DRIVERS_DIGIPEATER_LL_H_ + +#include + +#if defined(STM32F103xB) || defined(STM32F103x8) + +#include "stm32f1xx.h" + +#define DIGIPEATER_LL_LED_ON() (GPIOB->BSRR = GPIO_BSRR_BS1) +#define DIGIPEATER_LL_LED_OFF() (GPIOB->BSRR = GPIO_BSRR_BR1) + +/** + * @brief Get external digipeater disable state + * @return True if disabled, false if enabled + */ +#define DIGIPEATER_LL_GET_DISABLE_STATE() (!(GPIOB->IDR & GPIO_IDR_IDR0)) + +#define DIGIPEATER_LL_INITIALIZE_RCC() do { \ + RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; \ +} while(0); \ + +#define DIGIPEATER_LL_INITIALIZE_INPUTS_OUTPUTS() do { \ + /* Digi disable input: PB0 (active low - pull up); digi active output: PB1 (active high) */ \ + /* Digi disable input: PB0 */ \ + GPIOB->CRL &= ~GPIO_CRL_MODE0; \ + GPIOB->CRL &= ~GPIO_CRL_CNF0_0; \ + GPIOB->CRL |= GPIO_CRL_CNF0_1; \ + GPIOB->BSRR = GPIO_BSRR_BS0; \ + /* Digi active LED: PB1 */ \ + GPIOB->CRL |= GPIO_CRL_MODE1_1; \ + GPIOB->CRL &= ~GPIO_CRL_MODE1_0; \ + GPIOB->CRL &= ~GPIO_CRL_CNF1; \ +} while(0); \ + + + +#endif + +#endif diff --git a/Core/Inc/drivers/modem_ll.h b/Core/Inc/drivers/modem_ll.h index 90a3c82..70bf938 100644 --- a/Core/Inc/drivers/modem_ll.h +++ b/Core/Inc/drivers/modem_ll.h @@ -1,5 +1,5 @@ /* -Copyright 2020-2023 Piotr Wilkon +Copyright 2020-2025 Piotr Wilkon This file is part of VP-Digi. VP-Digi is free software: you can redistribute it and/or modify @@ -49,42 +49,42 @@ along with VP-Digi. If not, see . #define MODEM_LL_BAUDRATE_TIMER_IRQ TIM3_IRQn #define MODEM_LL_DMA_TRANSFER_COMPLETE_FLAG (DMA1->ISR & DMA_ISR_TCIF2) -#define MODEM_LL_DMA_CLEAR_TRANSFER_COMPLETE_FLAG() {DMA1->IFCR |= DMA_IFCR_CTCIF2;} +#define MODEM_LL_DMA_CLEAR_TRANSFER_COMPLETE_FLAG() (DMA1->IFCR |= DMA_IFCR_CTCIF2) -#define MODEM_LL_BAUDRATE_TIMER_CLEAR_INTERRUPT_FLAG() {TIM3->SR &= ~TIM_SR_UIF;} -#define MODEM_LL_BAUDRATE_TIMER_ENABLE() {TIM3->CR1 = TIM_CR1_CEN;} -#define MODEM_LL_BAUDRATE_TIMER_DISABLE() {TIM3->CR1 &= ~TIM_CR1_CEN;} -#define MODEM_LL_BAUDRATE_TIMER_SET_RELOAD_VALUE(val) {TIM3->ARR = (val);} +#define MODEM_LL_BAUDRATE_TIMER_CLEAR_INTERRUPT_FLAG() (TIM3->SR &= ~TIM_SR_UIF) +#define MODEM_LL_BAUDRATE_TIMER_ENABLE() (TIM3->CR1 = TIM_CR1_CEN) +#define MODEM_LL_BAUDRATE_TIMER_DISABLE() (TIM3->CR1 &= ~TIM_CR1_CEN) +#define MODEM_LL_BAUDRATE_TIMER_SET_RELOAD_VALUE(val) (TIM3->ARR = (val)) -#define MODEM_LL_DAC_TIMER_CLEAR_INTERRUPT_FLAG {TIM1->SR &= ~TIM_SR_UIF;} -#define MODEM_LL_DAC_TIMER_SET_RELOAD_VALUE(val) {TIM1->ARR = (val);} -#define MODEM_LL_DAC_TIMER_SET_CURRENT_VALUE(val) {TIM1->CNT = (val);} -#define MODEM_LL_DAC_TIMER_ENABLE() {TIM1->CR1 |= TIM_CR1_CEN;} -#define MODEM_LL_DAC_TIMER_DISABLE() {TIM1->CR1 &= ~TIM_CR1_CEN;} +#define MODEM_LL_DAC_TIMER_CLEAR_INTERRUPT_FLAG (TIM1->SR &= ~TIM_SR_UIF) +#define MODEM_LL_DAC_TIMER_SET_RELOAD_VALUE(val) (TIM1->ARR = (val)) +#define MODEM_LL_DAC_TIMER_SET_CURRENT_VALUE(val) (TIM1->CNT = (val)) +#define MODEM_LL_DAC_TIMER_ENABLE() (TIM1->CR1 |= TIM_CR1_CEN) +#define MODEM_LL_DAC_TIMER_DISABLE() (TIM1->CR1 &= ~TIM_CR1_CEN) -#define MODEM_LL_ADC_TIMER_ENABLE() {TIM2->CR1 |= TIM_CR1_CEN;} -#define MODEM_LL_ADC_TIMER_DISABLE() {TIM2->CR1 &= ~TIM_CR1_CEN;} +#define MODEM_LL_ADC_TIMER_ENABLE() (TIM2->CR1 |= TIM_CR1_CEN) +#define MODEM_LL_ADC_TIMER_DISABLE() (TIM2->CR1 &= ~TIM_CR1_CEN) -#define MODEM_LL_PWM_PUT_VALUE(value) {TIM4->CCR1 = (value);} +#define MODEM_LL_PWM_PUT_VALUE(value) (TIM4->CCR1 = (value)) -#define MODEM_LL_R2R_PUT_VALUE(value) {GPIOB->ODR &= ~0xF000; \ - GPIOB->ODR |= ((uint32_t)(value) << 12); }\ +#define MODEM_LL_R2R_PUT_VALUE(value) do {GPIOB->ODR &= ~0xF000; \ + GPIOB->ODR |= ((uint32_t)(value) << 12); } while(0); \ -#define MODEM_LL_DCD_LED_ON() { \ +#define MODEM_LL_DCD_LED_ON() do { \ GPIOC->BSRR = GPIO_BSRR_BR13; \ GPIOB->BSRR = GPIO_BSRR_BS5; \ -} \ +} while(0); \ -#define MODEM_LL_DCD_LED_OFF() { \ +#define MODEM_LL_DCD_LED_OFF() do { \ GPIOC->BSRR = GPIO_BSRR_BS13; \ GPIOB->BSRR = GPIO_BSRR_BR5; \ -} \ +} while(0); \ -#define MODEM_LL_PTT_ON() {GPIOB->BSRR = GPIO_BSRR_BS7;} -#define MODEM_LL_PTT_OFF() {GPIOB->BSRR = GPIO_BSRR_BR7;} +#define MODEM_LL_PTT_ON() (GPIOB->BSRR = GPIO_BSRR_BS7) +#define MODEM_LL_PTT_OFF() (GPIOB->BSRR = GPIO_BSRR_BR7) -#define MODEM_LL_INITIALIZE_RCC() { \ +#define MODEM_LL_INITIALIZE_RCC() do { \ RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; \ RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; \ RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; \ @@ -94,9 +94,9 @@ along with VP-Digi. If not, see . RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; \ RCC->AHBENR |= RCC_AHBENR_DMA1EN; \ RCC->APB1ENR |= RCC_APB1ENR_TIM4EN; \ -} \ +} while(0); \ -#define MODEM_LL_INITIALIZE_OUTPUTS() { \ +#define MODEM_LL_INITIALIZE_OUTPUTS() do { \ /* DCD LEDs: PC13 (cathode driven - built-in LED on Blue Pill) and PB5 (anode driven) */ \ GPIOC->CRH |= GPIO_CRH_MODE13_1; \ GPIOC->CRH &= ~GPIO_CRH_MODE13_0; \ @@ -115,9 +115,9 @@ along with VP-Digi. If not, see . GPIOB->CRL |= GPIO_CRL_CNF6_1; \ GPIOB->CRL |= GPIO_CRL_MODE6; \ GPIOB->CRL &= ~GPIO_CRL_CNF6_0; \ -} \ +} while(0); \ -#define MODEM_LL_INITIALIZE_ADC() { \ +#define MODEM_LL_INITIALIZE_ADC() do { \ /* ADC input: PA0 */ \ GPIOA->CRL &= ~GPIO_CRL_CNF0; \ GPIOA->CRL &= ~GPIO_CRL_MODE0; \ @@ -140,9 +140,9 @@ along with VP-Digi. If not, see . ; \ ADC1->CR2 |= ADC_CR2_EXTTRIG; \ ADC1->CR2 |= ADC_CR2_SWSTART; \ -} \ +} while(0); \ -#define MODEM_LL_INITIALIZE_DMA(buffer) { \ +#define MODEM_LL_INITIALIZE_DMA(buffer) do { \ /* 16 bit memory region */ \ DMA1_Channel2->CCR |= DMA_CCR_MSIZE_0; \ DMA1_Channel2->CCR &= ~DMA_CCR_MSIZE_1; \ @@ -154,28 +154,28 @@ along with VP-Digi. If not, see . DMA1_Channel2->CPAR = (uintptr_t)&(ADC1->DR); \ DMA1_Channel2->CMAR = (uintptr_t)buffer; \ DMA1_Channel2->CCR |= DMA_CCR_EN; \ -} \ +} while(0); \ -#define MODEM_LL_ADC_TIMER_INITIALIZE() { \ +#define MODEM_LL_ADC_TIMER_INITIALIZE() do { \ /* 72 / 9 = 8 MHz */ \ TIM2->PSC = 8; \ /* enable DMA call instead of standard interrupt */ \ TIM2->DIER |= TIM_DIER_UDE; \ -} \ +} while(0); \ -#define MODEM_LL_DAC_TIMER_INITIALIZE() { \ +#define MODEM_LL_DAC_TIMER_INITIALIZE() do { \ /* 72 / 4 = 18 MHz */ \ TIM1->PSC = 3; \ TIM1->DIER |= TIM_DIER_UIE; \ -} \ +} while(0); \ -#define MODEM_LL_BAUDRATE_TIMER_INITIALIZE() { \ +#define MODEM_LL_BAUDRATE_TIMER_INITIALIZE() do { \ /* 72 / 4 = 18 MHz */ \ TIM3->PSC = 3; \ TIM3->DIER |= TIM_DIER_UIE; \ -} \ +} while(0); \ -#define MODEM_LL_PWM_INITIALIZE() { \ +#define MODEM_LL_PWM_INITIALIZE() do { \ /* 72 / 3 = 24 MHz to provide 8 bit resolution at around 100 kHz */ \ TIM4->PSC = 2; \ /* 24 MHz / 258 = 93 kHz */ \ @@ -183,9 +183,9 @@ along with VP-Digi. If not, see . TIM4->CCMR1 |= TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2; \ TIM4->CCER |= TIM_CCER_CC1E; \ TIM4->CR1 |= TIM_CR1_CEN; \ -} \ +} while(0); \ -#define MODEM_LL_ADC_SET_SAMPLE_RATE(rate) {TIM2->ARR = (8000000 / (rate)) - 1;} +#define MODEM_LL_ADC_SET_SAMPLE_RATE(rate) (TIM2->ARR = (8000000 / (rate)) - 1) #define MODEM_LL_DAC_TIMER_CALCULATE_STEP(frequency) ((18000000 / (frequency)) - 1) diff --git a/Core/Inc/drivers/uart_ll.h b/Core/Inc/drivers/uart_ll.h index be7e033..d74ea7a 100644 --- a/Core/Inc/drivers/uart_ll.h +++ b/Core/Inc/drivers/uart_ll.h @@ -1,5 +1,5 @@ /* -Copyright 2020-2023 Piotr Wilkon +Copyright 2020-2025 Piotr Wilkon This file is part of VP-Digi. VP-Digi is free software: you can redistribute it and/or modify @@ -27,22 +27,22 @@ along with VP-Digi. If not, see . #include "stm32f1xx.h" -#define UART_LL_ENABLE(port) {port->CR1 |= USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE | USART_CR1_UE | USART_CR1_IDLEIE;} -#define UART_LL_DISABLE(port) {port->CR1 &= (~USART_CR1_RXNEIE) & (~USART_CR1_TE) & (~USART_CR1_RE) & (~USART_CR1_UE) & (~USART_CR1_IDLEIE);} +#define UART_LL_ENABLE(port) (port->CR1 |= USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE | USART_CR1_UE | USART_CR1_IDLEIE) +#define UART_LL_DISABLE(port) (port->CR1 &= (~USART_CR1_RXNEIE) & (~USART_CR1_TE) & (~USART_CR1_RE) & (~USART_CR1_UE) & (~USART_CR1_IDLEIE)) #define UART_LL_CHECK_RX_NOT_EMPTY(port) (port->SR & USART_SR_RXNE) -#define UART_LL_CLEAR_RX_NOT_EMPTY(port) {port->SR &= ~USART_SR_RXNE;} +#define UART_LL_CLEAR_RX_NOT_EMPTY(port) (port->SR &= ~USART_SR_RXNE) #define UART_LL_CHECK_TX_EMPTY(port) (port->SR & USART_SR_TXE) -#define UART_LL_ENABLE_TX_EMPTY_INTERRUPT(port) {port->CR1 |= USART_CR1_TXEIE;} -#define UART_LL_DISABLE_TX_EMPTY_INTERRUPT(port) {port->CR1 &= ~USART_CR1_TXEIE;} +#define UART_LL_ENABLE_TX_EMPTY_INTERRUPT(port) (port->CR1 |= USART_CR1_TXEIE) +#define UART_LL_DISABLE_TX_EMPTY_INTERRUPT(port) (port->CR1 &= ~USART_CR1_TXEIE) #define UART_LL_CHECK_ENABLED_TX_EMPTY_INTERRUPT(port) (port->CR1 & USART_CR1_TXEIE) #define UART_LL_CHECK_RX_IDLE(port) (port->SR & USART_SR_IDLE) #define UART_LL_GET_DATA(port) (port->DR) -#define UART_LL_PUT_DATA(port, data) {port->DR = (data);} +#define UART_LL_PUT_DATA(port, data) (port->DR = (data)) #define UART_LL_UART1_INTERUPT_HANDLER USART1_IRQHandler @@ -54,7 +54,7 @@ along with VP-Digi. If not, see . #define UART_LL_UART1_IRQ USART1_IRQn #define UART_LL_UART2_IRQ USART2_IRQn -#define UART_LL_UART1_INITIALIZE_PERIPHERAL(baudrate) { \ +#define UART_LL_UART1_INITIALIZE_PERIPHERAL(baudrate) do { \ RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; \ RCC->APB2ENR |= RCC_APB2ENR_USART1EN; \ GPIOA->CRH |= GPIO_CRH_MODE9_1; \ @@ -63,9 +63,9 @@ along with VP-Digi. If not, see . GPIOA->CRH |= GPIO_CRH_CNF10_0; \ GPIOA->CRH &= ~GPIO_CRH_CNF10_1; \ UART_LL_UART1_STRUCTURE->BRR = (SystemCoreClock / baudrate); \ -} \ +} while(0); \ -#define UART_LL_UART2_INITIALIZE_PERIPHERAL(baudrate) { \ +#define UART_LL_UART2_INITIALIZE_PERIPHERAL(baudrate) do { \ RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; \ RCC->APB1ENR |= RCC_APB1ENR_USART2EN; \ GPIOA->CRL |= GPIO_CRL_MODE2_1; \ @@ -74,7 +74,7 @@ along with VP-Digi. If not, see . GPIOA->CRL |= GPIO_CRL_CNF3_0; \ GPIOA->CRL &= ~GPIO_CRL_CNF3_1; \ UART_LL_UART2_STRUCTURE->BRR = (SystemCoreClock / (baudrate * 2)); \ -} \ +} while(0); \ #endif diff --git a/Core/Inc/drivers/usb.h b/Core/Inc/drivers/usb.h index a8c40a7..0b33672 100644 --- a/Core/Inc/drivers/usb.h +++ b/Core/Inc/drivers/usb.h @@ -1,5 +1,5 @@ /* -Copyright 2020-2023 Piotr Wilkon +Copyright 2020-2025 Piotr Wilkon This file is part of VP-Digi. @@ -27,7 +27,7 @@ along with VP-Digi. If not, see . #include "stm32f1xx.h" -#define USB_FORCE_REENUMERATION() { \ +#define USB_FORCE_REENUMERATION() do { \ /* Pull D+ to ground for a moment to force reenumeration */ \ RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; \ GPIOA->CRH |= GPIO_CRH_MODE12_1; \ @@ -36,7 +36,7 @@ along with VP-Digi. If not, see . Delay(100); \ GPIOA->CRH &= ~GPIO_CRH_MODE12; \ GPIOA->CRH |= GPIO_CRH_CNF12_0; \ -} \ +} while(0); \ #endif diff --git a/Core/Src/common.c b/Core/Src/common.c index 1bc1237..5d9b5d0 100644 --- a/Core/Src/common.c +++ b/Core/Src/common.c @@ -32,7 +32,7 @@ struct _GeneralConfig GeneralConfig = }; -const char versionString[] = "VP-Digi v. 2.0.1\r\nThe open-source standalone APRS digipeater controller and KISS TNC\r\n" +const char versionString[] = "VP-Digi v. 2.1.0\r\nThe open-source standalone APRS digipeater controller and KISS TNC\r\n" #ifdef ENABLE_FX25 "With FX.25 support compiled-in\r\n" #endif @@ -221,27 +221,27 @@ bool ParseCallsign(const char *in, uint16_t size, uint8_t *out) bool ParseCallsignWithSsid(const char *in, uint16_t size, uint8_t *out, uint8_t *ssid) { - uint16_t ssidPosition = size; + uint16_t hyphenPosition = size; for(uint16_t i = 0; i < size; i++) { if(in[i] == '-') { - ssidPosition = i; + hyphenPosition = i; break; } } - ssidPosition++; - if(!ParseCallsign(in, ssidPosition - 1, out)) + if(!ParseCallsign(in, hyphenPosition, out)) return false; - if(ssidPosition == size) + if(hyphenPosition == size) { *ssid = 0; return true; } - if(!ParseSsid(&in[ssidPosition], size - ssidPosition, ssid)) + if(!ParseSsid(&in[hyphenPosition + 1], size - hyphenPosition - 1, ssid)) return false; + return true; } diff --git a/Core/Src/digipeater.c b/Core/Src/digipeater.c index bf87e46..9da0967 100644 --- a/Core/Src/digipeater.c +++ b/Core/Src/digipeater.c @@ -1,5 +1,5 @@ /* -Copyright 2020-2023 Piotr Wilkon +Copyright 2020-2025 Piotr Wilkon This file is part of VP-Digi. @@ -25,6 +25,7 @@ along with VP-Digi. If not, see . #include #include #include +#include "drivers/digipeater_ll.h" struct _DigiConfig DigiConfig; @@ -77,7 +78,7 @@ static uint8_t viscousCheckAndRemove(uint32_t hash) -void DigiViscousRefresh(void) +static void DigiViscousRefresh(void) { if(DigiConfig.viscous == 0) //viscous digipeating disabled on every alias { @@ -310,7 +311,7 @@ static void makeFrame(uint8_t *frame, uint16_t elStart, uint16_t len, uint32_t h void DigiDigipeat(uint8_t *frame, uint16_t len) { - if(!DigiConfig.enable) + if(!DigiConfig.enable || DIGIPEATER_LL_GET_DISABLE_STATE()) return; uint16_t t = 13; //start from first byte that can contain path end bit @@ -468,3 +469,24 @@ void DigiStoreDeDupe(uint8_t *buf, uint16_t size) deDupeCount++; } + +void DigiInitialize(void) +{ + DIGIPEATER_LL_INITIALIZE_RCC(); + DIGIPEATER_LL_INITIALIZE_INPUTS_OUTPUTS(); +} + +void DigiUpdateState(void) +{ + if(DigiConfig.enable) + { + if(DIGIPEATER_LL_GET_DISABLE_STATE()) + DIGIPEATER_LL_LED_OFF(); + else + DIGIPEATER_LL_LED_ON(); + } + else + DIGIPEATER_LL_LED_OFF(); + + DigiViscousRefresh(); +} diff --git a/Core/Src/main.c b/Core/Src/main.c index 1762f5c..c61e219 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -16,7 +16,7 @@ ****************************************************************************** */ /* -Copyright 2020-2023 Piotr Wilkon +Copyright 2020-2025 Piotr Wilkon This file is part of VP-Digi. @@ -230,6 +230,8 @@ int main(void) Fx25Init(); #endif + DigiInitialize(); + UartInit(&Uart1, UART_LL_UART1_STRUCTURE, Uart1.baudrate); UartInit(&Uart2, UART_LL_UART2_STRUCTURE, Uart2.baudrate); UartInit(&UartUsb, NULL, 1); @@ -253,7 +255,7 @@ int main(void) if(Ax25GetReceivedFrameBitmap()) handleFrame(); - DigiViscousRefresh(); //refresh viscous-delay buffers + DigiUpdateState(); //update digipeater state Ax25TransmitBuffer(); //transmit buffer (will return if nothing to be transmitted) @@ -272,7 +274,18 @@ int main(void) TermParse(&UartUsb); UartClearRx(&UartUsb); } - UartUsb.rxType = DATA_NOTHING; + //previously there was just UartUsb.rxType = DATA_NOTHING, which could introduce deadlocks + //assume that we were here, because rxType was DATA_USB, but in the meantime a new USB interrupt fired and rxType changed to DATA_KISS, + //and the KISS parsing handler would set kissProcessingOngoing to 1. Then, we change rxType to DATA_NOTHING and are left in an incorrect scenario, when + //rxType is DATA_NOTHING, and kissProcessingOngoing is 1, which is a clear deadlock, because then DATA_KISS can never be reached again. + //That's why it is necessary to disable interrupts and check one more time for rxType before clearing it + else + { + __disable_irq(); + if(UartUsb.rxType == DATA_USB) + UartUsb.rxType = DATA_NOTHING; + __enable_irq(); + } } if(Uart1.rxType != DATA_NOTHING) { diff --git a/Core/Src/uart.c b/Core/Src/uart.c index a4f0e43..2d91a92 100644 --- a/Core/Src/uart.c +++ b/Core/Src/uart.c @@ -218,7 +218,9 @@ void UartConfig(Uart *port, uint8_t state) void UartClearRx(Uart *port) { + __disable_irq(); port->rxBufferHead = 0; port->rxType = DATA_NOTHING; + __enable_irq(); } diff --git a/doc/manual.md b/doc/manual.md index 4dffe71..73ff9dc 100644 --- a/doc/manual.md +++ b/doc/manual.md @@ -1,5 +1,5 @@ # VP-Digi - documentation -Copyright 2023-2024 Piotr Wilkoń\ +Copyright 2023-2025 Piotr Wilkoń\ Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available under [LICENSE_FDL](LICENSE_FDL).\ The changelog is placed at the bottom of this document. ## Table of contents @@ -33,7 +33,6 @@ The changelog is placed at the bottom of this document. - [3.2.2.2. Transmission](#3222-transmission) - [3.2.3. Digipeater](#323-digipeater) - [4. Documentation changelog](#4-documentation-changelog) - - [2023/09/06](#20230906) ## 1. Functional description VP-Digi is a standalone AX.25 digipeater controller (e.g., APRS) and a KISS TNC controller. The software is equipped with the following modems: @@ -350,6 +349,8 @@ If *viscous delay* functionality is enabled for the matched alias, the completed In addition, the *viscous delay* buffer is regularly refreshed. If the specified time has passed, and the packet has not been removed from the buffer (see *the beginning of this section*), its hash is saved to the duplicate filter buffer, the packet is transmitted, and removed from the *viscous delay* buffer. ## 4. Documentation changelog +### 2025/03/04 +- New schematic - Piotr Wilkoń ### 2024/05/16 - Default UART parameters and backspace handling - Piotr Wilkoń ### 2023/11/12 diff --git a/doc/manual_pl.md b/doc/manual_pl.md index b42f2e9..e764ea3 100644 --- a/doc/manual_pl.md +++ b/doc/manual_pl.md @@ -1,5 +1,5 @@ # VP-Digi - dokumentacja -Copyright 2023-2024 Piotr Wilkoń\ +Copyright 2023-2025 Piotr Wilkoń\ Zezwala się na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego dokumentu na warunkach Licencji GNU Wolnej Dokumentacji (GNU Free Documentation License) w wersji 1.3 lub dowolnej nowszej opublikowanej przez Free Software Foundation, bez żadnych Części nienaruszalnych, bez Tekstów przedniej lub tylnej strony okładki. Egzemplarz licencji zamieszczono w pliku [LICENSE_FDL](LICENSE_FDL).\ @@ -35,7 +35,6 @@ Rejestr zmian dostępny jest na końcu tego dokumentu. - [3.2.2.2. Nadawanie](#3222-nadawanie) - [3.2.3. Digipeater](#323-digipeater) - [4. Rejestr zmian dokumentacji](#4-rejestr-zmian-dokumentacji) - - [2023/09/06](#20230906) ## 1. Opis funkcjonalny VP-Digi jest samodzielnym sterownikiem digipeatera AX.25 (np. APRS) oraz kontrolerem TNC w standardzie KISS.\ @@ -334,6 +333,8 @@ Jeśli dla dopasowanego aliasu włączona jest funkcja *viscous delay*, to gotow Ponadto regularnie odświeżany jest bufor funkcji *viscous delay*. Jeśli minął odpowiedni czas i pakiet nie został usunięty z bufora (patrz *początek tej sekcji*), to jego hasz jest zapisywany do bufora filtra duplikatów, pakiet jest wysyłany i usuwany z bufora *viscous delay*. ## 4. Rejestr zmian dokumentacji +### 2025/03/04 +- Nowy schemat - Piotr Wilkoń ### 2024/05/16 - Dodanie informacji o domyślnej konfiguracji UART oraz obsłudze backspace - Piotr Wilkoń ### 2023/11/12 diff --git a/doc/schematic.png b/doc/schematic.png index ccf9d29dbd01b2d1febbaf48b600a0a20ac15c39..5499c2c8f6ecc40c558f8365c07e831107602275 100644 GIT binary patch literal 47683 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