mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-05-05 09:41:26 +03:00
disable AFC in SSB mode
This commit is contained in:
parent
d3efd0a10b
commit
bf9891fe3c
@ -102,8 +102,6 @@ void BK4819_Init(void)
|
||||
// BK4819_WriteRegister(0x77, 0xCCEF); // rssi + noise
|
||||
// BK4819_WriteRegister(0x77, 0xFFEF); // rssi
|
||||
|
||||
// BK4819_WriteRegister(0x73, (0u << 11) | (1u << 4)); // disable AFC
|
||||
|
||||
BK4819_config_sub_audible();
|
||||
|
||||
const uint8_t dtmf_coeffs[] = {111, 107, 103, 98, 80, 71, 58, 44, 65, 55, 37, 23, 228, 203, 181, 159};
|
||||
@ -245,6 +243,15 @@ void BK4819_WriteU16(uint16_t Data)
|
||||
SYSTICK_DelayUs(1);
|
||||
}
|
||||
}
|
||||
void BK4819_EnableAFC(void)
|
||||
{
|
||||
BK4819_WriteRegister(0x73, (0u << 11) | (0u << 4));
|
||||
}
|
||||
|
||||
void BK4819_DisableAFC(void)
|
||||
{
|
||||
BK4819_WriteRegister(0x73, (0u << 11) | (1u << 4));
|
||||
}
|
||||
|
||||
void BK4819_DisableAGC(void)
|
||||
{
|
||||
@ -413,7 +420,7 @@ void BK4819_set_TX_deviation(const bool narrow)
|
||||
BK4819_WriteRegister(0x40, (3u << 12) | deviation);
|
||||
}
|
||||
|
||||
void BK4819_SetFilterBandwidth(const BK4819_filter_bandwidth_t Bandwidth, const bool weak_no_different)
|
||||
void BK4819_SetFilterBandwidth(const BK4819_filter_bandwidth_t Bandwidth)
|
||||
{
|
||||
// REG_43
|
||||
// <15> 0 ???
|
||||
@ -467,24 +474,12 @@ void BK4819_SetFilterBandwidth(const BK4819_filter_bandwidth_t Bandwidth, const
|
||||
|
||||
m_bandwidth = Bandwidth;
|
||||
|
||||
// when received signal is weak, the RX bandwidth is reduced
|
||||
|
||||
switch (Bandwidth)
|
||||
{
|
||||
default:
|
||||
case BK4819_FILTER_BW_WIDE: // 25kHz
|
||||
if (weak_no_different)
|
||||
{ // make the RX bandwidth the same with weak signals
|
||||
val =
|
||||
(0u << 15) | // 0
|
||||
(4u << 12) | // *3 RF filter bandwidth
|
||||
(2u << 9) | // *0 RF filter bandwidth when signal is weak
|
||||
(6u << 6) | // *0 AFTxLPF2 filter Band Width
|
||||
(2u << 4) | // 2 BW Mode Selection
|
||||
(1u << 3) | // 1
|
||||
(0u << 2) | // 0 Gain after FM Demodulation
|
||||
(0u << 0); // 0
|
||||
}
|
||||
else
|
||||
{ // with weak RX signals the RX bandwidth is reduced
|
||||
val = // 0x3028); // 0 011 000 000 10 1 0 00
|
||||
(0u << 15) | // 0
|
||||
(4u << 12) | // *3 RF filter bandwidth
|
||||
@ -494,12 +489,9 @@ void BK4819_SetFilterBandwidth(const BK4819_filter_bandwidth_t Bandwidth, const
|
||||
(1u << 3) | // 1
|
||||
(0u << 2) | // 0 Gain after FM Demodulation
|
||||
(0u << 0); // 0
|
||||
}
|
||||
break;
|
||||
|
||||
case BK4819_FILTER_BW_NARROW: // 12.5kHz
|
||||
if (weak_no_different)
|
||||
{
|
||||
val =
|
||||
(0u << 15) | // 0
|
||||
(4u << 12) | // *4 RF filter bandwidth
|
||||
@ -509,46 +501,18 @@ void BK4819_SetFilterBandwidth(const BK4819_filter_bandwidth_t Bandwidth, const
|
||||
(1u << 3) | // 1
|
||||
(0u << 2) | // 0 Gain after FM Demodulation
|
||||
(0u << 0); // 0
|
||||
}
|
||||
else
|
||||
{
|
||||
val = // 0x4048); // 0 100 000 001 00 1 0 00
|
||||
(0u << 15) | // 0
|
||||
(4u << 12) | // *4 RF filter bandwidth
|
||||
(2u << 9) | // *0 RF filter bandwidth when signal is weak
|
||||
(0u << 6) | // *1 AFTxLPF2 filter Band Width
|
||||
(0u << 4) | // 0 BW Mode Selection
|
||||
(1u << 3) | // 1
|
||||
(0u << 2) | // 0 Gain after FM Demodulation
|
||||
(0u << 0); // 0
|
||||
}
|
||||
break;
|
||||
|
||||
case BK4819_FILTER_BW_NARROWER: // 6.25kHz
|
||||
if (weak_no_different)
|
||||
{
|
||||
val =
|
||||
(0u << 15) | // 0
|
||||
(3u << 12) | // 3 RF filter bandwidth
|
||||
(3u << 9) | // *0 RF filter bandwidth when signal is weak
|
||||
(2u << 9) | // *0 RF filter bandwidth when signal is weak
|
||||
(1u << 6) | // 1 AFTxLPF2 filter Band Width
|
||||
(1u << 4) | // 1 BW Mode Selection
|
||||
(1u << 3) | // 1
|
||||
(0u << 2) | // 0 Gain after FM Demodulation
|
||||
(0u << 0); // 0
|
||||
}
|
||||
else
|
||||
{
|
||||
val =
|
||||
(0u << 15) | // 0
|
||||
(3u << 12) | // 3 RF filter bandwidth
|
||||
(0u << 9) | // 0 RF filter bandwidth when signal is weak
|
||||
(1u << 6) | // 1 AFTxLPF2 filter Band Width
|
||||
(1u << 4) | // 1 BW Mode Selection
|
||||
(1u << 3) | // 1
|
||||
(0u << 2) | // 1 Gain after FM Demodulation
|
||||
(0u << 0); // 0
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -67,6 +67,9 @@ void BK4819_WriteRegister(const uint8_t Register, uint16_t Data);
|
||||
void BK4819_WriteU8(uint8_t Data);
|
||||
void BK4819_WriteU16(uint16_t Data);
|
||||
|
||||
void BK4819_EnableAFC(void);
|
||||
void BK4819_DisableAFC(void);
|
||||
|
||||
void BK4819_DisableAGC(void);
|
||||
void BK4819_EnableAGC(void);
|
||||
|
||||
@ -79,7 +82,7 @@ void BK4819_EnableVox(uint16_t Vox1Threshold, uint16_t Vox0Threshold);
|
||||
|
||||
void BK4819_set_TX_deviation(const bool narrow);
|
||||
|
||||
void BK4819_SetFilterBandwidth(const BK4819_filter_bandwidth_t Bandwidth, const bool weak_no_different);
|
||||
void BK4819_SetFilterBandwidth(const BK4819_filter_bandwidth_t Bandwidth);
|
||||
|
||||
void BK4819_SetupPowerAmplifier(const uint8_t bias, const uint32_t frequency);
|
||||
void BK4819_set_rf_frequency(const uint32_t frequency, const bool trigger_update);
|
||||
|
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
Binary file not shown.
32
radio.c
32
radio.c
@ -644,16 +644,23 @@ void RADIO_setup_registers(bool switch_to_function_foreground)
|
||||
case BK4819_FILTER_BW_NARROW:
|
||||
#ifdef ENABLE_AM_FIX
|
||||
#if 0
|
||||
// BK4819_SetFilterBandwidth(Bandwidth, g_rx_vfo->channel.am_mode > 0 && g_eeprom.config.setting.am_fix);
|
||||
BK4819_SetFilterBandwidth(Bandwidth, true);
|
||||
BK4819_SetFilterBandwidth(Bandwidth);
|
||||
BK4819_EnableAFC();
|
||||
#else
|
||||
if (g_rx_vfo->channel.am_mode > 1)
|
||||
BK4819_SetFilterBandwidth(BK4819_FILTER_BW_NARROWER, false);
|
||||
{
|
||||
BK4819_SetFilterBandwidth(BK4819_FILTER_BW_NARROWER); // sideband
|
||||
BK4819_DisableAFC();
|
||||
}
|
||||
else
|
||||
BK4819_SetFilterBandwidth(Bandwidth, true);
|
||||
{
|
||||
BK4819_SetFilterBandwidth(Bandwidth);
|
||||
BK4819_EnableAFC();
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
BK4819_SetFilterBandwidth(Bandwidth, false);
|
||||
BK4819_EnableAFC();
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
@ -908,16 +915,23 @@ void RADIO_enableTX(const bool fsk_tx)
|
||||
case BK4819_FILTER_BW_NARROW:
|
||||
#ifdef ENABLE_AM_FIX
|
||||
#if 0
|
||||
// BK4819_SetFilterBandwidth(Bandwidth, g_current_vfo->channel.am_mode > 0 && g_eeprom.config.setting.am_fix);
|
||||
BK4819_SetFilterBandwidth(Bandwidth, true);
|
||||
BK4819_SetFilterBandwidth(Bandwidth);
|
||||
BK4819_EnableAFC();
|
||||
#else
|
||||
if (g_current_vfo->channel.am_mode > 1)
|
||||
BK4819_SetFilterBandwidth(BK4819_FILTER_BW_NARROWER, false);
|
||||
{
|
||||
BK4819_SetFilterBandwidth(BK4819_FILTER_BW_NARROWER); // sideband
|
||||
BK4819_DisableAFC();
|
||||
}
|
||||
else
|
||||
BK4819_SetFilterBandwidth(Bandwidth, true);
|
||||
{
|
||||
BK4819_SetFilterBandwidth(Bandwidth);
|
||||
BK4819_EnableAFC();
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
BK4819_SetFilterBandwidth(Bandwidth, false);
|
||||
BK4819_SetFilterBandwidth(Bandwidth);
|
||||
BK4819_EnableAFC();
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user