RTV forum PL | NewsGroups PL

Podłączenie DAC do Raspberry Pi dla radia internetowego - jakie opcje w Polsce?

DAC do Raspberry Pi

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Podłączenie DAC do Raspberry Pi dla radia internetowego - jakie opcje w Polsce?

Goto page 1, 2  Next

Atlantis
Guest

Wed Jan 15, 2014 10:30 pm   



Na mojej liście projektów do zrealizowania znajduje się radio
internetowe/sieciowy odtwarzacz muzyczny oparty na Raspberry Pi. Już
jakiś czas temu przeprowadziłem pierwsze eksperymenty z MPD i o ile sam
software działa całkiem sprawnie, to problemem okazała się jakość
dźwięku na wyjściu audio. Nie jest co prawda tak źle, jak sądzą
niektórzy, ale pewne artefakty są słyszalne przy niskim poziomie dźwięku
(np. gdyby chciało się zostawić radio grające w nocy, jako tło).

Najpierw pomyślałem o jakiejś karcie dźwiękowej na USB, jednak tutaj
pojawia się parę problemów. Przede wszystkim trudno to zamontować
wewnątrz obudowy, gdy chce się mieć RJ45 i USB wyprowadzone na obudowę -
musiałbym stosować przelotki do osobnych gniazdek.

Niedawno trafiłem na coś takiego:
http://www.hifiberry.com/

Rozwiązane wygląda bardzo fajnie. Małe, kompaktowe, łatwe w integracji.
Jest jednak kilka ale:
1) Projekt płytki mi się nie podoba. Przede wszystkim niepotrzebnie
blokuje ona złącze GPIO, które przydałoby się np. do podłączenia
wyświetlacza alfanumerycznego i kilku przycisków.
2) Gdybym chciał to zamontować obok płytki RasPi, nie bardzo jest jak
przykręcić PCB.
3) Sama cena jeszcze znośna, ale wzrośnie ze względu na koszt wysyłki
zza granicy.

Samego układu nigdzie nie mogę znaleźć, a najchętniej sam
zaprojektowałbym sobie PCB, łącząc je z RPi za pomocą kabelków. Mógłbym
to nawet zintegrować z jakimś wzmacniaczem...

Czy taki układ (lub coś możliwie podobnego) można by dostać w Polsce? W
dużych sklepach internetowych nie widzę niczego takiego...

Ciemny
Guest

Wed Jan 15, 2014 11:02 pm   



Może ten artykuł Ci się przyda:
http://www.elektroda.pl/rtvforum/topic2719458.html

Pozdr. TC

Grzegorz Niemirowski
Guest

Wed Jan 15, 2014 11:29 pm   



Atlantis <marekw1986NOSPAM@wp.pl> napisał(a):
Quote:
Na mojej liście projektów do zrealizowania znajduje się radio
internetowe/sieciowy odtwarzacz muzyczny oparty na Raspberry Pi. Już
jakiś czas temu przeprowadziłem pierwsze eksperymenty z MPD i o ile sam
software działa całkiem sprawnie, to problemem okazała się jakość
dźwięku na wyjściu audio. Nie jest co prawda tak źle, jak sądzą
niektórzy, ale pewne artefakty są słyszalne przy niskim poziomie dźwięku
(np. gdyby chciało się zostawić radio grające w nocy, jako tło).
Najpierw pomyślałem o jakiejś karcie dźwiękowej na USB, jednak tutaj
pojawia się parę problemów. Przede wszystkim trudno to zamontować
wewnątrz obudowy, gdy chce się mieć RJ45 i USB wyprowadzone na obudowę -
musiałbym stosować przelotki do osobnych gniazdek.
Niedawno trafiłem na coś takiego:
http://www.hifiberry.com/
Rozwiązane wygląda bardzo fajnie. Małe, kompaktowe, łatwe w integracji.
Jest jednak kilka ale:
1) Projekt płytki mi się nie podoba. Przede wszystkim niepotrzebnie
blokuje ona złącze GPIO, które przydałoby się np. do podłączenia
wyświetlacza alfanumerycznego i kilku przycisków.
2) Gdybym chciał to zamontować obok płytki RasPi, nie bardzo jest jak
przykręcić PCB.
3) Sama cena jeszcze znośna, ale wzrośnie ze względu na koszt wysyłki
zza granicy.
Samego układu nigdzie nie mogę znaleźć, a najchętniej sam
zaprojektowałbym sobie PCB, łącząc je z RPi za pomocą kabelków. Mógłbym
to nawet zintegrować z jakimś wzmacniaczem...
Czy taki układ (lub coś możliwie podobnego) można by dostać w Polsce? W
dużych sklepach internetowych nie widzę niczego takiego...

