Не знаю, поможет или нет, но похожую проблему пришлось решать несколько лет назад на STM32F103Rx + GSM modem (несколько разных модемов). I2S в МК в режиме Slave, длинный WA, передаёт в модем голосовую запись, иногда происходит рассинхронизация в итоге слышен шум.... Идея в том, что по прерыванию TXE проверяется уровень на WS линии тупо при помощи GPIO (в этом МК IDR всегда отображает картину на входе независимо от выбранной функции). Если прерывание происходит на середине слова, это легко можно определить проверив уровень WS(должен быть высокий, а он низкий и наоборот), то делаем переинициализацию модуля I2S. В моём случае метод сработал без каких-либо заметных для ушей помех.
|