From 6ef27c27b1df1aa5f181a8d09c73e4ed6cd43b04 Mon Sep 17 00:00:00 2001 From: Luca Marchesano Date: Wed, 22 Aug 2018 10:53:38 +0200 Subject: [PATCH] Update 48k --- Config.h | 8 ++++---- Globals.h | 6 ++++++ IODue.cpp | 2 +- IOSTM.cpp | 43 ++++++++++++++++++++++++++---------------- IOTeensy.cpp | 2 +- MMDVM_STM32F4xx.coproj | 20 ++++++++++---------- NXDNTX.cpp | 2 +- P25TX.cpp | 2 +- POCSAGTX.cpp | 2 +- SerialPort.cpp | 2 +- SerialRB.h | 4 ++++ YSFTX.cpp | 5 +++-- mmdvmmenu.sh | 2 +- 13 files changed, 61 insertions(+), 39 deletions(-) diff --git a/Config.h b/Config.h index 703d11c..ffdca3b 100644 --- a/Config.h +++ b/Config.h @@ -38,8 +38,8 @@ // Allow the use of the COS line to lockout the modem // #define USE_COS_AS_LOCKOUT -// Use pins to output the current mode -// #define MODE_PINS +// Use pins to output the current mode via LEDs +// #define MODE_LEDS // For the original Arduino Due pin layout // #define ARDUINO_DUE_PAPA @@ -57,8 +57,8 @@ // #define STM32F4_NUCLEO_MORPHO_HEADER #define STM32F4_NUCLEO_ARDUINO_HEADER -// Use separate mode pins to switch external filters/bandwidth for example -// #define STM32F4_NUCLEO_MODE_PINS +// Use separate mode pins to switch external channel/filters/bandwidth for example +// #define MODE_PINS // For the VK6MST Pi3 Shield communicating over i2c. i2c address & speed defined in i2cTeensy.cpp // #define VK6MST_TEENSY_PI3_SHIELD_I2C diff --git a/Globals.h b/Globals.h index c1fce11..00e349f 100644 --- a/Globals.h +++ b/Globals.h @@ -97,6 +97,12 @@ const uint16_t RX_BLOCK_SIZE = 2U; const uint16_t TX_RINGBUFFER_SIZE = 1000U; const uint16_t RX_RINGBUFFER_SIZE = 1200U; +#if defined(STM32F105xC) || defined(__MK20DX256__) +const uint16_t TX_BUFFER_LEN = 2000U; +#else +const uint16_t TX_BUFFER_LEN = 4000U; +#endif + extern MMDVM_STATE m_modemState; extern bool m_dstarEnable; diff --git a/IODue.cpp b/IODue.cpp index b777020..9cf1ddc 100644 --- a/IODue.cpp +++ b/IODue.cpp @@ -95,7 +95,7 @@ void CIO::initInt() pinMode(PIN_LED, OUTPUT); pinMode(PIN_COS, INPUT); -#if defined(MODE_PINS) +#if defined(MODE_LEDS) // Set up the mode output pins pinMode(PIN_DSTAR, OUTPUT); pinMode(PIN_DMR, OUTPUT); diff --git a/IOSTM.cpp b/IOSTM.cpp index d94e643..2cd9319 100644 --- a/IOSTM.cpp +++ b/IOSTM.cpp @@ -433,6 +433,7 @@ DMR PC6 output YSF PC7 output P25 PC8 output NXDN PC9 output +POCSAG PA8 output RX PA0 analog input RSSI PA7 analog input @@ -465,9 +466,9 @@ EXT_CLK PA15 input #define PORT_NXDN GPIOC #define RCC_Per_NXDN RCC_AHB1Periph_GPIOC -#define PIN_POCSAG GPIO_Pin_12 -#define PORT_POCSAG GPIOB -#define RCC_Per_POCSAG RCC_AHB1Periph_GPIOB +#define PIN_POCSAG GPIO_Pin_8 +#define PORT_POCSAG GPIOA +#define RCC_Per_POCSAG RCC_AHB1Periph_GPIOA #define PIN_DSTAR GPIO_Pin_15 #define PORT_DSTAR GPIOB @@ -514,13 +515,14 @@ DMR PB4 output CN10 Pin27 YSF PB5 output CN10 Pin29 P25 PB3 output CN10 Pin31 NXDN PA10 output CN10 Pin33 -POCSAG PB12 output +POCSAG PB12 output CN10 Pin16 MDSTAR PC4 output CN10 Pin34 MDMR PC5 output CN10 Pin6 MYSF PC2 output CN7 Pin35 MP25 PC3 output CN7 Pin37 MNXDN PC6 output CN10 Pin4 +MPOCSAG PC8 output CN10 Pin2 RX PA0 analog input CN7 Pin28 RSSI PA1 analog input CN7 Pin30 @@ -569,7 +571,7 @@ EXT_CLK PA15 input CN7 Pin17 #define PORT_YSF GPIOB #define RCC_Per_YSF RCC_AHB1Periph_GPIOB -#if defined(STM32F4_NUCLEO_MODE_PINS) +#if defined(MODE_PINS) #define PIN_MP25 GPIO_Pin_3 #define PORT_MP25 GPIOC #define RCC_Per_MP25 RCC_AHB1Periph_GPIOC @@ -589,6 +591,10 @@ EXT_CLK PA15 input CN7 Pin17 #define PIN_MYSF GPIO_Pin_2 #define PORT_MYSF GPIOC #define RCC_Per_MYSF RCC_AHB1Periph_GPIOC + +#define PIN_MPOCSAG GPIO_Pin_8 +#define PORT_MPOCSAG GPIOC +#define RCC_Per_MPOCSAG RCC_AHB1Periph_GPIOC #endif #define PIN_EXT_CLK GPIO_Pin_15 @@ -761,7 +767,7 @@ EXT_CLK PA15 input CN11 Pin17 #define PORT_YSF GPIOB #define RCC_Per_YSF RCC_AHB1Periph_GPIOB -#if defined(STM32F4_NUCLEO_MODE_PINS) +#if defined(MODE_PINS) #define PIN_MP25 GPIO_Pin_3 #define PORT_MP25 GPIOC #define RCC_Per_MP25 RCC_AHB1Periph_GPIOC @@ -814,6 +820,7 @@ NXDN PB9 output DSTAR PB6 output DMR PB5 output YSF PB7 output +POCSAG PC10 output RX PB0 analog input RSSI PB1 analog input @@ -859,6 +866,10 @@ EXT_CLK PA15 input #define PORT_YSF GPIOB #define RCC_Per_YSF RCC_AHB1Periph_GPIOB +#define PIN_POCSAG GPIO_Pin_10 +#define PORT_POCSAG GPIOC +#define RCC_Per_POCSAG RCC_AHB1Periph_GPIOC + #define PIN_EXT_CLK GPIO_Pin_15 #define SRC_EXT_CLK GPIO_PinSource15 #define PORT_EXT_CLK GPIOA @@ -926,7 +937,7 @@ void CIO::initInt() GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; GPIO_Init(PORT_COS, &GPIO_InitStruct); -#if defined(MODE_PINS) +#if defined(MODE_LEDS) // DSTAR pin RCC_AHB1PeriphClockCmd(RCC_Per_DSTAR, ENABLE); GPIO_InitStruct.GPIO_Pin = PIN_DSTAR; @@ -968,7 +979,7 @@ void CIO::initInt() #endif #endif -#if defined(STM32F4_NUCLEO_MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) +#if defined(MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) // DSTAR mode pin RCC_AHB1PeriphClockCmd(RCC_Per_MDSTAR, ENABLE); GPIO_InitStruct.GPIO_Pin = PIN_MDSTAR; @@ -1218,7 +1229,7 @@ void CIO::setCOSInt(bool on) void CIO::setDStarInt(bool on) { GPIO_WriteBit(PORT_DSTAR, PIN_DSTAR, on ? Bit_SET : Bit_RESET); -#if defined(STM32F4_NUCLEO_MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) +#if defined(MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) GPIO_WriteBit(PORT_MDSTAR, PIN_MDSTAR, on ? Bit_SET : Bit_RESET); #endif } @@ -1226,7 +1237,7 @@ void CIO::setDStarInt(bool on) void CIO::setDMRInt(bool on) { GPIO_WriteBit(PORT_DMR, PIN_DMR, on ? Bit_SET : Bit_RESET); -#if defined(STM32F4_NUCLEO_MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) +#if defined(MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) GPIO_WriteBit(PORT_MDMR, PIN_MDMR, on ? Bit_SET : Bit_RESET); #endif } @@ -1234,7 +1245,7 @@ void CIO::setDMRInt(bool on) void CIO::setYSFInt(bool on) { GPIO_WriteBit(PORT_YSF, PIN_YSF, on ? Bit_SET : Bit_RESET); -#if defined(STM32F4_NUCLEO_MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) +#if defined(MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) GPIO_WriteBit(PORT_MYSF, PIN_MYSF, on ? Bit_SET : Bit_RESET); #endif } @@ -1242,7 +1253,7 @@ void CIO::setYSFInt(bool on) void CIO::setP25Int(bool on) { GPIO_WriteBit(PORT_P25, PIN_P25, on ? Bit_SET : Bit_RESET); -#if defined(STM32F4_NUCLEO_MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) +#if defined(MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) GPIO_WriteBit(PORT_MP25, PIN_MP25, on ? Bit_SET : Bit_RESET); #endif } @@ -1252,13 +1263,13 @@ void CIO::setNXDNInt(bool on) #if defined(USE_ALTERNATE_NXDN_LEDS) GPIO_WriteBit(PORT_YSF, PIN_YSF, on ? Bit_SET : Bit_RESET); GPIO_WriteBit(PORT_P25, PIN_P25, on ? Bit_SET : Bit_RESET); -#if defined(STM32F4_NUCLEO_MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) +#if defined(MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) GPIO_WriteBit(PORT_MYSF, PIN_MYSF, on ? Bit_SET : Bit_RESET); GPIO_WriteBit(PORT_MP25, PIN_MP25, on ? Bit_SET : Bit_RESET); #endif #else GPIO_WriteBit(PORT_NXDN, PIN_NXDN, on ? Bit_SET : Bit_RESET); -#if defined(STM32F4_NUCLEO_MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) +#if defined(MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) GPIO_WriteBit(PORT_MNXDN, PIN_MNXDN, on ? Bit_SET : Bit_RESET); #endif #endif @@ -1269,13 +1280,13 @@ void CIO::setPOCSAGInt(bool on) #if defined(USE_ALTERNATE_POCSAG_LEDS) GPIO_WriteBit(PORT_DSTAR, PIN_DSTAR, on ? Bit_SET : Bit_RESET); GPIO_WriteBit(PORT_DMR, PIN_DMR, on ? Bit_SET : Bit_RESET); -#if defined(STM32F4_NUCLEO_MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) +#if defined(MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) GPIO_WriteBit(PORT_MDSTAR, PIN_MDSTAR, on ? Bit_SET : Bit_RESET); GPIO_WriteBit(PORT_MDMR, PIN_MDMR, on ? Bit_SET : Bit_RESET); #endif #else GPIO_WriteBit(PORT_POCSAG, PIN_POCSAG, on ? Bit_SET : Bit_RESET); -#if defined(STM32F4_NUCLEO_MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) +#if defined(MODE_PINS) && defined(STM32F4_NUCLEO_MORPHO_HEADER) && defined(STM32F4_NUCLEO) GPIO_WriteBit(PORT_MPOCSAG, PIN_MPOCSAG, on ? Bit_SET : Bit_RESET); #endif #endif diff --git a/IOTeensy.cpp b/IOTeensy.cpp index 6b9101c..ea746a6 100644 --- a/IOTeensy.cpp +++ b/IOTeensy.cpp @@ -64,7 +64,7 @@ void CIO::initInt() pinMode(PIN_LED, OUTPUT); pinMode(PIN_COS, INPUT); -#if defined(MODE_PINS) +#if defined(MODE_LEDS) // Set up the mode output pins pinMode(PIN_DSTAR, OUTPUT); pinMode(PIN_DMR, OUTPUT); diff --git a/MMDVM_STM32F4xx.coproj b/MMDVM_STM32F4xx.coproj index b292998..aee9615 100644 --- a/MMDVM_STM32F4xx.coproj +++ b/MMDVM_STM32F4xx.coproj @@ -248,13 +248,13 @@ - + - + @@ -266,37 +266,37 @@ - + - - + + - + + - - + - + @@ -344,8 +344,8 @@ - + diff --git a/NXDNTX.cpp b/NXDNTX.cpp index 507beb4..171d6b8 100644 --- a/NXDNTX.cpp +++ b/NXDNTX.cpp @@ -47,7 +47,7 @@ const uint8_t NXDN_PREAMBLE[] = {0x57U, 0x75U, 0xFDU}; const uint8_t NXDN_SYNC = 0x5FU; CNXDNTX::CNXDNTX() : -m_buffer(4000U), +m_buffer(TX_BUFFER_LEN), m_modFilter(), m_modState(), m_poBuffer(), diff --git a/P25TX.cpp b/P25TX.cpp index 737adef..6ea8849 100644 --- a/P25TX.cpp +++ b/P25TX.cpp @@ -49,7 +49,7 @@ const q15_t P25_LEVELD = -1260; const uint8_t P25_START_SYNC = 0x77U; CP25TX::CP25TX() : -m_buffer(4000U), +m_buffer(TX_BUFFER_LEN), m_modFilter(), m_lpFilter(), m_modState(), diff --git a/POCSAGTX.cpp b/POCSAGTX.cpp index 946d4fc..f5406c2 100644 --- a/POCSAGTX.cpp +++ b/POCSAGTX.cpp @@ -35,7 +35,7 @@ const uint16_t SHAPING_FILTER_LEN = 12U; const uint8_t POCSAG_SYNC = 0xAAU; CPOCSAGTX::CPOCSAGTX() : -m_buffer(4000U), +m_buffer(TX_BUFFER_LEN), m_modFilter(), m_modState(), m_poBuffer(), diff --git a/SerialPort.cpp b/SerialPort.cpp index b6f3e7a..ecc5bfc 100644 --- a/SerialPort.cpp +++ b/SerialPort.cpp @@ -90,7 +90,7 @@ const uint8_t MMDVM_DEBUG5 = 0xF5U; #define TCXO "NO TCXO" #endif -#define DESCRIPTION "MMDVM 20180724-48k (D-Star/DMR/System Fusion/P25/NXDN)" +#define DESCRIPTION "MMDVM 20180822-48k (D-Star/DMR/System Fusion/P25/NXDN)" #if defined(GITVERSION) #define concat(a, b, c) a " " b " GitID #" c "" diff --git a/SerialRB.h b/SerialRB.h index 7b6b7b9..6f005a4 100644 --- a/SerialRB.h +++ b/SerialRB.h @@ -32,7 +32,11 @@ Boston, MA 02110-1301, USA. #include #endif +#if defined(STM32F105xC) || defined(__MK20DX256__) || defined(STM32F4XX) const uint16_t SERIAL_RINGBUFFER_SIZE = 370U; +#else +const uint16_t SERIAL_RINGBUFFER_SIZE = 1000U; +#endif class CSerialRB { public: diff --git a/YSFTX.cpp b/YSFTX.cpp index e358c99..dc25e11 100644 --- a/YSFTX.cpp +++ b/YSFTX.cpp @@ -50,7 +50,7 @@ const uint8_t YSF_END_SYNC = 0xFFU; const uint8_t YSF_HANG = 0x00U; CYSFTX::CYSFTX() : -m_buffer(4000U), +m_buffer(TX_BUFFER_LEN), m_modFilter(), m_modState(), m_poBuffer(), @@ -69,6 +69,7 @@ m_txCount(0U) m_modFilter.pState = m_modState; } + void CYSFTX::process() { if (m_buffer.getData() == 0U && m_poLen == 0U && m_txCount == 0U) @@ -92,7 +93,7 @@ void CYSFTX::process() if (m_poLen > 0U) { // Transmit YSF data. uint16_t space = io.getSpace(); - + while (space > (4U * YSF_RADIO_SYMBOL_LENGTH)) { uint8_t c = m_poBuffer[m_poPtr++]; writeByte(c); diff --git a/mmdvmmenu.sh b/mmdvmmenu.sh index 014e32b..7c31b4a 100755 --- a/mmdvmmenu.sh +++ b/mmdvmmenu.sh @@ -83,7 +83,7 @@ EOF "3") sed -e 's/\/\/ #define EXTERNAL_OSC 14400000/#define EXTERNAL_OSC 14400000/' $conf > $conf.tmp && mv -f $conf.tmp $conf && echo "14.400 MHz clock enabled";; "4") sed -e 's/\/\/ #define EXTERNAL_OSC 19200000/#define EXTERNAL_OSC 19200000/' $conf > $conf.tmp && mv -f $conf.tmp $conf && echo "19.200 MHz clock enabled";; "5") sed -e 's/\/\/ #define USE_COS_AS_LOCKOUT /#define USE_COS_AS_LOCKOUT/' $conf > $conf.tmp && mv -f $conf.tmp $conf && echo "COS as Lockout enabled";; - "6") sed -e 's/\/\/ #define MODE_PINS/#define MODE_PINS/' $conf > $conf.tmp && mv -f $conf.tmp $conf && echo "Mode pins enabled";; + "6") sed -e 's/\/\/ #define MODE_LEDS/#define MODE_LEDS/' $conf > $conf.tmp && mv -f $conf.tmp $conf && echo "Mode pins enabled";; "7") sed -e 's/\/\/ #define ARDUINO_DUE_PAPA/#define ARDUINO_DUE_PAPA/' $conf > $conf.tmp && mv -f $conf.tmp $conf && echo "Layout for the PAPA board enabled";; "8") sed -e 's/\/\/ #define ARDUINO_DUE_ZUM_V10/#define ARDUINO_DUE_ZUM_V10/' $conf > $conf.tmp && mv -f $conf.tmp $conf && echo "Layout for ZUM V1.0 and V1.0.1 boards enabled";; "9") sed -e 's/\/\/ #define ARDUINO_DUE_NTH/#define ARDUINO_DUE_NTH/' $conf > $conf.tmp && mv -f $conf.tmp $conf && echo "Layout for SP8NTH board enabled";;