Ja zrobiłem sobie dźwięk do RasPi na WM8731. Działa, aczkolwiek układ ten
jest dosyć ubogi (np. mała liczba obsługiwanych częstotliwości próbkowania).
Wzorowałem się na
http://www.mikroe.com/add-on-boards/audio-voice/audio-codec-proto/
Co do GPIO, to u mnie leci od niego taśma, która łączy wszystkie sygnały z
tego złącza z drugą płytką ponieważ akurat wszelkie dodatkowe układy są na
jednej płytce. Jeśli chcesz mieć audio na jednej płytce, a układy
korzystające z jakichś interfejsów (SPI, serial, GPIO) na innej, to można
wykorzystać złącza łączące pojedyncze piny. Albo zduplikować złącze P1. Co
do P5, to mam je wlutowane od spodu, więc P1 nie blokuje. Z P1 do audio
potrzebne jest oczywiście I2C jako interfejs sterujący kodeka.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 21 hours, 38 minutes and 58 seconds

Atlantis
Guest

Thu Jan 16, 2014 8:22 pm   



W dniu 2014-01-15 23:29, Grzegorz Niemirowski pisze:

Quote:
Ja zrobiłem sobie dźwięk do RasPi na WM8731. Działa, aczkolwiek układ
ten jest dosyć ubogi (np. mała liczba obsługiwanych częstotliwości
próbkowania).

W czymś to przeszkadza podczas normalnego użytkowania? Do projektu
radia/odtwarzacza ten układ się nada, czy istnieje szansa, że natknę się
na jakieś niedogodności?
Na elektrodzie jest projekt wykorzystujący UDA1330, jednak nie widzę
tego układu w żadnym sklepie, a niezbyt komfortowo czuję się z pomysłem
psucia Sound Blastera Live. Smile WM8731 powinien być łatwiejszy do zdobycia.


Quote:
Co do GPIO, to u mnie leci od niego taśma, która łączy wszystkie sygnały
z tego złącza z drugą płytką ponieważ akurat wszelkie dodatkowe układy
są na jednej płytce.

Mogę zapytać jakie to układy? Może któryś z pomysłów również okaże się
przydatny u mnie. ;)


Quote:
Z P1 do audio potrzebne jest oczywiście I2C jako interfejs sterujący
kodeka.

I2C nie jest przypadkiem dostępne na złączu P5?

Grzegorz Niemirowski
Guest

Thu Jan 16, 2014 10:11 pm   



Atlantis <marekw1986NOSPAM@wp.pl> napisał(a):
Quote:
W dniu 2014-01-15 23:29, Grzegorz Niemirowski pisze:
Ja zrobiłem sobie dźwięk do RasPi na WM8731. Działa, aczkolwiek układ
ten jest dosyć ubogi (np. mała liczba obsługiwanych częstotliwości
próbkowania).
W czymś to przeszkadza podczas normalnego użytkowania? Do projektu
radia/odtwarzacza ten układ się nada, czy istnieje szansa, że natknę się
na jakieś niedogodności?

