Audiohobby.pl

i2s po HDMI?

Sim1

  • 1829 / 6068
  • Ekspert
16-12-2014, 23:04
Mam pytanie do znawców cyfrowych formatów i przesyłu danych ;)
Czy w takim DACu
http://www.aliexpress.com/item/Premium-TEMPOTEC-Fantasia-DA-AK4399-D-A-Converter-DAC-W-Headphone-Amplifier-XLR-Output-I2S-USB/2025085633.html
i2s przesyłane przez gniazdo HDMI to taki sam sygnał jaki normalnie jest wysyłany z urządzeń RTV/AGD/PC/raspberry czy jest to tylko wykorzystanie ogólnie dostępnego gniazda i ogólnie dostępnych kabli lecz transmisja jest niekompatybilna kompletnie z cyfrowym audio normalnie wysyłanym przez hdmi.

Innymi słowy czy jak zapnę do niego raspberry pi z dystrybucją picoreplayer i wybiorę hdmi jako wyjście cyfrowe to się oba urządzenia mają szanse dogadać?

Tylko nie mówcie mi, że powinienem zapytać wróża Macieja  :)...
« Ostatnia zmiana: 17-12-2014, 00:03 wysłana przez Sim1 »

Kraft

  • 448 / 6066
  • Zaawansowany użytkownik
17-12-2014, 09:35
W tym DAC-u wygląda to na zwykłe złącze HDMI więc powinno się dogadać. Lepiej jednak spytać producenta, bo przykładowo PS Audio opracowało własny standard przesyłu sygnału I2S przez HDMI i działają tylko niektóre, kompatybilne źródła. HDMI użyto tylko ze względu na wysoką przepływność danych. Tu może być podobnie więc lepiej nie ryzykować...
« Ostatnia zmiana: 17-12-2014, 09:48 wysłana przez Kraft »

SlawekR

  • 173 / 4835
  • Aktywny użytkownik
17-12-2014, 09:56
Złącze wygląda na zwykłe, aczkolwiek może nie mieć nic wspólnego z typowymi protokołami transmisji cyfrowej po HDMI, podobnie jak po złączu RJ45 często są przesyłane absolutnie dowolne sygnały, nie mające nic wspólnego z protokołami sieciowymi. Równie dobrze można wtedy wykorzystać dowolny typ gniazd wtyków, na przykład D-Sub. Wtedy urządzenie nadawcze i odbiorcze oczywiście muszą umieć się dogadać po tym samym interfejsie. Ale sama transmisja nie jest nijak uniwersalna. Na co wskazywałaby też i cena urządzenia. To by było za dużo szczęścia na raz, gdyby ktoś tam zwracał uwagę na standaryzację sygnałów. Trzeba więc raczej uważać.

Generalnie I2S nie jest protokołem transmisyjnym przeznaczonym do transmisji pomiędzy urządzeniami, a raczej pomiędzy dwoma układami scalonymi w obrębie jednej obudowy na małe odległości. Więc trudno mówić o standaryzacji, w przypadku połączeń między różnymi fizycznymi pudełkami. Co oczywiście nie znaczy, że różne firmy nie próbują takowych transmisji w obrębie własnych rozwiązań, korzystając przy okazji z różnych typowych, dostępnych na rynku, złącz.

Cypis

  • 2479 / 5243
  • Ekspert
17-12-2014, 10:20
Jesli jest napisane I2S, to należy domniemywać, że chodzi o standard Philipsa: https://sparkfun.com/datasheets/BreakoutBoards/I2SBUS.pdf. A tam jest określony zarówno standard elektryczny jak i protokół transmisji (sposób wymiany danych). Niestety nie jest określone co ma być tym protokołem wysyłane. Trzeba być ostrożnym w domniemywaniu.
« Ostatnia zmiana: 17-12-2014, 10:22 wysłana przez Cypis »
Pzdr, Tomek
d(-_-)b

SlawekR

  • 173 / 4835
  • Aktywny użytkownik
17-12-2014, 10:34
To nie jest kwestia standardu, bo ten jest ustalony i znany od lat. Problemem jest sposób przesłania sygnałów, które z założenia nie były przeznaczone do transmisji na większe odległości pomiędzy urządzeniami. Dlatego jest z tym problem. Standard nie przewiduje żadnych mechanizmów, zaszytych w samym protokole,  przeciwdziałających choćby rozjazdowi fazy (opóźnień czasowych) pomiędzy przesyłanymi równolegle sygnałami. A na co ten protokół jest ekstremalnie wrażliwy. Inżynierowie z ESSa wręcz twierdzą, że cały zysk z pominięcia innych form transmisji, zostanie zaprzepaszczony, gdy sygnał  I2S będzie przesłany na odległość przekraczająca 7 cm.

