CS7000: implemented transmission of CTCSS squelch tones

This commit is contained in:
Silvano Seva 2024-10-25 18:45:35 +02:00
parent f883d4e7e1
commit 832b933983
2 changed files with 14 additions and 2 deletions

View File

@ -463,6 +463,7 @@ cs7000_src = ['platform/drivers/NVM/nvmem_CS7000.c',
'platform/drivers/stubs/cps_io_stub.c',
'platform/drivers/baseband/AK2365A.c',
'platform/drivers/baseband/SKY72310.c',
'platform/drivers/baseband/HR_C6000.cpp',
'platform/drivers/baseband/HR_Cx000.cpp',
'platform/drivers/baseband/HR_C6000_CS7000.cpp',
'platform/drivers/baseband/radio_CS7000.cpp',

View File

@ -244,14 +244,25 @@ void radio_enableTx()
{
case OPMODE_FM:
{
TxAudioSource source = TxAudioSource::MIC;
// WARNING: HR_C6000 quirk!
// If the CTCSS tone is disabled immediately after TX stop, the IC
// stops outputting demodulated audio until a reset. This may be
// something related to the "tail tone elimination" function. To
// overcome this, the CTCSS tone is enabled/disabled before starting
// a new transmission.
if(config->txToneEn)
C6000.setTxCtcss(config->txTone, 0x20);
else
C6000.disableCtcss();
FmConfig cfg = (config->bandwidth == BW_12_5) ? FmConfig::BW_12p5kHz
: FmConfig::BW_25kHz;
C6000.startAnalogTx(source, cfg | FmConfig::PREEMPH_EN);
C6000.startAnalogTx(TxAudioSource::MIC, cfg | FmConfig::PREEMPH_EN);
}
break;
case OPMODE_M17:
C6000.disableCtcss();
C6000.startAnalogTx(TxAudioSource::LINE_IN, FmConfig::BW_25kHz);
break;