logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Dekoder sygnału HDMI ze zwykłego splitera

satanistik 15 Mar 2015 09:09 6228 4
REKLAMA
  • Dekoder sygnału HDMI ze zwykłego splitera

    Autor projektu budując system "Ambilight" do swojego zestawu wideo napotkał problem kodowania sygnału HDMI, kodowanie to uniemożliwiało pozyskanie z sygnału informacji o kolorach wybranych obszarów i system działał jedynie na niektórych sygnałach. Jedyną drogą do rozwiązania tego problemu wydawał się zakup licencji do kodowania HDCP, która uprawnia do zakupu układu ADV7611 z wbudowanymi odpowiednimi kluczami. Niestety nie jest to tanie i przekracza budżetowe ramy tego projektu.

    Na szczęście w komentarzach pod artykułem na Hackaday.com, wiele osób sugerowało rozwiązanie polegające na wyłączeniu szyfrowania sygnału wyjściowego w tanich rozdzielaczach HDMI. Metoda działa na urządzeniach opartych o układ firmy Explore Semiconductor, taki jak EP9132. W układzie występuje jeszcze mikro kontroler komunikujący się z EP9132 przez magistralę I2C. Przeróbka miała by polegać na zablokowaniu pracy tego mikro-kontrolera po przez wymuszenie resetu, trybu bootloadera lub odcięcie go od magistrali I2C.

    Sposób wprawdzie działa ale nie jest tak różowo jak się wydaje - wraz z kodowaniem znikają też wszystkie dodatkowe funkcje, takie jak zdalne włączanie, przełączanie wejść czy sterowanie głośnością odtwarzacza z poziomu TV.

    Po analizie noty katalogowej układu autor natrafił na ciekawy bit 0 pod adresem 0x0F TX_ENC_ON dla którego 1 - włącza kodowanie strumienia wyjściowego/0 - wyłącza. Powstał więc pomysł aby monitorować monitorowania transmisji i w momencie zapisu do tego rejestru, wymuszenia stanu 0 na odpowiednim bicie. Wybór padł na mikro-kontroler attiny9 który pomimo posiadania tylko 3 pinów I/O powinien wystarczyć.

    Po uruchomieniu, okazało się że przeróbka nie działa, próba zmiany stanu bitu przez układ powodowała wykrycie przez transmitujący uC kolizji.(przypomnijmy mechanizm arbitrażu w transmisji I2C zakłada ze ten z uC pracujących jako master, przejmuje kontrolę, który pierwszy wystawi 0 w miejscu gdzie 2 podaje 1 - magistrala jest podciągana do +, układy mają wyjścia OC (OD).)

    Po nieudanej próbie autor powrócił do noty aplikacyjnej gdzie znalazł kolejny ciekawy bit - bit4 w rejestrze 0x07 RX_ENC_ON 1 - sygnał odbierany jest kodowany/0 - nie jest. Nasłuch magistrali pod kątem dostępu do tego rejestru pokazał że uC bardzo często sprawdza jego stan, wystarczyło więc zmodyfikować wartość tego bitu - podczas odczytu układ slave nie wykrywa kolizji (magistrala I2C nie dopuszcza pracy wielu układów slave z tym samym adresem),po takim zabiegu mikro-kontroler nie wykryje szyfrowanej transmisji.

    Po wprowadzeniu zmian układ zadziałał - kodowania nie było a wszystkie utracone funkcje powróciły. Problemem okazał się tylko program który na kontrolerze z 8Mhz zegarem nie wyrabiał się i pojawiały się spóźnione maskowania. Problem polegał na tym że zmiana sygnału z niskiego na wysoki w czasie gdy poziom sygnału zegarowego był wysoki była interpretowana jako sygnał START na magistrali I2C. Wymagało to drobnych poprawek jednak ostatecznie udało się to rozwiązać dodatkowym warunkiem badającym stan linii clk.

    Na stronie autora można znaleźć listę spliterów które są podatne na takie przeróbki oraz doczytać więcej szczegółów. Dostępny jest również wsad do kontrolera attiny9. (Należy tu pamiętać że nie jest on obsługiwany przez proste programatory SPI).

    ŹródłoLink

    Fajne? Ranking DIY
    O autorze
    satanistik
    Poziom 27  
    Offline 
    Specjalizuje się w: realizacja nietypowych projektów z dziedziny elekt
    satanistik napisał 1906 postów o ocenie 712, pomógł 61 razy. Mieszka w mieście Lublin. Jest z nami od 2005 roku.
  • REKLAMA
  • REKLAMA
  • #3 14531311
    satanistik
    Poziom 27  
    Może i tak ale jakoś ten edytor elektrody kiepsko działa - tab trzeba robić ze spacji a entery dawałem ale poznikały. Htmla miałem w gimnazjum ale zapomniałem niestety ;-). Próbowałem dać spacje ale nie działa.
  • REKLAMA
  • #4 14535251
    CMS
    Administrator HydePark
    Piękny przypadek "prostej" i skutecznej inżynierii wstecznej. Mała rzecz, a cieszy, już w połowie artykułu wiedziałem gdzie, a właściwie u kogo, zastosować taki "trick", żeby tuner zobaczył projektor podłączony przez konwerter HDMI -> VGA.

    Pozdrawiam.
    CMS
  • #5 14595730
    damdam

    Poziom 34  
    satanistik napisał:
    (przypomnijmy mechanizm abordażu w transmisji I2C zakłada ze ten z uC pracujących jako master, przejmuje kontrolę, który pierwszy wystawi 0 w miejscu gdzie 2 podaje 1 - magistrala jest podciągana do +, układy mają wyjścia OC (OD).)


    Abordażu ? :) Myślę że koledze chodziło o Arbitraż.
REKLAMA