Na tę okoliczność wymyślono inne protokoły transmisyjne, Spdif, na ten przykład splatał te sygnały równoległe w jeden szeregowy  po stronie nadajnika i rozplatał po stronie odbiornika. Co gwarantowało że faza na wejściu będzie identyczna na wyjściu. Oczywiście problemem jest ograniczenie przepustowości transmisji spdif, która z kolei nie przywidywała transmisji informacji wysokiej częstotliwości, na przykład DSD. Dlatego na siłę przesyła się te sygnały po I2S, ale tu mamy problemy opisane wcześniej. Ot masło maślane wychodzi.

Dlatego stosuje się rozwiązanie pośrednie, transmisję po USB, gdzie protokół, ma w sobie mechanizmy umożliwiające transmisję na większe odległości. A sam sygnał I2S powstaje po konwersji z USB już bardzo blisko kostki która sygnał I2S przyjmuje. Co zapewnia skrócenie do minimum wrażliwej na odległości, transmisji I2S. Wtedy źródło niejako jest zaimplementowane w samym przetworniku. Co jest rozwiązaniem najlepszym w ramach obecnie dostępnych standardów.

Jeśli ktoś wymyśli inny cwany protokół transmisyjny, zdolny przesyłać dane cyfrowe o dużej przepływności, na większe odległości, przy zachowaniu parametrów fazowych, to być może zastąpią one transmisję USB przy przesyłaniu sygnałów DSD/I2S i podobnych. Ale póki co takowych nie ma. Więc stosuje się rozwiązania opisane wyżej. Albo transmisję USB z konwersja po stronie odbiornika do standardu I2S. Albo próby przesyłania samego sygnału I2S z nadajnika, biedząc się  przy tym, żeby faza rozjechała się jak najmniej.
« Ostatnia zmiana: 17-12-2014, 10:43 wysłana przez SlawekR »

Sim1

  • 1829 / 6068
  • Ekspert
17-12-2014, 11:18
Wysłałem pytanie i czekam na odpowiedź.
Jednak na podstawie tego co napisaliście i opisu standardów HDMI wygląda, że to czego oczekuje gniazdo HDMI w tym urządzeniu nie ma nic wspólnego z tym co standardowe urządzenia wyposażone w HDMI wysyłają.
Jak się domyślam, używane gdzie indziej gniazdo RJ45 zostało tutaj zastąpione przez HDMI tylko i wyłącznie po to by można było czuć dumę, że się wykorzystało jakiś piękny i drogi kabel hdmi zamiast taniej parszywej skrętki ;).

Parafrazując samego siebie - innymi słowy raspberry się nie dogada po zapięciu go kablem hdmi... choć jeszcze czekam na ostateczne potwierdzenie.

SlawekR

  • 173 / 4835
  • Aktywny użytkownik
17-12-2014, 12:07
...
Jak się domyślam, używane gdzie indziej gniazdo RJ45 zostało tutaj zastąpione przez HDMI tylko i wyłącznie po to by można było czuć dumę, że się wykorzystało jakiś piękny i drogi kabel hdmi zamiast taniej parszywej skrętki ;).
...

To nawet nie tyle chodzi o marketingowe  poczucie dumy. Myślę, że zastosowanie gniazda HDMI ma bardziej przyziemną przyczynę. To gniazdo w wersji lutowanej prosto na płytę, jest po prostu obecnie najtańszą opcją montażową, zapewniającą gniazdo-wtyk o wielu równoległych liniach sygnałowych, 21 bodajże. Do tego sama konstrukcja kabla nie ogranicza zbytnio maksymalnego dopuszczalnego pasma transmisji. Tym samym idealnie nadaje się do przesłania elektrycznie równoległej transmisji o parametrach zbliżonych do I2S. Wcześniej stosowane RJ45 jako najbardziej zbliżony elektrycznie standard gniazd i wtyków. Ale popularność gniazd HDMi w wersji montażowej zbliżonej do SMD, powoduje że są po prostu tańsze. A Chińczyk to sprytny ludź :D.

Nie znam co prawda Raspberry, ale jeśli ma typowe wyjście HDMi, to nie przywiązywałbym się do pomysłu połączenia go z przetwornikiem  w celu transmisji I2S, bo raczej marna szansa żeby do zadziałało w ten sposób.
Co prawda wbudowane karty muzyczne, które mają wyprowadzone sygnały cyfrowe na wyjścia HDMI, potrafią przesyłać w trybie RAW sygnały PCM, ale do transmisji równoległej po prostokole I2S raczej jeszcze od tego daleka droga. Potrzebne by były dodatkowe kodery-dekodery po stronie nadajnika i odbiornika.

Aczkolwiek coś mi się kołacze po głowie, że z Raspberry da się wysłać I2S, ale chyba niekoniecznie odbywa się to po HDMI. W każdym razie jeśli jedno urządzenie potrafi taki sygnał wysłać, a drugie odebrać, to może jakoś dałoby się je pożenić.
« Ostatnia zmiana: 17-12-2014, 12:22 wysłana przez SlawekR »

PJotr

  • 15 / 5917
  • Nowy użytkownik
17-12-2014, 12:31

Sim1

  • 1829 / 6068
  • Ekspert
17-12-2014, 15:03
Z Raspberry da się wysłać I2S:
https://hifiduino.wordpress.com/2014/11/13/raspberry-pi-b-digital-audio/
Trochę to hardcorowe ale jedno do mnie dotarło - gołe raspi czy przez hdmi czy przez gpio nie zagada w zasadzie z żadnym dacem i2s "niededykowanym"... bo wymagany jest zegar (master clock) którego w uproszczeniu rzecz ujmując nie ma a jak się domyślam w dedykowanych kartach/dacach jest.

Tak więc i2s czy przez hdmi czy przez RJ45 sprawa jest na 100% bardziej skomplikowana niż tylko plug'n'play.

PJotr

  • 15 / 5917
  • Nowy użytkownik
17-12-2014, 15:25
Trochę to hardcorowe ale jedno do mnie dotarło - gołe raspi czy przez hdmi czy przez gpio nie zagada w zasadzie z żadnym dacem i2s "niededykowanym"... bo wymagany jest zegar (master clock) którego w uproszczeniu rzecz ujmując nie ma a jak się domyślam w dedykowanych kartach/dacach jest.

Tak więc i2s czy przez hdmi czy przez RJ45 sprawa jest na 100% bardziej skomplikowana niż tylko plug'n'play.

Tylko, że takich daców którym wystarczają sygnały (BITCLOCK, LRCLOCK, DATA) jest trochę.
Zaczynając od dedykowanych kart do Raspberry http://www.hifiberry.com/dacplus/

poprzez http://www.minidsp.com/products/minidspkits/curryman-i2s-dac

czy poprostu jakiś na ES9018.

A w tym temacie poczytaj jeszcze co będzie za chwilę do BeagleBone Black:
http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance.html

Sim1

  • 1829 / 6068
  • Ekspert
18-12-2014, 10:02
Właśnie dostałem odpowiedź potwierdzającą, że hdmi w tym DACu nie jest kompatybilne z normalnymi urządzeniami posiadającymi wyjście hdmi.

domzz

  • 1113 / 6021
  • Ekspert
19-12-2014, 12:54
To może Cię zainteresować Gustard U12
http://www.head-fi.org/t/736294/gustard-u12-usb-interface-8-core-xmos-chip

Ponoć killer i kosztuje $149 z przesyłk na Ebayu.

Sim1

  • 1829 / 6068
  • Ekspert
19-12-2014, 22:58
Ten Gustard U12 to pewnie bardzo ciekawa opcja np. dla Squeezeboxa Touch :).
Do raspberry jednak szukam czegoś nie na USB bo to pięta achillesowa raspi, ponoć b. słabo zaimplementowana obsługa.
Wszędzie opisywane są problemy z trzasakmi i pykaniem dźwięku wypuszczanego przez rozwiązania oparte o usb.
Sprawdzałem sam bo mam fajnego CECa DA53 z usb.
Czyli zostaje i2s. Mam kartę wolfsona ale cały czas kombinuję jakby tu.... ;)

PJotr

  • 15 / 5917
  • Nowy użytkownik
20-12-2014, 15:36
A może kupić takiego:
http://www.diyinhk.com/shop/audio-kits/60-usb-dsd-dxd-384khz-dac-with-bit-perfect-volume-control-and-spdif-inputxmoses9018k2m.html
Zapakować to do jednej obudowy z raspi i zasilaniem. Tutaj konfiguracja na volumio:
http://volumio.org/forum/es9018k2m-based-streaming-solution-t2087.html
i słuchać :)

Dodatkowo jest gotowy kod do Arduino do pełnej kontroli es9018k2m
https://hifiduino.wordpress.com/code/
« Ostatnia zmiana: 20-12-2014, 15:41 wysłana przez PJotr »

Sim1

  • 1829 / 6068
  • Ekspert
21-12-2014, 13:55
Pjotr(ze) :) dzięki za ciekawe informacje.
Na razie mam zamiar wpakować swoje raspi+wolfson w małą aluminiową obudowę wzmacniacza słuchawkowego, która do mnie przyszła 2 dni temu. Wolfson wyśmienicie spisuje się z wyjściem po spdif ale potrafi równocześnie wypuszczać dźwięk z 4 wyjść (spdif, lineout, słuchawkowe i przez wbudowany wzmacniaczyk w klasie D na głośniki).
Po nowym roku będę eksperymentował z drugim raspi (też model B) i rozwiązaniami które podesłałeś.