Po prostu jeśli układ nie obsługuje danej częstotliwości, to konieczne jest
resamplowanie, co dodatkowo obciąża procesor i trochę pogarsza jakość
dźwięku.

Quote:
Na elektrodzie jest projekt wykorzystujący UDA1330, jednak nie widzę
tego układu w żadnym sklepie, a niezbyt komfortowo czuję się z pomysłem
psucia Sound Blastera Live. Smile WM8731 powinien być łatwiejszy do zdobycia.

Ja kupowałem w Farnellu.

Quote:
Co do GPIO, to u mnie leci od niego taśma, która łączy wszystkie sygnały
z tego złącza z drugą płytką ponieważ akurat wszelkie dodatkowe układy
są na jednej płytce.
Mogę zapytać jakie to układy? Może któryś z pomysłów również okaże się
przydatny u mnie. Wink

Nic szczególnego: wyświetlacz LCD 2x16 i klawiatura 2x6. Jedno i drugie
obsługiwane jest przez ATmega88PA. Mikrokontroler ten gada z RasPi po
serialu. Oczywiście można zrezygnować z mikrokontrolera i te peryferia
obsługiwać z GPIO RasPi, ale wolałem aby takimi niskopoziomowymi rzeczami
zajął się dedykowany układ.

Quote:
Z P1 do audio potrzebne jest oczywiście I2C jako interfejs sterujący
kodeka.
I2C nie jest przypadkiem dostępne na złączu P5?

Ogólnie może być, zależy jak skonfigurujesz piny tego portu. No ale jak
włączysz tam I2S (a przecież musisz skoro chcesz mieć audio po I2S), to już
siłą rzeczy na tych samych pinach nie będziesz mieć I2C. Dlatego I2C brane
jest z P1 (piny 3 i 5). Poczyta sobie
http://elinux.org/RPi_Low-level_peripherals#P5_header Oczywiście I2C i I2S
to dwie zupełnie różne rzeczy.

A co do USB: trzeba dobrze trafić. Próbowałem z tanią kartą z Allegro.
Wydobywało się z niej coś, czego nie dało się nazwać dźwiękiem. Na PC
działała poprawie, ale z RasPi już nie. Pamiętaj, że procesor RasPi (a
właściwie układ SoC) ma tylko jeden port USB. Do niego jest podłączony ten
drugi scalak, który widać na płytce. Ten scalak to 3-portowy hub USB. 2 z
tych portów są wyprowadzone na zewnątrz, a do trzeciego podłączony jest USB
Ethernet, który siedzi w tym samym scalaku. Tak więc de facto Ethernet i
karta dźwiękowa USB siedzą de facto na jednym porcie USB i mogą się zakłócać
przy przesyłaniu większych ilości danych. Dlatego ja sobie USB audio
odpuściłem i wybrałem I2S. Działa dobrze, tylko w pierwszej wersji płytki
źle poprowadziłem masę i było słychać zakłócenia z RasPi.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 1 day, 20 hours, 9 minutes and 34 seconds

Atlantis
Guest

Thu Jan 16, 2014 10:39 pm   



W dniu 2014-01-16 22:11, Grzegorz Niemirowski pisze:

Quote:
Po prostu jeśli układ nie obsługuje danej częstotliwości, to konieczne
jest resamplowanie, co dodatkowo obciąża procesor i trochę pogarsza
jakość dźwięku.

System sam sobie z tym wszystkim radzi, czy trzeba instalować/pisać
sterownik do tego układu? Mimo wszystko, nawet w przypadku resamplowania
efekt jest zauważalnie lepszy niż na wbudowanym wyjściu audio?


Quote:
Dlatego ja sobie USB audio odpuściłem i wybrałem I2S. Działa dobrze,
tylko w pierwszej wersji płytki źle poprowadziłem masę i było słychać
zakłócenia z RasPi.

Na czym polegał błąd? Czego powinienem unikać przy projektowaniu własnej
płytki?

