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

Adapter HDMI -> MIPI DSI (wyświetlacze ze smartphone'ów)

TWl 15 Paź 2014 19:20 55557 59
  • Adapter HDMI -> MIPI DSI (wyświetlacze ze smartphone'ów)
    Chciałbym przedstawić projekt sterownika do wyświetlaczy LCD/OLED z interfejsem DSI na bazie FPGA Spartan-6 XC6SLX9.

    MIPI DSI to szybki szeregowy interfejs do przesyłania obrazu z GPU do wyświetlacza stosowany w większości smartfonów (Iphone4,5,6, Samsung Galaxy, etc.).

    Możliwości sterownika:
    - obsługa wyświetlaczy z 3/4-liniowym interfejsem DSI
    - rozdzielczość do 1080x1920 przy odświeżaniu 60 Hz
    - konwersja HDMI do DSI, pozwalająca na podłączenie dowolnego wyświetlacza do PC, Raspberry Pi lub innego urządzenia. Konwersja działa do rozdzielczości 720p@60 Hz lub 1080p@48 Hz
    - wbudowany framebufor
    - zasilanie przez port mini-USB
    - wbudowany 32-bitowy soft-CPU, pozwalający uruchamiać dowolne aplikacje napisane w C

    Przykładowe zastosowania:
    - okulary 3D
    - mini-projektor
    - 5-calowy "ekranik" 1920x1080
    - karta graficzna dla mikrokontrolera bez sterownika LCD.

    Urządzenie mieści się na 4-warstwowej płytce w formacie shielda Arduino. Oprócz FPGA, na płytce można znaleźć:
    - adapter poziomów logiki SSTL 1.8 V do DSI (rezystory)
    - uniwersalne złącze wyświetlacza - zwykły pinhead 2x15, ze wszystkimi sygnałami DSI, zasilaniem i kilkoma pinami GPIO. Ponieważ nie istnieje uniwersalny standard złącz do takich LCD, trzeba zrobić oddzielną przejściówkę między złączem adaptera i tasiemką wyświetlacza.
    - 32 MB DDR SDRAM (pamięć framebufora, opcjonalna)
    - wejście HDMI, wykorzystujące wbudowane deserializery FPGA (IOSERDES)
    - interfejs Arduino: 12 pinów podłączonych do złącz IOH/IOL Arduino. Interfejs jeszcze nie jest do końca zdefiniowany (myślę o SPI/8-bitowym równoległym).
    - UART USB (CP2102) do programowania FPGA i jako bootloader.
    - zasilacz (produkuje wszystkie napięcia dla FPGA, wyświetlacza, DDR, podświetlenia i biasu LCD - w sumie z 7 różnych)

    Diwajs przetestowałem z ekranami z Iphone 4, LG Optimus P880 i HTC Droid DNA.

    Bardziej szczegółowy opis jest dostępny tutaj.

    Źródła firmware'u, schematy i projekt PCB są na Githubie: Github.

    Zdjęcia:
    Adapter HDMI -> MIPI DSI (wyświetlacze ze smartphone'ów) Adapter HDMI -> MIPI DSI (wyświetlacze ze smartphone'ów) Adapter HDMI -> MIPI DSI (wyświetlacze ze smartphone'ów) Adapter HDMI -> MIPI DSI (wyświetlacze ze smartphone'ów) Adapter HDMI -> MIPI DSI (wyświetlacze ze smartphone'ów)

    Pozdrawiam,
    TWl

    Fajne? Ranking DIY
    O autorze
    TWl
    Poziom 21  
    Offline 
    TWl napisał 337 postów o ocenie 133, pomógł 42 razy. Mieszka w mieście Warszawa. Jest z nami od 2006 roku.
  • #2 14044641
    piotrva
    VIP Zasłużony dla elektroda
    Posty: 6409
    Pomógł: 625
    Ocena: 735
    Świetny projekt, szczęka mi opadła ;)
    Za przetwarzanie odpowiedzialny jest program działający na SOFT CPU, czy jest to wszystko robione czysto sprzętowo?

    Z jaką częstotliwością pracuje CPU i jak taktujesz dekodery HDMI?
  • #3 14045180
    TWl
    Poziom 21  
    Posty: 337
    Pomógł: 42
    Ocena: 133
    piotrva napisał:
    Świetny projekt, szczęka mi opadła ;)

    Dzięki, miło mi :)
    Cytat:

    Za przetwarzanie odpowiedzialny jest program działający na SOFT CPU, czy jest to wszystko robione czysto sprzętowo?

    CPU odpowiada za inicjalizację wyświetlacza i obsługę framebufora. Przetwarzanie obrazu jest w sprzęcie.


    Cytat:
    Z jaką częstotliwością pracuje CPU i jak taktujesz dekodery HDMI?

    Zależy od typu LCD. W najszybszym przypadku (1080p@48Hz) CPU na 96.875 MHz, PHY DSI na 650 MHz (= 2.6GBit/s) a HDMI na 866.6 MHz. Zegar do deserializera generowany przez wewnętrzny PLL z zegara z wejścia HDMI (x 10).
  • #4 14045248
    leon007
    Poziom 14  
    Posty: 104
    Pomógł: 1
    Ocena: 394
    Na początku sam moderator nie wierzył, że tak wspaniały projekt zawitał w DIY :D ...
    Pewnie liczył na kolejny gniot z dykty i kitu...

    Autorowi gratuluję! Projekt naprawdę zawiesił poprzeczkę DIY elektrody bardzo wysoko.
    Czy dokumentacje sterowanych wyświetlaczy są dostępne? W jaki sposób pisałeś soft? Bazowałeś na dokumentacji czy 'reverse engineering' istniejących urządzeń?
    Super sprzęt dla filmowców potrzebujących wysokiej jakości podglądu wideo.
  • #5 14045321
    piotrva
    VIP Zasłużony dla elektroda
    Posty: 6409
    Pomógł: 625
    Ocena: 735
    W sumie jeszcze jedno pytanie - jak bardzo krytyczne było prowadzenie ścieżek HDMI z punktu widzenia takich częstotliwości?

    W sumie sam mam w planach zabrać się za dekodowanie HDMI i zrobienie coś na kształt Ambilight...
  • #6 14045331
    TWl
    Poziom 21  
    Posty: 337
    Pomógł: 42
    Ocena: 133
    piotrva napisał:
    W sumie jeszcze jedno pytanie - jak bardzo krytyczne było prowadzenie ścieżek HDMI z punktu widzenia takich częstotliwości?

    Niezbyt krytyczne. W tanich płytkarniach z Chin i tak nie ma możliwości dokładnej kontroli stackupu/impedancji. Wymiary par różnicowych policzyłem dla typowego stackupu 4-wartwowego na FR4. Poza tym - powtarzając za moim dawnym wykładowcą techniki w.cz. - sygnały o częstotliwości < 1 GHz można traktować jak prąd stały (no, prawie stały... ;) )

    Cytat:

    W sumie sam mam w planach zabrać się za dekodowanie HDMI i zrobienie coś na kształt Ambilight...

    Xilinx udostępnia gotowy core do HDMI, bardzo łatwy w obsłudze.

    Dodano po 4 [minuty]:

    leon007 napisał:

    Czy dokumentacje sterowanych wyświetlaczy są dostępne?

    Do Iphone 4/5 i HTC są datasheety. W razie braku DS polecam schematy serwisowe telefonów. Wszystkie wyświetlacze MIPI DSI mają taki sam protokół, różnią się tylko złączem i zasilaniem.
    leon007 napisał:

    W jaki sposób pisałeś soft? Bazowałeś na dokumentacji czy 'reverse engineering' istniejących urządzeń?

    Specyfikacj MIPI jest zamknięta. Korzystałem z not aplikacyjnych, datasheetów, źródeł sterowników dla Androida, prezentacji/artykułów dostępnych w necie.
  • #7 14045408
    sundayman
    Poziom 26  
    Posty: 1629
    Pomógł: 11
    Ocena: 403
    Ha ! dla takiego DIY warto przeczekać te kolejne zasilacze :)
    Projekt świetny, co już koledzy napisali, ja mam natomiast pytanie (zanim jeszcze się zagłębię w udostępnione materiały);

    Czy (tak w 2 słowach) - ten protokół (MIPI) dałoby się wykorzystać z "mniejszymi" MCU w rodzaju 8 bitowych Atmeli AVR ?
  • #10 14045618
    el_koral
    Poziom 11  
    Posty: 13
    Ocena: 37
    Projekt po prostu pierwsza klasa. Jaki jest orientacyjny koszt budowy urządzenia?
  • #11 14045683
    domints
    Poziom 13  
    Posty: 56
    Pomógł: 5
    Ocena: 8
    Bardzo fajny projekt :D
    Mam tylko pytanie, czy dałoby się zaimplementować ten DSI na czymś wolniejszym jak ATmega albo Xmega?
    Oczywiście nie mówię o "olbrzymich" wyświetlaczach jak wspomniany wcześniej 1080p, ale coś prostszego i tańszego - np. iPhone 3GS - 320p.
    Ewentualnie czy dałoby się zrobić z tego przejściówkę AVR -> wyświetlacz z własnym VRAM itd. obsługiwaną np. przez SPI?
    Pytam, bo nie znam się w sumie na FPGA, wiem tylko, że potrafią być diabelnie szybkie :)
  • #12 14045766
    TWl
    Poziom 21  
    Posty: 337
    Pomógł: 42
    Ocena: 133
    Cytat:

    Czy (tak w 2 słowach) - ten protokół (MIPI) dałoby się wykorzystać z "mniejszymi" MCU w rodzaju 8 bitowych Atmeli AVR ?

    Moim zdaniem - nie, choć może znajdą się jacyś magicy (jak np. gość od USB na AVR) i to zrobią...

    Dodano po 1 [minuty]:

    mattsk napisał:
    Witam, z opisu scalaka do obsługi sprzętowej konwersji HDMI -> RGB888 widze że to jest konwersja w jednym kierunku. Istnieją scalaki do konwersji RGB888 -> HDMI lub RGB888 <-> HDMI?

    Ostatecznie nie użyłem tego scalaka, sam FPGA daje radę (do 48 Hz przy full HD). Istnieją scalaki do konwersji w obie strony, np. od Analog Devices

    Dodano po 2 [minuty]:

    domints napisał:

    Ewentualnie czy dałoby się zrobić z tego przejściówkę AVR -> wyświetlacz z własnym VRAM itd. obsługiwaną np. przez SPI?

    Tak, jest wbudowany framebufor i softCPU, które może po nim rysować (np. ekran z informacją o wyświetlaczu i braku sygnału HDMI widoczny na jednym ze zdjęć). Obecny firmware nie obsługuje sterowania z zewnątrz via SPI, ale wystarczyłoby dopisać slave'a SPI w HDLu i dekodowanie komend SPI w oprogramowaniu softcore'a.

    Dodano po 2 [minuty]:

    el_koral napisał:
    Projekt po prostu pierwsza klasa. Jaki jest orientacyjny koszt budowy urządzenia?

    PCB - 8 EUR (przy 10 sztukach)
    FPGA - 15 EUR
    DDR - wylutowany z modułu DIMM
    Zasilanie - 6 EUR
    Złącza, elementy pasywne, etc. - ok 15 EUR

    W sumie ~ 40 EUR -> ~ 200 zł.
  • #13 14045790
    piotrva
    VIP Zasłużony dla elektroda
    Posty: 6409
    Pomógł: 625
    Ocena: 735
    Koszty produkcji płytek?
  • #14 14045826
    TWl
    Poziom 21  
    Posty: 337
    Pomógł: 42
    Ocena: 133
    piotrva napisał:
    Koszty produkcji płytek?

    100$ / 10 sztuk (panel 10x10cm) w iteadstudio.com. Trzeba trochę czekać - ok. 3 tygodnie, ale jakość niezła i ceny rewelacyjne.
  • #15 14045963
    Hellcube
    Poziom 10  
    Posty: 19
    Ocena: 7
    Rewelacja! faktycznie brakuje na rynku takich rozwiązań. Naprawdę profesjonalne wykonanie. Sam szukałem czegoś takiego by podłączyć wyświetlacz z tabletu do raspberry pi. Powinieneś zrobić z tego kickstarter.
  • #16 14047754
    TWl
    Poziom 21  
    Posty: 337
    Pomógł: 42
    Ocena: 133
    Hellcube napisał:
    Powinieneś zrobić z tego kickstarter.

    Kickstarter wymaga czasu i zobowiązań. Pierwszego mam mało, drugiego wystarczająco dużo. Projekt powstawał w bólach i mękach ponad rok...
  • #17 14049253
    mongoł2000
    Poziom 18  
    Posty: 623
    Pomógł: 15
    Ocena: 175
    Interesujący projekt :)
    Zastanawiam się co z kluczami dla HDMI. Czy to, iż Xilinx udostępnia IP Core wystarcza aby nie musieć być posiadaczem licencji za 10k$?
    Czy z układem ADV7611 nie było problemów? Pytam ponieważ spotkałem się z sytuacją kiedy Analog zażądał licencji HDPC przed zakupem tego układu.
    Chodzi o to czy producent urządzenia bazującego na FPGA z HDMI musi posiadać również licencje?
  • #18 14049289
    TWl
    Poziom 21  
    Posty: 337
    Pomógł: 42
    Ocena: 133
    Xilinx udostępnia IP core bez opłat, wystarczy się zarejestrować na ich stronie.

    Nie obsługuję i nie zamierzam obsługiwać HDCP. O ile dobrze pamiętam, ADV7611 nie ma kluczy w środku, więc żadnej licencji nie trzeba - co nie zmienia faktu, że cały HDMI jest zrobiony w FPGA a na płytce znajduje się tylko pusty footprint na zewnętrzny dekoder. W momencie projektowania PCB nie byłem pewien czy core HDMI da radę z 1080p, stąd dodatkowy zewnętrzny scalak do HDMI.

    TW
  • #19 14049699
    mongoł2000
    Poziom 18  
    Posty: 623
    Pomógł: 15
    Ocena: 175
    Rzeczywiście jest model z literką P, który nie zawiera kluczy i który można nabyć bez problemów. A więc jeśli oba dekodery nie posiadają HDPC, to czy są problemy z tym, że nie które urządzenia domowe mogą nie być obsługiwane?? Zamierzam użyć rozwiązania z HDMI w komercyjnym projekcie i zastanawiam się czy jak uniknąć corocznych opłat licencyjnych.
  • #20 14049740
    TWl
    Poziom 21  
    Posty: 337
    Pomógł: 42
    Ocena: 133
    mongoł2000 napisał:
    Rzeczywiście jest model z literką P, który nie zawiera kluczy i który można nabyć bez problemów. A więc jeśli oba dekodery nie posiadają HDPC, to czy są problemy z tym, że nie które urządzenia domowe mogą nie być obsługiwane??

    Nie posiadam niestety żadnego domowego urządzenia, które korzystałoby z HDCP... Więc prawde mówiąc, nie mógłbym nawet przetestować, czy to działa. Parę lat temu ktoś rozczaił jak odszyfrować HDCP w FPGA. Tylko po co skoro są odtwarzacze, które tego badziewia nie używają ;)

    Cytat:
    Zamierzam użyć rozwiązania z HDMI w komercyjnym projekcie i zastanawiam się czy jak uniknąć corocznych opłat licencyjnych.

    - Zapytać prawnika
    - Użyć DVI/DisplayPort zamiat HDMI, a klientowi dać przejściówkę...

    TW
  • #21 14053282
    ediagauto
    Poziom 10  
    Posty: 55
    Ocena: 20
    A ja zacząć temat procków Xilinx ?
    Od czego ty zaczynałeś ?
  • #22 14053515
    olinek2
    Poziom 23  
    Posty: 764
    Pomógł: 11
    Ocena: 53
    Ediagauto, to nie procki, tylko układy programowalne, a to całkiem co innego.
    Zacznij od choćby cyklu artykułów co były w EP na Spratanie 3. Dorzuć sobie książkę jakąś o VHDLu i pomału się wdrożysz. Jedynie co bym jeszcze polecił, to dobrze ogarnąć sobie cyfrówkę, tak by wiedzieć później jak to wszystko działa.
  • #23 14053668
    jacynka84
    Poziom 26  
    Posty: 1170
    Pomógł: 13
    Ocena: 29
    Człowieku HDMI by pozwoliło robić własne tablety lub telefony, kwestia rozdzielczości, bo raspberry PI ma HDMI ale chyba nie każdy ma gniazdo czy piny do ekranu RGB/HV, jeśli jakiś w ogóle ma! multum by to kupiło.
  • #24 14053808
    Pituś Bajtuś
    Poziom 28  
    Posty: 934
    Pomógł: 137
    Ocena: 10
    jacynka84 , ale przecież Rasbperry Pi ma wyjście DSI, więc stosowanie tej przejściówki z Raspberry jest trochę absurdalne.
  • #25 14054028
    jacynka84
    Poziom 26  
    Posty: 1170
    Pomógł: 13
    Ocena: 29
    No to się nie znam w takim razie, nie pisało nigdzie jasno o możliwości podłączenia LCD jedynie HDMI więc myślałem że trzeba się z tym gimnastykować.
  • #27 14054356
    olinek2
    Poziom 23  
    Posty: 764
    Pomógł: 11
    Ocena: 53
    Są są, pewnie jedna na zasilanie, a druga na masę :). Widać że niektóre przelotki idą do nich.
  • #28 14054546
    Geos9
    Poziom 15  
    Posty: 186
    Ocena: 9
    Pytanie do autora. Czy zamierza komercjalizować projekt, w sensie czy będą do kupienia Ew. Możliwość zamówienia partii adaptera.

    Jeśli max rozdzielczość to 1080p to czy dało by sie połączyć trzy wyświetlacze 360p?

    Fajny projekt interaktywnego lustra. Zamiast kupować jeden duży ekran mozna zwiekszyć powierzchnie lustra i wyświetlać pogodę informacje itp na kilku ekranach stad pytanie o możliwość połączenia kilku mniejszych w jeden większy. http://michaelteeuw.nl/tagged/magicmirror
  • #29 14054651
    el_koral
    Poziom 11  
    Posty: 13
    Ocena: 37
    Cytat:
    jacynka84 , ale przecież Rasbperry Pi ma wyjście DSI, więc stosowanie tej przejściówki z Raspberry jest trochę absurdalne.

    z tego co mi wiadomo DSI w raspberry nie jest na tę chwilę obsługiwane więc przedstawione przez autora tematu urządzenie mogło by być hitem.
  • #30 14056698
    TWl
    Poziom 21  
    Posty: 337
    Pomógł: 42
    Ocena: 133
    Pituś Bajtuś napisał:
    jacynka84 , ale przecież Rasbperry Pi ma wyjście DSI, więc stosowanie tej przejściówki z Raspberry jest trochę absurdalne.


    Owszem, ma - bez sterownika (nie wiadomo kiedy będzie) i tylko 2 lane'y wyprowadzone z SoC, co ogranicza rozdzielczość do 800x480.


    jacynka84 napisał:

    Człowieku HDMI by pozwoliło robić własne tablety lub telefony

    Po co robić własny tablet? Poza tym HDMI nie jest za bardzo energooszczędne, dlatego wymyślono DSI.


    nsvinc napisał:

    A ja na projekcie PCB nie widze wewnętrznych warstw... Miały być 4, na screenshocie są 2 ;]

    Kolega produkuje PCB ze screenshotów? :D

    Geos9 napisał:

    Czy zamierza komercjalizować projekt, w sensie czy będą do kupienia Ew. Możliwość zamówienia partii adaptera.

    Nie prowadzę działalności komercyjnej.

    Cytat:

    Jeśli max rozdzielczość to 1080p to czy dało by sie połączyć trzy wyświetlacze 360p?

    Jeśli zaprojektujesz nową płytkę ze złączami do trzech wyświetlaczy i zmodyfikujesz firmware, to jak najbardziej.

    TWl

Podsumowanie tematu

✨ Użytkownik przedstawił projekt konwertera HDMI do MIPI DSI, opartego na FPGA Spartan-6 XC6SLX9, umożliwiającego podłączenie wyświetlaczy LCD/OLED z interfejsem DSI do urządzeń takich jak PC czy Raspberry Pi. Projekt obsługuje wyświetlacze z 3/4-liniowym interfejsem DSI, oferując rozdzielczość do 1080x1920 przy 60 Hz oraz konwersję HDMI do DSI do rozdzielczości 720p@60 Hz lub 1080p@48 Hz. Użytkownicy dyskutowali o możliwościach zastosowania, krytycznych aspektach projektowania PCB, dostępności dokumentacji oraz potencjalnej komercjalizacji projektu. Pojawiły się pytania dotyczące implementacji MIPI DSI na mniejszych mikrokontrolerach oraz możliwości podłączenia wielu wyświetlaczy. Wspomniano również o problemach z HDCP i licencjami związanymi z HDMI.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA