Платный заказ
Бюджет:
3 000 руб
Есть плата STM32F4DISCOVERY. На плате стоит ЦАП CS43L22, а также микрофон MP45DT02. На основе примера stm32f411e_discovery_audio.c разработано приложение, которое получает звук с микрофона MP45DT02 по I2S и передает на сервер. Нужно захваченный звук по I2S тут же передавать на CS43L22 однако в примере частоты I2S для записи и воспроизведения звука разные, поэтому при попытке одновременного воспроизведения звук искажается.
Настройки PLLI2S из примера:
OUT: 86 Mhz
rccclkinit.PeriphClockSelection = RCC_PERIPHCLK_I2S;
rccclkinit.PLLI2S.PLLI2SM = 8;
rccclkinit.PLLI2S.PLLI2SN = 258;
rccclkinit.PLLI2S.PLLI2SR = 3;
HAL_RCCEx_PeriphCLKConfig(&rccclkinit);
IN: 32 Mhz
rccclkinit.PeriphClockSelection = RCC_PERIPHCLK_I2S;
rccclkinit.PLLI2S.PLLI2SM = 8;
rccclkinit.PLLI2S.PLLI2SN = 192;
rccclkinit.PLLI2S.PLLI2SR = 6;
HAL_RCCEx_PeriphCLKConfig(&rccclkinit);
HSE=8Mhz
Что нужно?
Нужно помочь разобраться в работе протокола I2S и подобрать правильные параметры генератора частоты, чтобы плата смогла записывать и воспроизводить звук одновременно.