Grzegorz Niemirowski
Guest

Thu Jan 16, 2014 11:09 pm   



Atlantis <marekw1986NOSPAM@wp.pl> napisał(a):
Quote:
System sam sobie z tym wszystkim radzi,

Tak dokładnie to nie wiem. Ja pisałem swoją aplikację w Qt i tam się nie
dawało otworzyć karty dźwiękowej przy niezgodnej częstotliwości, a więc
potrzebne było resamplowanie. Z drugiej strony linuksowe odtwarzacze (używam
Raspbiana) radziły sobie bez problemu. Więc albo same resamplowały albo
robiło to Pulse Audio jakoś w tle.

Quote:
czy trzeba instalować/pisać
sterownik do tego układu?

Sterowniki do kodeków są w jądrze Linuksa, ale one nie służą do takich
rzeczy. Ich zadaniem jest to, że jak sobie coś tak przestawiasz w
alsa-mixer, np. głośność, microphone boost, mute, wybór źródła nagrywania
(mikrofon, line-in) i inne takie duperele, to wtedy sterownik poprzez I2C
przekonfigurowuje kodek zapisując odpowiednie wartości w jego rejestrach.
Resamplowaniem zajmuje się pulse-audio albo alsa, trzeba by jakiegoś
linuksiarza podpytać.

Quote:
Mimo wszystko, nawet w przypadku resamplowania
efekt jest zauważalnie lepszy niż na wbudowanym wyjściu audio?

Oczywiście.

Quote:
Na czym polegał błąd? Czego powinienem unikać przy projektowaniu własnej
płytki?

WM8731 jak (chyba) większość kodeków ma część analogową i część cyfrową. One
mają oddzielne zasilania i oddzielne masy. Te masy powinny się łączyć w
jednym punkcie, który je wyraźnie oddziela. Jeśli masz np. mikrofon albo
sygnał wejścia liniowego, to podłączasz do masy analogowej.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 1 day, 21 hours, 1 minutes and 50 seconds

Mirek
Guest

Thu Jan 16, 2014 11:37 pm   



On 15.01.2014 22:30, Atlantis wrote:
Quote:
Na mojej liście projektów do zrealizowania znajduje się radio
internetowe/sieciowy odtwarzacz muzyczny oparty na Raspberry Pi.

Czemu akurat na tym? IMHO Ras-Pi ma sens jeśli używamy hdmi (BTW -
dźwięk po hdmi jakie ma parametry? ).

--
Mirek.

Atlantis
Guest

Fri Jan 17, 2014 7:20 pm   



W dniu 2014-01-16 23:37, Mirek pisze:

Quote:
Czemu akurat na tym?

Głównie dlatego, że RPi jest tanie i stosunkowo łatwo dostępne.
Przede wszystkim jednak ma dobre wsparcie, istnieją już gotowe
rozwiązania (Raspyfi, Pi MusicBox) w postaci zmodyfikowanych i
prekonfigurowanych dystrybucji Linuksa. Jakiś czas temu próbowałem
poskładać wszystko samemu. Straciłem tylko mnóstwo czasu próbując
uruchomić jakiegoś przyjemnie wyglądającego webowego klienta MPC na
lighttpd. Efekt był średnio zadowalający, nie wszystko chciało działać
jak powinno. Po co męczyć się nad zrobieniem tego na innej płytce, skoro
ktoś już wykonał tę pracę?


Quote:
IMHO Ras-Pi ma sens jeśli używamy hdmi (BTW -
dźwięk po hdmi jakie ma parametry? ).

Tylko po co? Chodzi mi tylko o pozbycie się artefaktów, które występują
na standardowym wyjściu audio. DAC na I2S powinien w zupełności wystarczyć.

Atlantis
Guest

Fri Jan 17, 2014 7:24 pm   



W dniu 2014-01-16 23:09, Grzegorz Niemirowski pisze:

