Changed gain and added an offset at tx RRC stage only for Module 17 to compensate for an hardware bug
This commit is contained in:
parent
4a3e31cd03
commit
4b8685b853
|
|
@ -111,7 +111,13 @@ private:
|
||||||
static constexpr size_t M17_TX_SAMPLE_RATE = 48000;
|
static constexpr size_t M17_TX_SAMPLE_RATE = 48000;
|
||||||
static constexpr size_t M17_FRAME_SAMPLES_48K = 1920;
|
static constexpr size_t M17_FRAME_SAMPLES_48K = 1920;
|
||||||
static constexpr size_t M17_FRAME_SYMBOLS = 192;
|
static constexpr size_t M17_FRAME_SYMBOLS = 192;
|
||||||
|
#ifdef PLATFORM_MOD17
|
||||||
|
static constexpr float M17_RRC_GAIN = 15000.0f;
|
||||||
|
static constexpr float M17_RRC_OFFSET = 11500.0f;
|
||||||
|
#else
|
||||||
static constexpr float M17_RRC_GAIN = 7168.0f;
|
static constexpr float M17_RRC_GAIN = 7168.0f;
|
||||||
|
static constexpr float M17_RRC_OFFSET = 0.0f;
|
||||||
|
#endif
|
||||||
|
|
||||||
std::array< int16_t, M17_FRAME_SYMBOLS > symbols;
|
std::array< int16_t, M17_FRAME_SYMBOLS > symbols;
|
||||||
stream_sample_t *baseband_buffer; ///< Buffer for baseband audio handling.
|
stream_sample_t *baseband_buffer; ///< Buffer for baseband audio handling.
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,8 @@ void M17Modulator::generateBaseband()
|
||||||
for(size_t i = 0; i < M17_FRAME_SAMPLES_48K; i++)
|
for(size_t i = 0; i < M17_FRAME_SAMPLES_48K; i++)
|
||||||
{
|
{
|
||||||
float elem = static_cast< float >(idleBuffer[i]);
|
float elem = static_cast< float >(idleBuffer[i]);
|
||||||
idleBuffer[i] = static_cast< int16_t >(M17::rrc(elem) * M17_RRC_GAIN);
|
idleBuffer[i] = static_cast< int16_t >((M17::rrc(elem) * M17_RRC_GAIN)
|
||||||
|
- M17_RRC_OFFSET);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ void stopTransfer()
|
||||||
TIM7->CR1 = 0; // Shutdown timer
|
TIM7->CR1 = 0; // Shutdown timer
|
||||||
DAC->SR = 0; // Clear status flags
|
DAC->SR = 0; // Clear status flags
|
||||||
DAC->CR = DAC_CR_EN1; // Keep only channel 1 active
|
DAC->CR = DAC_CR_EN1; // Keep only channel 1 active
|
||||||
DAC->DHR12R1 = 2048; // Set channel 1 (RTX) to VDD/2 when idle
|
DAC->DHR12R1 = 1365; // Set channel 1 (RTX) to about 1.1V when idle
|
||||||
|
|
||||||
// Clear flags
|
// Clear flags
|
||||||
running = false;
|
running = false;
|
||||||
|
|
|
||||||
|
|
@ -42,19 +42,19 @@ void platform_init()
|
||||||
gpio_setMode(PTT_OUT, OUTPUT);
|
gpio_setMode(PTT_OUT, OUTPUT);
|
||||||
gpio_clearPin(PTT_OUT);
|
gpio_clearPin(PTT_OUT);
|
||||||
|
|
||||||
/* Set analog output for baseband signal to an idle level of VDD/2 */
|
/* Set analog output for baseband signal to an idle level of 1.1V */
|
||||||
gpio_setMode(BASEBAND_TX, INPUT_ANALOG);
|
gpio_setMode(BASEBAND_TX, INPUT_ANALOG);
|
||||||
RCC->APB1ENR |= RCC_APB1ENR_DACEN;
|
RCC->APB1ENR |= RCC_APB1ENR_DACEN;
|
||||||
DAC->CR |= DAC_CR_EN1;
|
DAC->CR |= DAC_CR_EN1;
|
||||||
DAC->DHR12R1 = 2048;
|
DAC->DHR12R1 = 1365;
|
||||||
|
|
||||||
nvm_init();
|
nvm_init();
|
||||||
adc1_init();
|
adc1_init();
|
||||||
i2c_init();
|
i2c_init();
|
||||||
mcp4551_init(SOFTPOT_RX);
|
mcp4551_init(SOFTPOT_RX);
|
||||||
mcp4551_init(SOFTPOT_TX);
|
mcp4551_init(SOFTPOT_TX);
|
||||||
|
mcp4551_setWiper(SOFTPOT_TX, 0x100);
|
||||||
//mcp4551_setWiper(SOFTPOT_RX, MCP4551_WIPER_A);
|
//mcp4551_setWiper(SOFTPOT_RX, MCP4551_WIPER_A);
|
||||||
//mcp4551_setWiper(SOFTPOT_TX, MCP4551_WIPER_A);
|
|
||||||
|
|
||||||
audio_init();
|
audio_init();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue