I2S slave на mainline ядре OrangePi

Для качественного аудио интерфейса требуется перевести I2S в слэйв-режим и подать сформированные на базе внешнего, стабильного клока, сигналы BCLK и LRCLK.

BCLK (Bit Serial Clock) — тактовые импульсы, по срезам которых происходит распознавание нужных пакетов данных.
LRCK (Left/Right Clock) — сигнал разделения левого и правого каналов – по нему ЦАП распознает, когда данные обрабатывать в левом, а когда в правом канале.
DATA — поток данных левого и правого каналов – то, что потом волшебным образом радует наш слух.
При использовании цифрового транспорта на базе OrangePi с подключением к ЦАП по I2S в слэйв-режиме, качество этого самого транспорта перестаёт иметь определяющее значение для конечного звука и дальше всё зависит от реализации самого ЦАП, усилителя, АС.
Используется патч драйвера I2S автор – Nikkov тема на веге и плата формирователя :
Цифровой транспорт с открытым кодом на NanoPI-Neo*
схема подключения к гребёнке :

собирал armbian на Win10 с VirtualBox + Ubuntu 16.04 x64 Developer-Guide_Build-Preparation

копируем файл:
sunxi-opipc-patch-I2S.patch в директорию /build/patch/kernel/sunxi-next

./compile.sh BOARD=orangepipc BRANCH=next RELEASE=jessie BUILD_DESKTOP=no KERNEL_ONLY=on KERNEL_CONFIGURE=yes

make linux-menuconfig (by buildroot)

Device Drivers
<*> -->Sound card support
<*>  -->Advanced Linux Sound Archtecture
<*>   -->ALSA for Soc audio support
          -->Allwinner Soc Audio support
             <*> Allwinner A10 Codec Support
             <*> Allwinner SUN8I audio codec
             <*> Allwinner sun8i Codec Analog Controls Suppor  
             <*> Allwinner A10 I2S Support
             <M> Allwinner A10 SPDIF Support
             <*> Allwinner sun8i I2S Support

Вот собранный имидж для OrangepiPC Armbian_5.35_Orangepipc_Debian_jessie_next_4.13.16.7z
На Opi:

armbian-config --> System --> Hardware

cat /proc/asound/cards

0 [Codec          ]: H3_Audio_Codec - H3 Audio Codec
                      H3 Audio Codec
 1 [sndsun8ii2sdac ]: snd-sun8i-i2s-d - snd-sun8i-i2s-dac
                      snd-sun8i-i2s-dac
 2 [allwinnerhdmi  ]: allwinner_hdmi - allwinner,hdmi
                      allwinner,hdmi
Share
Send
Pin
2017   armbian   I2S   OrangePI PC
4 comments
Vyacheslav S

Как применить этот patch для H5 Orange Pi PC2?

ua3nbw

У меня нет H5, проверить не могу, надо пробовать. Должно работать, модуль (драйвер) I2S для H3 и H5 используется один.

Vyacheslav S

Не компилируется, вижу такое предупреждение:
[ warn ] * [l][c] sunxi-opipc-patch-I2S.patch [ failed ]

Vyacheslav S

Видимо этот патч нужно править под Н5.

Vyacheslav S

В общем со второго раза ядро собралось, по логам видно патч применялся, но видимо тк сборка шла под orangepipc2 (H5), то не были созданы *I2S.dts под него. Да и в патче нет указания на их создание.
В armbian-config > System > Hardware тоже нет выбора пункта I2S, скриншот:
https://yadi.sk/i/yM9Y7SQ13UYmFL

ua3nbw

Директория *.dts для H5 и H3 в разных местах. Патч надо править.

Your comment
won’t be published

HTML will not work

Ctrl + Enter
Popular