diff --git a/BUILD.txt b/BUILD.txt index 94c271c..5332f3f 100644 --- a/BUILD.txt +++ b/BUILD.txt @@ -282,8 +282,8 @@ scanning over all enabled modes, and you could have some detection delay. Enable #define SERIAL_REPEATER: enable a second serial port (USART2, pins PA2 and PA3) for Nextion LCD display. -Pinout definitions for ZUMSpot Libre Kit (Carrier board): -========================================================= +Pinout definitions for ZUMSpot Libre Kit (Carrier board, RF7021SE + STM32F103 board): +===================================================================================== - Main RF7021SE board: CE PC14 SLE PB8 @@ -328,3 +328,39 @@ PIN_DEB PB9 (debugging pin) * You could install a serie resistor (10 - 100 ohms) in each TxRxData and TxRxCLK lines, for reducing EMI. + +Pinout definitions for Arduino Due/Zero + RF7021SE: +=================================================== +Use STM32duino + Arduino IDE for building the code + +- Main RF7021SE board: +CE 12 +SLE 6 +SREAD 5 +SDATA 4 // 2 in Arduino Zero Pro +SCLK 3 +DATA 7 (TxRxData)* +DCLK 8 (TxRxCLK)* +CLKOUT 2 // 4 in Arduino Zero Pro (jumper wire in RF7021SE) +PAC 9 (PTT LED) +VCC 3.3 V +GND Ground + +- Serial ports: +USB Arduino Programming Port (host communication) + +- Status LEDs: +COS_LED 10 +PTT_LED 9 +P25_LED 17 +YSF_LED 16 +DMR_LED 15 +DSTAR_LED 14 + +- Misc pins: +PIN_LED 13 +PIN_DEB 11 + +* You could install a serie resistor (10 - 100 ohms) in each TxRxData and TxRxCLK lines, for +reducing EMI. + diff --git a/DMRDMORX.cpp b/DMRDMORX.cpp index 8b6ec0a..c44293c 100644 --- a/DMRDMORX.cpp +++ b/DMRDMORX.cpp @@ -25,7 +25,7 @@ #include "DMRSlotType.h" #include "Utils.h" -const uint8_t MAX_SYNC_BYTES_ERRS = 1U; +const uint8_t MAX_SYNC_BYTES_ERRS = 3U; const uint8_t MAX_SYNC_LOST_FRAMES = 13U; @@ -206,7 +206,7 @@ void CDMRDMORX::correlateSync() if (m_startPtr >= DMO_BUFFER_LENGTH_BITS) m_startPtr -= DMO_BUFFER_LENGTH_BITS; - m_endPtr = m_dataPtr + DMR_SLOT_TYPE_LENGTH_BITS / 2U + DMR_INFO_LENGTH_BITS / 2U; + m_endPtr = m_dataPtr + DMR_SLOT_TYPE_LENGTH_BITS / 2U + DMR_INFO_LENGTH_BITS / 2U; if (m_endPtr >= DMO_BUFFER_LENGTH_BITS) m_endPtr -= DMO_BUFFER_LENGTH_BITS; @@ -234,17 +234,28 @@ void CDMRDMORX::bitsToBytes(uint16_t start, uint8_t count, uint8_t* buffer) for (uint8_t i = 0U; i < count; i++) { buffer[i] = 0U; - buffer[i] |= ((m_buffer[start + 0U] & 0x01) << 7); - buffer[i] |= ((m_buffer[start + 1U] & 0x01) << 6); - buffer[i] |= ((m_buffer[start + 2U] & 0x01) << 5); - buffer[i] |= ((m_buffer[start + 3U] & 0x01) << 4); - buffer[i] |= ((m_buffer[start + 4U] & 0x01) << 3); - buffer[i] |= ((m_buffer[start + 5U] & 0x01) << 2); - buffer[i] |= ((m_buffer[start + 6U] & 0x01) << 1); - buffer[i] |= ((m_buffer[start + 7U] & 0x01) << 0); - - start += 8U; - + buffer[i] |= ((m_buffer[start++] & 0x01) << 7); + if (start >= DMO_BUFFER_LENGTH_BITS) + start -= DMO_BUFFER_LENGTH_BITS; + buffer[i] |= ((m_buffer[start++] & 0x01) << 6); + if (start >= DMO_BUFFER_LENGTH_BITS) + start -= DMO_BUFFER_LENGTH_BITS; + buffer[i] |= ((m_buffer[start++] & 0x01) << 5); + if (start >= DMO_BUFFER_LENGTH_BITS) + start -= DMO_BUFFER_LENGTH_BITS; + buffer[i] |= ((m_buffer[start++] & 0x01) << 4); + if (start >= DMO_BUFFER_LENGTH_BITS) + start -= DMO_BUFFER_LENGTH_BITS; + buffer[i] |= ((m_buffer[start++] & 0x01) << 3); + if (start >= DMO_BUFFER_LENGTH_BITS) + start -= DMO_BUFFER_LENGTH_BITS; + buffer[i] |= ((m_buffer[start++] & 0x01) << 2); + if (start >= DMO_BUFFER_LENGTH_BITS) + start -= DMO_BUFFER_LENGTH_BITS; + buffer[i] |= ((m_buffer[start++] & 0x01) << 1); + if (start >= DMO_BUFFER_LENGTH_BITS) + start -= DMO_BUFFER_LENGTH_BITS; + buffer[i] |= ((m_buffer[start++] & 0x01) << 0); if (start >= DMO_BUFFER_LENGTH_BITS) start -= DMO_BUFFER_LENGTH_BITS; } diff --git a/SerialPort.cpp b/SerialPort.cpp index 664af32..565edde 100644 --- a/SerialPort.cpp +++ b/SerialPort.cpp @@ -69,9 +69,9 @@ const uint8_t MMDVM_DEBUG4 = 0xF4U; const uint8_t MMDVM_DEBUG5 = 0xF5U; #if defined(ADF7021_N_VER) -#define DESCRIPTION "MMDVM_HS-ADF7021N 20170414 (D-Star/DMR/YSF/P25)" +#define DESCRIPTION "MMDVM_HS-ADF7021N 20170521 (D-Star/DMR/YSF/P25)" #else -#define DESCRIPTION "MMDVM_HS-ADF7021 20170414 (D-Star/DMR/YSF/P25)" +#define DESCRIPTION "MMDVM_HS-ADF7021 20170521 (D-Star/DMR/YSF/P25)" #endif #define concat(a, b, c) a " (Build: " b " " c ")"