Quote:
Tak dokładnie to nie wiem. Ja pisałem swoją aplikację w Qt i tam się nie
dawało otworzyć karty dźwiękowej przy niezgodnej częstotliwości, a więc
potrzebne było resamplowanie. Z drugiej strony linuksowe odtwarzacze
(używam Raspbiana) radziły sobie bez problemu. Więc albo same
resamplowały albo robiło to Pulse Audio jakoś w tle.

A na czym w takim razie polega konfiguracja systemu po podłączeniu DAC?
Bo przecież jakoś trzeba powiedzieć systemowi, że ma scalaka podpiętego
do określonych pinów i może za jego pomocą odtwarzać dźwięk...


Quote:
WM8731 jak (chyba) większość kodeków ma część analogową i część cyfrową.
One mają oddzielne zasilania i oddzielne masy. Te masy powinny się
łączyć w jednym punkcie, który je wyraźnie oddziela. Jeśli masz np.
mikrofon albo sygnał wejścia liniowego, to podłączasz do masy analogowej.

Osobna masa analogowa jest dla mnie oczywistą kwestią. Myślałem, że mowa
o jakimś mniej typowym, ukrytym i trudnym do zdiagnozowania problemie.
Rozumiem, że jeśli rozdzielę masy, to nie powinienem mieć problemów z
zakłóceniami?

Mirek
Guest

Fri Jan 17, 2014 8:39 pm   



On 17.01.2014 19:20, Atlantis wrote:

Quote:
Po co męczyć się nad zrobieniem tego na innej płytce, skoro
ktoś już wykonał tę pracę?

A na innej nie wykonał? http://eko.one.pl/?p=openwrt-audio


Quote:
IMHO Ras-Pi ma sens jeśli używamy hdmi (BTW -
dźwięk po hdmi jakie ma parametry? ).

Tylko po co?

Żeby mieć obraz. Jaśniej: Ras-Pi ma sens jeśli potrzebujemy obrazu po
hdmi... albo wykorzystamy złącze do LCD (podobno z tym ciężko).
Ale oczywiście każdy robi przede wszystkim na tym, co ma.

--
Mirek.

Atlantis
Guest

Fri Jan 17, 2014 8:58 pm   



W dniu 2014-01-17 20:39, Mirek pisze:

Quote:
A na innej nie wykonał? http://eko.one.pl/?p=openwrt-audio

Sam myślałem nad wykorzystaniem OpenWRT w podobnym projekcie. Jednak to
było dawno temu, gdy dopiero zbierano zapisy na pierwszą serię RPi, a
pojedynczy nabywca mógł kupić jedną płytkę. Wink
Teraz to jednak nie za bardzo ma sens. Robienie projektu na routerze
zawsze będzie rzeźbieniem i kombinowanie. Bo pamięci za mało. Bo flasha
za mało i trzeba kombinować z jakimś zewnętrznym nośnikiem. Nie wspomnę
już o tym, że RPi jest nieporównywalnie mniejsze, dzięki czemu łatwiej
wszystko upchnąć w kompaktowej obudowie.


Quote:
Żeby mieć obraz. Jaśniej: Ras-Pi ma sens jeśli potrzebujemy obrazu po
hdmi... albo wykorzystamy złącze do LCD (podobno z tym ciężko).
Ale oczywiście każdy robi przede wszystkim na tym, co ma.

Tylko po co komu obraz w radiu? Wink
To, że RasPi potrafi generować wideo nie znaczy wcale, że muszę
korzystać z tej możliwości. Mój egzemplarz podłączyłem do telewizora
może ze dwa razy. Za pierwszym razem w celu przeprowadzenia ogólnej
konfiguracji. Za drugim, gdy przez pomyłkę zablokowałem sobie dostęp
przez ssh. Wink

Grzegorz Niemirowski
Guest

Sat Jan 18, 2014 2:24 am   



