Goto page 1, 2 Next
Atlantis
Guest
Mon Aug 22, 2016 6:29 pm
Próbuję w tej chwili podłączyć Raspberry Pi Zero do modułu z układem
wm8731. System wykrywa chip na magistrali i2c. Pierwotnie posługiwałem
się tym opisem:
http://blog.koalo.de/2013/05/i2s-support-for-raspberry-pi.html
Pominąłem jedynie opis poświęcony kompilowaniu jądra, bo AFAIK od
jakiegoś czasu niezbędne moduły są już standardowo dołączane do Rapbiana
Jessie. Niestety stosowanie się do tej instrukcji nie przynosiło żadnych
efektów - w systemie nie pojawiała się żadna nowa karta dźwiękowa.
Trochę doczytałem i wygląda na to, że w nowszych wersjach systemu
ładowanie modułów odbywa się przez wpisy w /boot/config.txt
Dodałem więc następujące wpisy:
dtparam=i2s=on
dtoverlay=i2s-mmap
dtoverlay=rpi-proto
Po restarcie nastąpił połowiczny sukces "aplay -l" pokazuje kartę
dźwiękową, jednak dmesg pokazuje następujące błędy podczas startu systemu:
[ 9.949830] snd-rpi-proto soc:sound: ASoC: CPU DAI (null) not registered
[ 9.949873] snd-rpi-proto soc:sound: snd_soc_register_card() failed: -517
[ 10.033350] snd-rpi-proto soc:sound: ASoC: CODEC DAI wm8731-hifi not
registered
[ 10.033391] snd-rpi-proto soc:sound: snd_soc_register_card() failed: -517
Nie jestem też w stanie niczego odtworzyć za pośrednictwem tej karty - w
głośnikach cisza, a w dmesg kolejne błędy:
[ 175.093402] bcm2835-i2s 20203000.i2s: I2S SYNC error!
[ 176.125304] bcm2835-dma 20007000.dma: DMA transfer could not be
terminated
[ 176.126270] bcm2835-i2s 20203000.i2s: I2S SYNC error!
[ 176.265806] bcm2835-dma 20007000.dma: DMA transfer could not be
terminated
Ktoś ma jakiś pomysł? problem prawie na pewno nie jest sprzętowy.
Próbowałem na dwóch różnych Raspberry Pi i wielokrotnie sprawdzałem
połączenia.
Artur Miller
Guest
Mon Aug 22, 2016 7:40 pm
W dniu 2016-08-22 o 20:29, Atlantis pisze:
Quote:
Próbuję w tej chwili podłączyć Raspberry Pi Zero do modułu z układem
wm8731. System wykrywa chip na magistrali i2c. Pierwotnie posługiwałem
się tym opisem:
[...]
Ktoś ma jakiś pomysł? problem prawie na pewno nie jest sprzętowy.
Próbowałem na dwóch różnych Raspberry Pi i wielokrotnie sprawdzałem
połączenia.
z I2S kiedyś walczyłem, niestety nie na Raspie, tylko na DSP TI, ale...
sam I2S ma kilka trybów (podobnie jak SPI) rózniących się polaryzacją
zegara, liczbą bitów, kodowaniem kanałów itp. Jak się format nadawania
nie zgadza z wymaganym przez kodek - nie zadziała. Polecam DOKŁADNĄ
lekturę datasheetów.
a.
Atlantis
Guest
Mon Aug 22, 2016 8:02 pm
W dniu 2016-08-22 o 21:40, Artur Miller pisze:
Quote:
z I2S kiedyś walczyłem, niestety nie na Raspie, tylko na DSP TI, ale...
sam I2S ma kilka trybów (podobnie jak SPI) rózniących się polaryzacją
zegara, liczbą bitów, kodowaniem kanałów itp. Jak się format nadawania
nie zgadza z wymaganym przez kodek - nie zadziała. Polecam DOKŁADNĄ
lekturę datasheetów.
Tylko co mi dadzą datasheety, jeśli używam Raspberry Pi?
Nie znam się na Linuksie na tyle, żeby myśleć o napisaniu własnego
sterownika. Mogę jedynie operować na tym, co już jest w systemie i
zastanawiać się, dlaczego nie działa.
Artur Miller
Guest
Mon Aug 22, 2016 8:05 pm
W dniu 2016-08-22 o 22:02, Atlantis pisze:
Quote:
W dniu 2016-08-22 o 21:40, Artur Miller pisze:
z I2S kiedyś walczyłem, niestety nie na Raspie, tylko na DSP TI, ale...
sam I2S ma kilka trybów (podobnie jak SPI) rózniących się polaryzacją
zegara, liczbą bitów, kodowaniem kanałów itp. Jak się format nadawania
nie zgadza z wymaganym przez kodek - nie zadziała. Polecam DOKŁADNĄ
lekturę datasheetów.
Tylko co mi dadzą datasheety, jeśli używam Raspberry Pi?
Nie znam się na Linuksie na tyle, żeby myśleć o napisaniu własnego
sterownika. Mogę jedynie operować na tym, co już jest w systemie i
zastanawiać się, dlaczego nie działa.
dadzą to, że zapewne da się jakoś konfigurowac I2S w tym Linuxie. I
warto go tak skonfigurować, jak potrzebuje tego kodek.
a.
Atlantis
Guest
Tue Aug 23, 2016 4:09 am
W dniu 2016-08-22 o 22:05, Artur Miller pisze:
Quote:
dadzą to, że zapewne da się jakoś konfigurowac I2S w tym Linuxie. I
warto go tak skonfigurować, jak potrzebuje tego kodek.
Takimi niskopoziomowymi operacjami raczej zajmuje się steronik. Wątpię,
żeby użtykownik miał coś do powiedzenia.
Artur Miller
Guest
Tue Aug 23, 2016 6:03 am
W dniu 2016-08-23 o 06:09, Atlantis pisze:
Quote:
W dniu 2016-08-22 o 22:05, Artur Miller pisze:
dadzą to, że zapewne da się jakoś konfigurowac I2S w tym Linuxie. I
warto go tak skonfigurować, jak potrzebuje tego kodek.
Takimi niskopoziomowymi operacjami raczej zajmuje się steronik. Wątpię,
żeby użtykownik miał coś do powiedzenia.
na niechęć do posiadania wiedzy ja już nic nie poradzę :)
a.
wchpikus
Guest
Tue Aug 23, 2016 6:37 am
na początek sprawdź czy cokolwiek masz na linii i2s, zegar, jakieś dane,
cokolwiek (oscyloskopem).
Potem możesz się bawić w ustawianie i2s..
http://cdn.sparkfun.com/datasheets/Dev/Arduino/Shields/WolfsonWM8731.pdf
Atlantis
Guest
Tue Aug 23, 2016 6:56 am
W dniu 2016-08-23 o 08:03, Artur Miller pisze:
Quote:
na niechęć do posiadania wiedzy ja już nic nie poradzę
Jaką niechęć? Przeczytałem dokumentację poświęconą konfiguracji
interfejsu i2s w Raspberry Pi oraz poszczególnych kart audio (w moim
przypadku układ ma byś software'owo kompatybilny z rpi-proto).
Nie było tam ani słowa o konfiguracji interfejsu. W ogólne nie było
wyszczególnionych żadnych opcji konfiguracyjnych. Zakładam więc, że są
one hardkodowane w driverze. Bo niby czemu miałoby być inaczej? Wiadomo
jaki układ zastosowano w danej karcie, więc wystarczy raz podać
odpowiadające mu parametry. Ingerencja użytkownika jest całkowicie zbędna.
Atlantis
Guest
Tue Aug 23, 2016 7:30 am
W dniu 2016-08-23 o 08:37, wchpikus pisze:
Quote:
na początek sprawdź czy cokolwiek masz na linii i2s, zegar, jakieś dane,
cokolwiek (oscyloskopem).
Niestety mój jedyny oscyloskop to zabytek, który nadaje się właściwie
tylko do pracy z układami analogowymi. Nie ma wyzwalania zboczem ani
pamięci.
Prosty analizator stanów logicznych wystarczy? Mam go podpiąć do
magistrali i2s zamiast karty dźwiękowej, czy podłączyć go równolegle,
jako kolejne urządzenie na magistrali?
Rozumiem, że po i2s lecą tylko próbki dźwięku, a sterowanie odbywa się
poprzez i2c?
wchpikus
Guest
Tue Aug 23, 2016 7:58 am
Quote:
Prosty analizator stanów logicznych wystarczy? Mam go podpiąć do
magistrali i2s zamiast karty dźwiękowej, czy podłączyć go równolegle,
jako kolejne urządzenie na magistrali?
Rozumiem, że po i2s lecą tylko próbki dźwięku, a sterowanie odbywa się
poprzez i2c?
Analizator starczy
Zobacz czy Pi cokolwiek wysyla do ukladu.
Jesli jest jako master, bedzie zegar WS i linie danych.
Jesli nie ma nic, to trzeba go zmusic do tego.
Co do kodeka, nie wiem jak jest sterowany z Pi, nie znam tej plyty, moze
byc i2c lub spi, ale samo ustawienie karty to tez troche zabawy.
Ustawienie powinno byc takie
pi (master, wystawia zegar) , kodek(slave), bez zegara.
Ustawienie ramek tez powinno być zgodne w obu urządzeniach (próbkowanie
itp).
Jeśli sygnały fizycznie są i sa zgodne, to zadziała.
Nie wiem czy kodek nie potrzebuje tez master-clock,warto sprawdzić czy jest
Atlantis
Guest
Tue Aug 23, 2016 8:11 am
W dniu 2016-08-23 o 09:58, wchpikus pisze:
Quote:
Zobacz czy Pi cokolwiek wysyla do ukladu.
Jesli jest jako master, bedzie zegar WS i linie danych.
Jesli nie ma nic, to trzeba go zmusic do tego.
Ok, czyli jeśli podłączę analizator do linii interfejsu i2s po stronie
RasPi (pozostawiając połączenie i2c pomiędzy komputerkiem i kodekiem) to
system nie zorientuje się, że po drugiej stronie interfejsu i2s brakuje
układu i będzie próbował wysyłać dane do analizatora?
Oczywiście zakładając, że jest skonfigurowany jako master...
Quote:
Co do kodeka, nie wiem jak jest sterowany z Pi, nie znam tej plyty, moze
byc i2c lub spi, ale samo ustawienie karty to tez troche zabawy.
Sterowanie jest po i2c, co do tego mam pewność.
Pytałem tylko o to, czy po i2s nie są też przypadkiem przesyłane jakieś
dane sterujące.
Jeśli chodzi o i2c, to system z całą pewnością wykrywa ten układ. Po
pierwsze i2cdetect pokazuje urządzenie pod adresem 1A, po drugie
rozłączenie magistrali i2c skutkuje niewykrywaniem karty dźwiękowej
podczas startu systemu.
wchpikus
Guest
Tue Aug 23, 2016 8:13 am
W dniu 23.08.2016 o 10:11, Atlantis pisze:
Quote:
i2cdetect pokazuje urządzenie pod adresem 1A, po drugie
Wiec wiesz ze driver do karty działa poprawnie.
sprawdź co masz na liniach i2s, analizator nie będzie w niczym przeszkadzał.
Waldemar
Guest
Tue Aug 23, 2016 8:21 am
Am 22.08.2016 um 20:29 schrieb Atlantis:
Quote:
Próbuję w tej chwili podłączyć Raspberry Pi Zero do modułu z układem
wm8731. System wykrywa chip na magistrali i2c. Pierwotnie posługiwałem
się tym opisem:
http://blog.koalo.de/2013/05/i2s-support-for-raspberry-pi.html
Pominąłem jedynie opis poświęcony kompilowaniu jądra, bo AFAIK od
jakiegoś czasu niezbędne moduły są już standardowo dołączane do Rapbiana
Jessie. Niestety stosowanie się do tej instrukcji nie przynosiło żadnych
efektów - w systemie nie pojawiała się żadna nowa karta dźwiękowa.
Trochę doczytałem i wygląda na to, że w nowszych wersjach systemu
ładowanie modułów odbywa się przez wpisy w /boot/config.txt
Dodałem więc następujące wpisy:
dtparam=i2s=on
dtoverlay=i2s-mmap
dtoverlay=rpi-proto
Po restarcie nastąpił połowiczny sukces "aplay -l" pokazuje kartę
dźwiękową, jednak dmesg pokazuje następujące błędy podczas startu systemu:
[ 9.949830] snd-rpi-proto soc:sound: ASoC: CPU DAI (null) not registered
[ 9.949873] snd-rpi-proto soc:sound: snd_soc_register_card() failed: -517
[ 10.033350] snd-rpi-proto soc:sound: ASoC: CODEC DAI wm8731-hifi not
registered
[ 10.033391] snd-rpi-proto soc:sound: snd_soc_register_card() failed: -517
Nie jestem też w stanie niczego odtworzyć za pośrednictwem tej karty - w
głośnikach cisza, a w dmesg kolejne błędy:
[ 175.093402] bcm2835-i2s 20203000.i2s: I2S SYNC error!
[ 176.125304] bcm2835-dma 20007000.dma: DMA transfer could not be
terminated
[ 176.126270] bcm2835-i2s 20203000.i2s: I2S SYNC error!
[ 176.265806] bcm2835-dma 20007000.dma: DMA transfer could not be
terminated
Ktoś ma jakiś pomysł? problem prawie na pewno nie jest sprzętowy.
Próbowałem na dwóch różnych Raspberry Pi i wielokrotnie sprawdzałem
połączenia.
Wyłącz device tree. Jesse ma problemy z I2C, między innymi. Sam przy tym
nie dłubię, jak na razie, ale kolega z naprzeciwka stołu wczoraj walczył
z Jessie i tak właśnie rozwiązał sprawę. Nie z audio tylko z wagą, ale
też I2C device. Z SPI jest podobnie.
Waldek
Atlantis
Guest
Tue Aug 23, 2016 10:13 am
W dniu 2016-08-23 o 10:21, Waldemar pisze:
Quote:
Wyłącz device tree. Jesse ma problemy z I2C, między innymi. Sam przy tym
nie dłubię, jak na razie, ale kolega z naprzeciwka stołu wczoraj walczył
z Jessie i tak właśnie rozwiązał sprawę. Nie z audio tylko z wagą, ale
też I2C device. Z SPI jest podobnie.
Tego się obawiałem i prawdę mówiąc bardzo chciałem uniknąć. Mam już parę
skonfigurowanych urządzeń przez device tree (m.in ENC28J60) i działają
one be żadnego problemu. Wyłączenie tej funkcjonalności będzie wiązało
się z koniecznością konfigurowania tego wszystkiego od nowa, wedle
starego sposobu.
Atlantis
Guest
Tue Aug 23, 2016 10:17 am
W dniu 2016-08-23 o 10:13, wchpikus pisze:
Quote:
Wiec wiesz ze driver do karty działa poprawnie.
sprawdź co masz na liniach i2s, analizator nie będzie w niczym
przeszkadzał.
Czyli mogę podpiąć do magistrali i2s analizator ZAMIAST karty dźwiękowej
(zostawiając po staremu połączenie i2c)? RPi nie zorientuje się, że
wysyła próbki do innego urządzenia? Chciałbym uniknąć robienia
specjalnych, "potrójnych" kabelków albo podpinania się przez płytkę stykową.
Goto page 1, 2 Next