mirror of
https://github.com/g4klx/MMDVM_HS.git
synced 2026-02-16 04:15:09 +01:00
Merge branch 'master' into devel
This commit is contained in:
commit
b397b1292c
20
ADF7021.cpp
20
ADF7021.cpp
|
|
@ -43,7 +43,7 @@ uint32_t ADF7021_REG1;
|
|||
uint32_t div2;
|
||||
uint32_t f_div;
|
||||
|
||||
static void Send_AD7021_control_shift()
|
||||
static void Send_AD7021_control_shift()
|
||||
{
|
||||
int AD7021_counter;
|
||||
|
||||
|
|
@ -62,7 +62,7 @@ static void Send_AD7021_control_shift()
|
|||
io.SDATA_pin(LOW);
|
||||
}
|
||||
|
||||
static void Send_AD7021_control_slePulse()
|
||||
static void Send_AD7021_control_slePulse()
|
||||
{
|
||||
io.SLE_pin(HIGH);
|
||||
io.dlybit();
|
||||
|
|
@ -301,7 +301,7 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset)
|
|||
ADF7021_REG13 |= (uint32_t) ADF7021_SLICER_TH_DMR << 4; // slicer threshold
|
||||
|
||||
ADF7021_REG2 = (uint32_t) 0b10 << 28; // invert data (and RC alpha = 0.5)
|
||||
ADF7021_REG2 |= (uint32_t) (m_cwIdTXLevel / div2) << 19; // deviation
|
||||
ADF7021_REG2 |= (uint32_t) (m_cwIdTXLevel / div2) << 19; // deviation
|
||||
ADF7021_REG2 |= (uint32_t) 0b111 << 4; // modulation (RC 4FSK)
|
||||
break;
|
||||
|
||||
|
|
@ -626,9 +626,9 @@ void CIO::ifConf2(MMDVM_STATE modemState)
|
|||
Send_AD7021_control2();
|
||||
|
||||
// MODULATION (2)
|
||||
ADF7021_REG2 |= (uint32_t) 0b0010; // register 2
|
||||
ADF7021_REG2 |= (uint32_t) m_power << 13; // power level
|
||||
ADF7021_REG2 |= (uint32_t) 0b110001 << 7; // PA
|
||||
ADF7021_REG2 |= (uint32_t) 0b0010; // register 2
|
||||
ADF7021_REG2 |= (uint32_t) (m_power & 0x3F) << 13; // power level
|
||||
ADF7021_REG2 |= (uint32_t) 0b110001 << 7; // PA
|
||||
AD7021_control_word = ADF7021_REG2;
|
||||
Send_AD7021_control2();
|
||||
|
||||
|
|
@ -786,7 +786,6 @@ void CIO::interrupt2()
|
|||
}
|
||||
#endif
|
||||
|
||||
//======================================================================================================================
|
||||
void CIO::setTX()
|
||||
{
|
||||
// PTT pin on (doing it earlier helps to measure timing impact)
|
||||
|
|
@ -806,7 +805,6 @@ void CIO::setTX()
|
|||
while(CLK_pin());
|
||||
}
|
||||
|
||||
//======================================================================================================================
|
||||
void CIO::setRX(bool doSle)
|
||||
{
|
||||
// PTT pin off (doing it earlier helps to measure timing impact)
|
||||
|
|
@ -827,6 +825,11 @@ void CIO::setRX(bool doSle)
|
|||
}
|
||||
}
|
||||
|
||||
void CIO::setPower(uint8_t power)
|
||||
{
|
||||
m_power = power >> 2;
|
||||
}
|
||||
|
||||
uint32_t CIO::RXfreq()
|
||||
{
|
||||
return (uint32_t)((float)(ADF7021_PFD / f_div) * ((float)((32768 * m_RX_N_divider) + m_RX_F_divider) / 32768.0)) + 100000;
|
||||
|
|
@ -867,6 +870,7 @@ void CIO::printConf()
|
|||
DEBUG1("MMDVM_HS FW configuration:");
|
||||
DEBUG2I("TX freq (Hz):", TXfreq());
|
||||
DEBUG2I("RX freq (Hz):", RXfreq());
|
||||
DEBUG2("Power set:", m_power);
|
||||
DEBUG2("D-Star dev (Hz):", devDSTAR());
|
||||
DEBUG2("DMR +1 sym dev (Hz):", devDMR());
|
||||
DEBUG2("YSF_H +1 sym dev (Hz):", devYSF_H());
|
||||
|
|
|
|||
2
BUILD.md
2
BUILD.md
|
|
@ -71,7 +71,7 @@ Reboot your RPi:
|
|||
|
||||
sudo reboot
|
||||
|
||||
### Build de firmware and upload to ZUMspot RPi
|
||||
### Build the firmware and upload to ZUMspot RPi
|
||||
|
||||
If you are using Pi-Star, expand filesystem (if you haven't done before):
|
||||
|
||||
|
|
|
|||
8
IO.cpp
8
IO.cpp
|
|
@ -266,17 +266,19 @@ bool CIO::hasRXOverflow()
|
|||
return m_rxBuffer.hasOverflowed();
|
||||
}
|
||||
|
||||
uint8_t CIO::setFreq(uint32_t frequency_rx, uint32_t frequency_tx)
|
||||
uint8_t CIO::setFreq(uint32_t frequency_rx, uint32_t frequency_tx, uint8_t rf_power)
|
||||
{
|
||||
// power level
|
||||
m_power = 0xFF;
|
||||
// Configure power level
|
||||
setPower(rf_power);
|
||||
|
||||
// Check frequency ranges
|
||||
if( !( ((frequency_rx >= VHF1_MIN)&&(frequency_rx < VHF1_MAX)) || ((frequency_tx >= VHF1_MIN)&&(frequency_tx < VHF1_MAX)) || \
|
||||
((frequency_rx >= UHF1_MIN)&&(frequency_rx < UHF1_MAX)) || ((frequency_tx >= UHF1_MIN)&&(frequency_tx < UHF1_MAX)) || \
|
||||
((frequency_rx >= VHF2_MIN)&&(frequency_rx < VHF2_MAX)) || ((frequency_tx >= VHF2_MIN)&&(frequency_tx < VHF2_MAX)) || \
|
||||
((frequency_rx >= UHF2_MIN)&&(frequency_rx < UHF2_MAX)) || ((frequency_tx >= UHF2_MIN)&&(frequency_tx < UHF2_MAX)) ) )
|
||||
return 4U;
|
||||
|
||||
// Configure frequency
|
||||
m_frequency_rx = frequency_rx;
|
||||
m_frequency_tx = frequency_tx;
|
||||
|
||||
|
|
|
|||
3
IO.h
3
IO.h
|
|
@ -91,7 +91,8 @@ public:
|
|||
void process(void);
|
||||
bool hasTXOverflow(void);
|
||||
bool hasRXOverflow(void);
|
||||
uint8_t setFreq(uint32_t frequency_rx, uint32_t frequency_tx);
|
||||
uint8_t setFreq(uint32_t frequency_rx, uint32_t frequency_tx, uint8_t rf_power);
|
||||
void setPower(uint8_t power);
|
||||
void setMode(MMDVM_STATE modemState);
|
||||
void setDecode(bool dcd);
|
||||
void setLoDevYSF(bool ysfLoDev);
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ Reboot your RPi:
|
|||
|
||||
sudo reboot
|
||||
|
||||
#### Build de firmware and upload to ZUMspot RPi
|
||||
#### Build the firmware and upload to ZUMspot RPi
|
||||
|
||||
If you are using Pi-Star, expand filesystem (if you haven't done before):
|
||||
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ void CSerialPort::getVersion()
|
|||
|
||||
uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
|
||||
{
|
||||
if (length < 15U)
|
||||
if (length < 13U)
|
||||
return 4U;
|
||||
|
||||
bool ysfLoDev = (data[0U] & 0x08U) == 0x08U;
|
||||
|
|
@ -298,10 +298,19 @@ uint8_t CSerialPort::setMode(const uint8_t* data, uint8_t length)
|
|||
uint8_t CSerialPort::setFreq(const uint8_t* data, uint8_t length)
|
||||
{
|
||||
uint32_t freq_rx, freq_tx;
|
||||
uint8_t rf_power;
|
||||
|
||||
if (length < 9U)
|
||||
return 4U;
|
||||
|
||||
// Old MMDVMHost, set full power
|
||||
if (length == 9U)
|
||||
rf_power = 255U;
|
||||
|
||||
// New MMDVMHost, set power from MMDVM.ini
|
||||
if (length == 10U)
|
||||
rf_power = data[9];
|
||||
|
||||
freq_rx = data[1] * 1;
|
||||
freq_rx += data[2] * 256;
|
||||
freq_rx += data[3] * 65536;
|
||||
|
|
@ -312,7 +321,7 @@ uint8_t CSerialPort::setFreq(const uint8_t* data, uint8_t length)
|
|||
freq_tx += data[7] * 65536;
|
||||
freq_tx += data[8] * 16777216;
|
||||
|
||||
return io.setFreq(freq_rx, freq_tx);
|
||||
return io.setFreq(freq_rx, freq_tx, rf_power);
|
||||
}
|
||||
|
||||
void CSerialPort::setMode(MMDVM_STATE modemState)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
# Configure latest version
|
||||
FW_VERSION="v1.0.2"
|
||||
FW_VERSION="v1.1.0"
|
||||
|
||||
# Change USB-serial port name ONLY in macOS
|
||||
MAC_DEV_USB_SER="/dev/cu.usbmodem1441"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
# Configure latest version
|
||||
FW_VERSION="v1.0.2"
|
||||
FW_VERSION="v1.1.0"
|
||||
|
||||
# Change USB-serial port name ONLY in macOS
|
||||
MAC_DEV_USB_SER="/dev/cu.usbmodem1441"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
# Configure latest version
|
||||
FW_VERSION="v1.0.2"
|
||||
FW_VERSION="v1.1.0"
|
||||
|
||||
# Change USB-serial port name ONLY in macOS
|
||||
MAC_DEV_USB_SER="/dev/cu.usbmodem1441"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
# Configure latest version
|
||||
FW_VERSION="v1.0.2"
|
||||
FW_VERSION="v1.1.0"
|
||||
|
||||
# Change USB-serial port name ONLY in macOS
|
||||
MAC_DEV_USB_SER="/dev/cu.usbmodem1441"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
# Configure latest version
|
||||
FW_VERSION="v1.0.2"
|
||||
FW_VERSION="v1.1.0"
|
||||
|
||||
# Change USB-serial port name ONLY in macOS
|
||||
MAC_DEV_USB_SER="/dev/cu.usbmodem1441"
|
||||
|
|
|
|||
Loading…
Reference in a new issue