Разобрался со звуковой подсистемой...

Apr 17, 2024 12:16

...на FPGA и Linux. Нужно было подключить звуковой кодек NAU88C22. С I2C без проблем, а вот на I2S есть варианты. Штатный AXI I2S от Xilinx отмел почти сразу - он не умеет одновременно rx и tx. Нужно ставить две разных "корки". Остались тот, что идет с Red Pitaya и от AnalogDevices. Документации ни на один из них нормальной нет, но на ADI I2S уже есть драйвер в Linux. Начал ковырять его. Благо, что нашел один из проектов от ADI где он используется. Изучая этот проект обнаружил, что в Zynq прямо из PS выходят 4 DMA канала в PL часть! Почему-то это совсем не распространенный способ и обычно ставят отдельную AXI-DMA "корку". Подключил на PS DMA, все прописал в DTS, добавил кое-какие драйвера в ядро. Linux звуковую увидел и в микшере каналы видно - можно крутить громкость. Но вместо звука либо писк либо какой-то хрип. Убил на это пару часов, даже осфилограф включил (; На первый взгляд все нормально. Проверил record - на нем тоже тишина. Закралось у меня тогда сомнение насчет I2S сигналов data in / data out. Перекинул их местам и оно ожило. Не очень громко, но работает. На record правда реакции на микрофон нет, хотя видно какой-то не нулевой шум.

Так что теперь Brass не только показывает, но и говорит (; Теперь самое интересное: подключение ADC и DAC.

радиолюбительское, linux, fpga, brass

Previous post Next post
Up