Atlantis <marekw1986NOSPAM@wp.pl> napisał(a):
Quote:
A na czym w takim razie polega konfiguracja systemu po podłączeniu DAC?
Bo przecież jakoś trzeba powiedzieć systemowi, że ma scalaka podpiętego
do określonych pinów i może za jego pomocą odtwarzać dźwięk...

Masz rację. Trzeba mu powiedzieć, żeby załadował odpowiednie moduły:
sterownika kodeka, sterownika tworzącego kartę dźwiękową w systemie,
sterownika I2C, sterownika I2S, sterownika DMA. W przypadku Raspbiana
wygląda to tak, że:
1. w pliku /etc/modprobe.d/raspi-blacklist.conf kasujemy linijkę
blacklist i2c-bcm2708
2. w pliku /etc/modules dodajemy linijki:
snd_soc_bcm2708
snd_soc_bcm2708_i2s
bcm2708_dmaengine
3. w tym samym pliku dopisujemy sterowniki od naszej karty dźwiękowej, dla
WM8731 będą to:
snd_soc_wm8731 (sterownik kodeka)
snd_soc_rpi_proto (sterownik karty dźwiękowej opartej o ten kodek)
I to tyle w kwestii konfiguracji systemu, trzeba jeszcze powiedzieć
odtwarzaczowi z której karty ma korzystać, np.
mplayer -ao alsa:device=hw=1,0 plik.mp3
Listę kart można wyświetlić poleceniem:
aplay -l
No i konfiguruje się kartę programem alsamixer.

Quote:
Osobna masa analogowa jest dla mnie oczywistą kwestią. Myślałem, że mowa
o jakimś mniej typowym, ukrytym i trudnym do zdiagnozowania problemie.
Rozumiem, że jeśli rozdzielę masy, to nie powinienem mieć problemów z
zakłóceniami?

Generalnie nie powinieneś, ale wiadomo, zakłócenia bywają złośliwe.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 3 days, 0 hours, 27 minutes and 38 seconds

badworm
Guest

Wed Jan 22, 2014 10:16 pm   



Dnia Sat, 18 Jan 2014 02:24:40 +0100, Grzegorz Niemirowski napisał(a):

Quote:
Masz rację. Trzeba mu powiedzieć, żeby załadował odpowiednie moduły:
sterownika kodeka, sterownika tworzącego kartę dźwiękową w systemie,
sterownika I2C, sterownika I2S, sterownika DMA.

A da się to wszystko pokonfigurować tak, by I2S pracowało w jakimś
uniwersalnym standardzie? Chciałbym by wyjście tej magistrali z
Raspberry funkcjowało jak I2S dostępne w niektórych odtwarzaczach CD
wyższej klasy. One przecież nie muszą chyba wiedzieć, z jakim
przetwornikiem C/A będą współpracować.
--
Pozdrawiam Bad Worm badworm[maupa]post{kropek}pl
GG#2400455 ICQ#320399066

Grzegorz Niemirowski
Guest

Fri Jan 24, 2014 1:43 am   



badworm <nospam@post.pl> napisał(a):
Quote:
A da się to wszystko pokonfigurować tak, by I2S pracowało w jakimś
uniwersalnym standardzie? Chciałbym by wyjście tej magistrali z
Raspberry funkcjowało jak I2S dostępne w niektórych odtwarzaczach CD
wyższej klasy. One przecież nie muszą chyba wiedzieć, z jakim
przetwornikiem C/A będą współpracować.

No właśnie pracuje w uniwersalnym, czyli I2S. Chyba nie doczytałeś po co
jest ten sterownik. Sterownik jest do konfigurowania kodeka po I2C a nie do
konfigurowania I2S. Interfejs I2S w RasPi przecież też nie wie z jakim
kodekiem gada.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 8 days, 23 hours, 53 minutes and 46 seconds

Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Podłączenie DAC do Raspberry Pi dla radia internetowego - jakie opcje w Polsce?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map