mirror of
https://github.com/g4klx/MMDVM_HS.git
synced 2025-12-06 07:02:00 +01:00
Some contextual cleanups.
This commit is contained in:
parent
023462a86d
commit
92597e0d00
53
ADF7021.cpp
53
ADF7021.cpp
|
|
@ -54,9 +54,7 @@ uint16_t m_pocsagDev;
|
||||||
|
|
||||||
static void Send_AD7021_control_shift()
|
static void Send_AD7021_control_shift()
|
||||||
{
|
{
|
||||||
int AD7021_counter;
|
for (int AD7021_counter = 31; AD7021_counter >= 0; AD7021_counter--) {
|
||||||
|
|
||||||
for(AD7021_counter = 31; AD7021_counter >= 0; AD7021_counter--) {
|
|
||||||
if (bitRead(AD7021_control_word, AD7021_counter) == HIGH)
|
if (bitRead(AD7021_control_word, AD7021_counter) == HIGH)
|
||||||
io.SDATA_pin(HIGH);
|
io.SDATA_pin(HIGH);
|
||||||
else
|
else
|
||||||
|
|
@ -67,6 +65,7 @@ static void Send_AD7021_control_shift()
|
||||||
io.dlybit();
|
io.dlybit();
|
||||||
io.SCLK_pin(LOW);
|
io.SCLK_pin(LOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
// to keep SDATA signal at defined level when idle (not required)
|
// to keep SDATA signal at defined level when idle (not required)
|
||||||
io.SDATA_pin(LOW);
|
io.SDATA_pin(LOW);
|
||||||
}
|
}
|
||||||
|
|
@ -82,10 +81,9 @@ void Send_AD7021_control(bool doSle)
|
||||||
{
|
{
|
||||||
Send_AD7021_control_shift();
|
Send_AD7021_control_shift();
|
||||||
|
|
||||||
if (doSle) {
|
if (doSle)
|
||||||
Send_AD7021_control_slePulse();
|
Send_AD7021_control_slePulse();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(DUPLEX)
|
#if defined(DUPLEX)
|
||||||
static void Send_AD7021_control_sle2Pulse()
|
static void Send_AD7021_control_sle2Pulse()
|
||||||
|
|
@ -99,10 +97,9 @@ void Send_AD7021_control2(bool doSle)
|
||||||
{
|
{
|
||||||
Send_AD7021_control_shift();
|
Send_AD7021_control_shift();
|
||||||
|
|
||||||
if (doSle) {
|
if (doSle)
|
||||||
Send_AD7021_control_sle2Pulse();
|
Send_AD7021_control_sle2Pulse();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SEND_RSSI_DATA)
|
#if defined(SEND_RSSI_DATA)
|
||||||
|
|
@ -110,14 +107,13 @@ uint16_t CIO::readRSSI()
|
||||||
{
|
{
|
||||||
uint32_t AD7021_RB;
|
uint32_t AD7021_RB;
|
||||||
uint16_t RB_word = 0U;
|
uint16_t RB_word = 0U;
|
||||||
int AD7021_counter;
|
|
||||||
uint8_t RB_code, gain_code, gain_corr;
|
uint8_t RB_code, gain_code, gain_corr;
|
||||||
|
|
||||||
// Register 7, readback enable, ADC RSSI mode
|
// Register 7, readback enable, ADC RSSI mode
|
||||||
AD7021_RB = 0x0147;
|
AD7021_RB = 0x0147;
|
||||||
|
|
||||||
// Send control register
|
// Send control register
|
||||||
for(AD7021_counter = 8; AD7021_counter >= 0; AD7021_counter--) {
|
for (int AD7021_counter = 8; AD7021_counter >= 0; AD7021_counter--) {
|
||||||
if (bitRead(AD7021_RB, AD7021_counter) == HIGH)
|
if (bitRead(AD7021_RB, AD7021_counter) == HIGH)
|
||||||
SDATA_pin(HIGH);
|
SDATA_pin(HIGH);
|
||||||
else
|
else
|
||||||
|
|
@ -143,7 +139,7 @@ uint16_t CIO::readRSSI()
|
||||||
dlybit();
|
dlybit();
|
||||||
|
|
||||||
// Read SREAD pin
|
// Read SREAD pin
|
||||||
for(AD7021_counter = 17; AD7021_counter >= 0; AD7021_counter--) {
|
for (int AD7021_counter = 17; AD7021_counter >= 0; AD7021_counter--) {
|
||||||
SCLK_pin(HIGH);
|
SCLK_pin(HIGH);
|
||||||
dlybit();
|
dlybit();
|
||||||
|
|
||||||
|
|
@ -152,7 +148,6 @@ uint16_t CIO::readRSSI()
|
||||||
|
|
||||||
SCLK_pin(LOW);
|
SCLK_pin(LOW);
|
||||||
dlybit();
|
dlybit();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(DUPLEX)
|
#if defined(DUPLEX)
|
||||||
|
|
@ -234,20 +229,16 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset)
|
||||||
if ((m_frequency_tx >= VHF1_MIN) && (m_frequency_tx < VHF1_MAX)) {
|
if ((m_frequency_tx >= VHF1_MIN) && (m_frequency_tx < VHF1_MAX)) {
|
||||||
ADF7021_REG1 = ADF7021_REG1_VHF1; // VHF1, external VCO
|
ADF7021_REG1 = ADF7021_REG1_VHF1; // VHF1, external VCO
|
||||||
div2 = 1U;
|
div2 = 1U;
|
||||||
}
|
} else if ((m_frequency_tx >= VHF2_MIN) && (m_frequency_tx < VHF2_MAX)) {
|
||||||
else if( (m_frequency_tx >= VHF2_MIN) && (m_frequency_tx < VHF2_MAX) ) {
|
|
||||||
ADF7021_REG1 = ADF7021_REG1_VHF2; // VHF1, external VCO
|
ADF7021_REG1 = ADF7021_REG1_VHF2; // VHF1, external VCO
|
||||||
div2 = 1U;
|
div2 = 1U;
|
||||||
}
|
} else if ((m_frequency_tx >= UHF1_MIN)&&(m_frequency_tx < UHF1_MAX)) {
|
||||||
else if( (m_frequency_tx >= UHF1_MIN)&&(m_frequency_tx < UHF1_MAX) ) {
|
|
||||||
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
||||||
div2 = 1U;
|
div2 = 1U;
|
||||||
}
|
} else if ((m_frequency_tx >= UHF2_MIN)&&(m_frequency_tx < UHF2_MAX)) {
|
||||||
else if( (m_frequency_tx >= UHF2_MIN)&&(m_frequency_tx < UHF2_MAX) ) {
|
|
||||||
ADF7021_REG1 = ADF7021_REG1_UHF2; // UHF2, internal VCO
|
ADF7021_REG1 = ADF7021_REG1_UHF2; // UHF2, internal VCO
|
||||||
div2 = 2U;
|
div2 = 2U;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
||||||
div2 = 1U;
|
div2 = 1U;
|
||||||
}
|
}
|
||||||
|
|
@ -424,7 +415,7 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_YSF:
|
case STATE_YSF:
|
||||||
// Dev: +1 symb 900 Hz, symb rate = 4800
|
// Dev: +1 symb 900/450 Hz, symb rate = 4800
|
||||||
|
|
||||||
ADF7021_REG3 = (m_LoDevYSF ? ADF7021_REG3_YSF_L : ADF7021_REG3_YSF_H);
|
ADF7021_REG3 = (m_LoDevYSF ? ADF7021_REG3_YSF_L : ADF7021_REG3_YSF_H);
|
||||||
ADF7021_REG10 = ADF7021_REG10_YSF;
|
ADF7021_REG10 = ADF7021_REG10_YSF;
|
||||||
|
|
@ -685,7 +676,7 @@ void CIO::ifConf2(MMDVM_STATE modemState)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_YSF:
|
case STATE_YSF:
|
||||||
// Dev: +1 symb 2700/900 Hz, symb rate = 4800
|
// Dev: +1 symb 900/450 Hz, symb rate = 4800
|
||||||
|
|
||||||
ADF7021_REG3 = (m_LoDevYSF ? ADF7021_REG3_YSF_L : ADF7021_REG3_YSF_H);
|
ADF7021_REG3 = (m_LoDevYSF ? ADF7021_REG3_YSF_L : ADF7021_REG3_YSF_H);
|
||||||
ADF7021_REG10 = ADF7021_REG10_YSF;
|
ADF7021_REG10 = ADF7021_REG10_YSF;
|
||||||
|
|
@ -862,15 +853,13 @@ void CIO::interrupt()
|
||||||
// possibly this is a design problem of the RF7021 board or too long wires
|
// possibly this is a design problem of the RF7021 board or too long wires
|
||||||
// on the breadboard build
|
// on the breadboard build
|
||||||
// but normally this will not hurt too much
|
// but normally this will not hurt too much
|
||||||
if (clk == last_clk) {
|
if (clk == last_clk)
|
||||||
return;
|
return;
|
||||||
} else {
|
else
|
||||||
last_clk = clk;
|
last_clk = clk;
|
||||||
}
|
|
||||||
|
|
||||||
// we set the TX bit at TXD low, sampling of ADF7021 happens at rising clock
|
// we set the TX bit at TXD low, sampling of ADF7021 happens at rising clock
|
||||||
if (m_tx && clk == 0U) {
|
if (m_tx && clk == 0U) {
|
||||||
|
|
||||||
m_txBuffer.get(bit, m_control);
|
m_txBuffer.get(bit, m_control);
|
||||||
even = !even;
|
even = !even;
|
||||||
|
|
||||||
|
|
@ -920,7 +909,7 @@ void CIO::interrupt()
|
||||||
m_rxBuffer.put(bit, m_control);
|
m_rxBuffer.put(bit, m_control);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (torx_request == true && even == ADF7021_EVEN_BIT && m_tx && clk == 0U) {
|
if (torx_request && even == ADF7021_EVEN_BIT && m_tx && clk == 0U) {
|
||||||
// that is absolutely crucial in 4FSK, see datasheet:
|
// that is absolutely crucial in 4FSK, see datasheet:
|
||||||
// enable sle after 1/4 tBit == 26uS when sending MSB (even == false) and clock is low
|
// enable sle after 1/4 tBit == 26uS when sending MSB (even == false) and clock is low
|
||||||
delay_us(26U);
|
delay_us(26U);
|
||||||
|
|
@ -1039,20 +1028,16 @@ void CIO::updateCal()
|
||||||
if ((m_frequency_tx >= VHF1_MIN) && (m_frequency_tx < VHF1_MAX)) {
|
if ((m_frequency_tx >= VHF1_MIN) && (m_frequency_tx < VHF1_MAX)) {
|
||||||
ADF7021_REG1 = ADF7021_REG1_VHF1; // VHF1, external VCO
|
ADF7021_REG1 = ADF7021_REG1_VHF1; // VHF1, external VCO
|
||||||
div2 = 1U;
|
div2 = 1U;
|
||||||
}
|
} else if ((m_frequency_tx >= VHF2_MIN) && (m_frequency_tx < VHF2_MAX)) {
|
||||||
else if( (m_frequency_tx >= VHF2_MIN) && (m_frequency_tx < VHF2_MAX) ) {
|
|
||||||
ADF7021_REG1 = ADF7021_REG1_VHF2; // VHF1, external VCO
|
ADF7021_REG1 = ADF7021_REG1_VHF2; // VHF1, external VCO
|
||||||
div2 = 1U;
|
div2 = 1U;
|
||||||
}
|
} else if ((m_frequency_tx >= UHF1_MIN)&&(m_frequency_tx < UHF1_MAX)) {
|
||||||
else if( (m_frequency_tx >= UHF1_MIN)&&(m_frequency_tx < UHF1_MAX) ) {
|
|
||||||
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
||||||
div2 = 1U;
|
div2 = 1U;
|
||||||
}
|
} else if ((m_frequency_tx >= UHF2_MIN)&&(m_frequency_tx < UHF2_MAX)) {
|
||||||
else if( (m_frequency_tx >= UHF2_MIN)&&(m_frequency_tx < UHF2_MAX) ) {
|
|
||||||
ADF7021_REG1 = ADF7021_REG1_UHF2; // UHF2, internal VCO
|
ADF7021_REG1 = ADF7021_REG1_UHF2; // UHF2, internal VCO
|
||||||
div2 = 2U;
|
div2 = 2U;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
||||||
div2 = 1U;
|
div2 = 1U;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue