Всем добрый день. Долго читал форум, но так и не смог найти ответ на несколько вопросов (возможно, искал неправильно), связанных с клоком в SPDIF. Буду очень благодарен за помощь и совет.
Задача выводить звук Android головного устройства (ГУ) в обход встроенного аудио процессора. Приемником сигнала является кастомный проект, разработанный на базе микроконтроллера STM32F413VG (подробнее можно почитать здесь, далее - usb2most). Плата usb2most является связующим звеном ряда аудио блоков в автомобиле и оснащена SPDIF входом. Сейчас к этому входу подключен штатный SPDIF выход магнитолы и эта связка работает без нареканий, не считая наличия встроенного в ГУ аудио процессора, который портит звук.
Процессор получает "необработанные" данные в i2s формате. Мне удалось достать плату, которую один умелец делал для аналогичного ГУ на трансивере WM8804 от Wolfson. По замыслу автора, WM8804 работает в Hardwear Mode в режиме Slave. Сигналы в формате i2s (DATA, LRCLK и BCLK) берутся с чипа транспорта. MCLK, который нужен для SPDIF, но которого нет в транспорте создается путем умножения BCLK. Сейчас стоит умножение х3. В данном конфиге все работает, за исключением одной детали: как только аудио поток прекращается, то принимающее SPDIF сигнал плата usb2most выпадает в ошибку и начинает перезагружаться до того момента, пока аудио поток не возобновится.
В моем понимании происходящее связано с тем, что MCLK для SPDIF создается путем умножения BCLK. Если нет аудио потока, то нет и BCLK, следовательно и MCLK = 0.
Соответственно, нужно логику умножения заменить на генератор клока. Насколько я понял, это можно сделать, используя кварцевый генератор. И вот здесь у меня есть несколько вопросов:
1) Какой резонансной частотой должен обладать генератор? Звуковой поток который идет по i2s это 16 бит/44,1кГц. Так понимаю, что для WM8804 при таких параметрах используют 22,5792 МГц. Это эквивалентно 512fs. Сейчас, путем умножения, как я понимаю, получается порядка 96fs. Не стоит ли использовать меньшую резонансную частоту?
2) Нужно ли как-то синхронизировать генерируемый MCLK с BCLK?
3) Нужно ли ставить какие-то дополнительные элементы на выход генератора или можно подключать его напрямую к WM8804?
4) Может быть есть какие-то другие более правильные варианты генерации клока в данной конструкции, чем применение генератора?
Сори, что много буков. Заранее благодарен за ответы!
Социальные закладки