Fixed microphone parrot test, audio volume is still too low

This commit is contained in:
Silvano Seva 2021-04-29 11:16:24 +02:00
parent f53580c623
commit afc0da414a
1 changed files with 15 additions and 17 deletions

View File

@ -35,7 +35,7 @@
*/ */
// #define SAMPLE_RTX_AUDIO // #define SAMPLE_RTX_AUDIO
static const size_t numSamples = 45*1024; // 80kB static const size_t numSamples = 35*1024; // 70kB
void recordMic(uint16_t *buffer) void recordMic(uint16_t *buffer)
{ {
@ -85,7 +85,7 @@ void recordMic(uint16_t *buffer)
ADC1->SQR1 = 0; /* One channel to be converted */ ADC1->SQR1 = 0; /* One channel to be converted */
#ifdef SAMPLE_RTX_AUDIO #ifdef SAMPLE_RTX_AUDIO
ADC1->SQR3 = 13; /* CH13, audio from RTX on PC13 */ ADC1->SQR3 = 13; /* CH13, audio from RTX on PC3 */
#else #else
ADC1->SQR3 = 3; /* CH3, vox level on PA3 */ ADC1->SQR3 = 3; /* CH3, vox level on PA3 */
#endif #endif
@ -101,8 +101,14 @@ void recordMic(uint16_t *buffer)
| ADC_CR2_EXTSEL_2 /* 0b0110 TIM2_TRGO trig. source */ | ADC_CR2_EXTSEL_2 /* 0b0110 TIM2_TRGO trig. source */
| ADC_CR2_DDS /* Enable DMA data transfer */ | ADC_CR2_DDS /* Enable DMA data transfer */
| ADC_CR2_DMA | ADC_CR2_DMA
| ADC_CR2_ALIGN
| ADC_CR2_ADON; /* Enable ADC */ | ADC_CR2_ADON; /* Enable ADC */
/* Wait until DMA transfer ends, meanwhile blink the green led */
while((DMA2_Stream0->CR & DMA_SxCR_EN) == 1)
{
gpio_togglePin(GREEN_LED);
delayMs(250);
}
} }
void playbackSpk(uint16_t *buffer) void playbackSpk(uint16_t *buffer)
@ -129,11 +135,11 @@ void playbackSpk(uint16_t *buffer)
TIM3->CR1 |= TIM_CR1_CEN; TIM3->CR1 |= TIM_CR1_CEN;
/* /*
* Timebase for 48kHz sample rate * Timebase for 8kHz sample rate
*/ */
TIM7->CNT = 0; TIM7->CNT = 0;
TIM7->PSC = 0; TIM7->PSC = 0;
TIM7->ARR = 1749;//(84000000/48000) - 1; TIM7->ARR = (84000000/8000) - 1;
TIM7->EGR = TIM_EGR_UG; TIM7->EGR = TIM_EGR_UG;
TIM7->DIER = TIM_DIER_UDE; TIM7->DIER = TIM_DIER_UDE;
TIM7->CR1 = TIM_CR1_CEN; TIM7->CR1 = TIM_CR1_CEN;
@ -175,14 +181,11 @@ int main()
gpio_setPin(MIC_PWR); gpio_setPin(MIC_PWR);
#ifdef SAMPLE_RTX_AUDIO #ifdef SAMPLE_RTX_AUDIO
gpio_setMode(GPIOC, 13, INPUT_ANALOG); gpio_setMode(GPIOC, 3, INPUT_ANALOG);
#else #else
gpio_setMode(AIN_MIC, INPUT_ANALOG); gpio_setMode(AIN_MIC, INPUT_ANALOG);
#endif #endif
/* Enable pull-up resistor on PA3 (AIN_MIC)
GPIOA->PUPDR |= 1 << 6; */
/* AF2 is TIM3 channel 3 */ /* AF2 is TIM3 channel 3 */
gpio_setMode(BEEP_OUT, ALTERNATE); gpio_setMode(BEEP_OUT, ALTERNATE);
gpio_setAlternateFunction(BEEP_OUT, 2); gpio_setAlternateFunction(BEEP_OUT, 2);
@ -191,12 +194,7 @@ int main()
recordMic(sampleBuf); recordMic(sampleBuf);
while((DMA2_Stream0->CR & DMA_SxCR_EN) == 1) /* End of recording, play sound */
{
gpio_togglePin(GREEN_LED);
delayMs(250);
}
gpio_clearPin(GREEN_LED); gpio_clearPin(GREEN_LED);
gpio_setPin(RED_LED); gpio_setPin(RED_LED);