Pracuję obecnie nad projektem radia internetowego/odtwarzacza multimedialnego, opartego na Raspberry Pi Zero. Docelowo projekt ma mieć postać osobnej płytki z wszystkimi niezbędnymi interfejsami (Ethernet, DAC/kodek, LCD, impulsator, przyciski itp.), w którą wpięte zostanie RPi0.
Na razie eksperymentuję na płytce stykowej. Udało mi się podłączyć komputerek do sieci lokalnej przez ENC28J60 oraz uruchomić ekran LCD na ILI9341.
Parę dni temu dostałem od znajomego dwie zaprojektowane przez niego płytki z układem wm8731. Obydwie działały, gdy odkładał je na półkę. ich projekt pochodzi z czasów oryginalnego RasPi, gdy interfejs I2S był wyprowadzony na osobnym złączu, więc chcąc podłączyć to do RPi0 musiałem się posłużyć jumper wire'ami.
Połączenia sprawdziłem kilka razy przed opaleniem układu.
Niestety za nic nie mogę zmusić żadnej z tych kart dźwiękowych do pracy.
Zgodnie z informacjami otrzymanymi od znajomego, należało je skonfigurować wedle
TEGO OPISU. Od tego zacząłem, pomijając część poświęconą kompilacji jądra (AFAIK niezbędne moduły są już dołączone do Raspbiana Jessie). Niestety, nie dało to żadnego efektu - "aplay -l" nie pokazał nowej karty, chociaż sam układ wm8731 jest widoczny na magistrali i2c po adresem 1A.
Trochę pogrzebałem w Internecie i znalazłem kilka opisów, polegających na modyfikacji pliku /boot/config.txt. Opierając się na tych informacjach wprowadziłem w nim następujące zmiany:
1) Odkomentowałem wpis "dtparam=i2s=on"
2) Dodałem wpis "dtoverlay=i2s-mmap"
3) Dodałem wpis "dtoverlay=rpi-proto"
To już przyniosło częściowy sukces - w systemie pojawiła się nowa karta:
Kod:
card 1: sndrpiproto [snd_rpi_proto], device 0: WM8731 HiFi wm8731-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
Niestety, nie udało mi się odtworzyć czegokolwiek za jej pośrednictwem. Wzmacniacz podłączony do wyjścia milczy, a w dmesg licznie pojawiają się następujące wpisy:
Kod:
[ 379.361881] bcm2835-i2s 20203000.i2s: I2S SYNC error!
[ 379.913159] bcm2835-dma 20007000.dma: DMA transfer could not be terminated
Mam dwie takie karty, a wiec celem upewnienia się, że nie mam do czynienia z problemem sprzętowym, podłączyłem drugą, uzyskując dokładnie taki sam efekt. Próbowałem nawet podłączyć jedną z nich do mojego starego RasPi1 (rev2), z identycznym efektem. Połączenia wykonałem możliwie krótkimi jumper wire'ami (skrócone do około 10 cm).
Podejrzewam, że problem musi leżeć w konfiguracji. Ktoś ma jakiś pomysł? Co mogę zrobić?