mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-04-29 06:41:25 +03:00
Correct tail tone operation (STE) at end of TX
This commit is contained in:
parent
ad2298aa30
commit
fde690a74a
22
app/app.c
22
app/app.c
@ -690,7 +690,24 @@ void APP_CheckRadioInterrupts(void)
|
||||
void APP_EndTransmission(void)
|
||||
{
|
||||
RADIO_SendEndOfTransmission();
|
||||
RADIO_EnableCxCSS();
|
||||
|
||||
if (gCurrentVfo->pTX->CodeType != CODE_TYPE_OFF)
|
||||
{ // CTCSS/CDCSS is enabled
|
||||
|
||||
//if (gEeprom.TAIL_NOTE_ELIMINATION && gEeprom.REPEATER_TAIL_TONE_ELIMINATION > 0)
|
||||
if (gEeprom.TAIL_NOTE_ELIMINATION)
|
||||
{ // send the tail tone
|
||||
RADIO_EnableCxCSS();
|
||||
}
|
||||
#if 0
|
||||
else
|
||||
{ // TX a short blank carrier - gives the receivers time to mute RX audio before we drop carrier
|
||||
BK4819_ExitSubAu();
|
||||
SYSTEM_DelayMs(200);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
RADIO_SetupRegisters(false);
|
||||
}
|
||||
|
||||
@ -1008,6 +1025,7 @@ void APP_CheckKeys(void)
|
||||
}
|
||||
if (++count < 3)
|
||||
continue;
|
||||
|
||||
// stop transmitting
|
||||
APP_ProcessKey(KEY_PTT, false, false);
|
||||
gPttIsPressed = false;
|
||||
@ -1196,7 +1214,7 @@ void APP_TimeSlice10ms(void)
|
||||
#endif
|
||||
|
||||
// repeater tail tone elimination
|
||||
if (gRTTECountdown)
|
||||
if (gRTTECountdown > 0)
|
||||
{
|
||||
if (--gRTTECountdown == 0)
|
||||
{
|
||||
|
@ -261,6 +261,16 @@ void BK4819_SetCTCSSFrequency(uint32_t FreqControlWord)
|
||||
{
|
||||
uint16_t Config;
|
||||
|
||||
// REG_51 <15> 0 1 = Enable TxCTCSS/CDCSS 0 = Disable
|
||||
// REG_51 <14> 0 1 = GPIO0Input for CDCSS 0 = Normal Mode.(for BK4819v3)
|
||||
// REG_51 <13> 0 1 = Transmit negative CDCSS code 0 = Transmit positive CDCSScode
|
||||
// REG_51 <12> 0 CTCSS/CDCSS mode selection 1 = CTCSS 0 = CDCSS
|
||||
// REG_51 <11> 0 CDCSS 24/23bit selection 1 = 24bit 0 = 23bit
|
||||
// REG_51 <10> 0 1050HzDetectionMode 1 = 1050/4 Detect Enable, CTC1 should be set to 1050/4 Hz
|
||||
// REG_51 <9> 0 Auto CDCSS Bw Mode 1 = Disable 0 = Enable.
|
||||
// REG_51 <8> 0 Auto CTCSS Bw Mode 0 = Enable 1 = Disable
|
||||
// REG_51 <6:0> 0 CTCSS/CDCSS Tx Gain1 Tuning 0 = min 127 = max
|
||||
|
||||
if (FreqControlWord == 2625)
|
||||
{ // Enables 1050Hz detection mode
|
||||
// Enable TxCTCSS
|
||||
@ -269,7 +279,7 @@ void BK4819_SetCTCSSFrequency(uint32_t FreqControlWord)
|
||||
// Enable Auto CDCSS Bw Mode
|
||||
// Enable Auto CTCSS Bw Mode
|
||||
// CTCSS/CDCSS Tx Gain1 Tuning = 74
|
||||
Config = 0x944A;
|
||||
Config = 0x944A; // 1 0 0 1 0 1 0 0 0 1001010
|
||||
}
|
||||
else
|
||||
{ // Enable TxCTCSS
|
||||
@ -277,16 +287,38 @@ void BK4819_SetCTCSSFrequency(uint32_t FreqControlWord)
|
||||
// Enable Auto CDCSS Bw Mode
|
||||
// Enable Auto CTCSS Bw Mode
|
||||
// CTCSS/CDCSS Tx Gain1 Tuning = 74
|
||||
Config = 0x904A;
|
||||
Config = 0x904A; // 1 0 0 1 0 0 0 0 0 1001010
|
||||
}
|
||||
BK4819_WriteRegister(BK4819_REG_51, Config);
|
||||
|
||||
// REG_07 <15:0>
|
||||
//
|
||||
// When <13> = 0 for CTC1
|
||||
// <12:0> = CTC1 frequencycontrolword = freq(Hz)*20.64888 for XTAL 13M/26M or = freq(Hz)*20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M
|
||||
//
|
||||
// When <13> = 1 for CTC2(Tail 55Hz Rx detection)
|
||||
// <12:0> = CTC2 (should below 100Hz) frequencycontrolword = 25391/freq(Hz) for XTAL 13M/26M or = 25000/freq(Hz) for XTAL 12.8M/19.2M/25.6M/38.4M
|
||||
//
|
||||
// When <13> = 2 for CDCSS 134.4Hz
|
||||
// <12:0> = CDCSS baud rate frequency (134.4Hz) controlword = freq(Hz)*20.64888 for XTAL 13M/26M or = freq(Hz)*20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M
|
||||
|
||||
// CTC1 Frequency Control Word
|
||||
BK4819_WriteRegister(BK4819_REG_07, BK4819_REG_07_MODE_CTC1 | ((FreqControlWord * 2065) / 1000) << BK4819_REG_07_SHIFT_FREQUENCY);
|
||||
}
|
||||
|
||||
void BK4819_Set55HzTailDetection(void)
|
||||
{
|
||||
// REG_07 <15:0>
|
||||
//
|
||||
// When <13> = 0 for CTC1
|
||||
// <12:0> = CTC1 frequencycontrolword = freq(Hz)*20.64888 for XTAL 13M/26M or = freq(Hz)*20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M
|
||||
//
|
||||
// When <13> = 1 for CTC2(Tail 55Hz Rx detection)
|
||||
// <12:0> = CTC2 (should below 100Hz) frequencycontrolword = 25391/freq(Hz) for XTAL 13M/26M or = 25000/freq(Hz) for XTAL 12.8M/19.2M/25.6M/38.4M
|
||||
//
|
||||
// When <13> = 2 for CDCSS 134.4Hz
|
||||
// <12:0> = CDCSS baud rate frequency (134.4Hz) controlword = freq(Hz)*20.64888 for XTAL 13M/26M or = freq(Hz)*20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M
|
||||
|
||||
// CTC2 Frequency Control Word = round_nearest(25391 / 55) = 462
|
||||
const unsigned int ctcss_Hz = 55;
|
||||
BK4819_WriteRegister(BK4819_REG_07, (1u << 13) | ((25391 + (ctcss_Hz / 2)) / ctcss_Hz)); // with rounding
|
||||
|
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user