Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[FPGA][Verilog] Sterownik matrycy LCD - czy kod jest poprawny?

Zumo 30 Lip 2011 23:10 1764 4
  • #1 30 Lip 2011 23:10
    Zumo
    Poziom 21  

    Witam.
    Chciałem wykonać sterownik matrycy LCD Samsung LTM170E4-L01. Napisałem więc prosty program w Verilogu z małą pomocą strony "fpga4fun" (jestem początkujący w tym) który generowałby przebiegi dla wejścia DE (Data Enable). Na początku myślę o podłączeniu "na sztywno" szyny danych, gdyż chodzi mi głównie o przetestowanie wyświetlacza.
    Konwerter LVTTL->LVDS to DS90C383B.
    Niestety nie mam jeszcze płytki testowej co uniemożliwia mi sprawdzenie układu.
    Czy ten kod będzie współpracował z w/w wyświetlaczem?
    Częstotliwość taktowania = 50MHz
    Jeżeli chodzi o układ to prawdopodobnie CycloneII EP2C8Q208.
    Datasheet wyświetlacza przykładowe przebiegi na stronie 19.

    Kod: verilog
    Zaloguj się, aby zobaczyć kod


    Dziękuję bardzo za każdą chęć pomocy :-)

    0 4
  • #2 31 Lip 2011 10:57
    tymon_x
    Poziom 30  

    Nie musisz stosować konwertera. Wszystko możesz upchać do FPGA, generacja LVDS etc.. Jeden scalak mniej, ale troszkę więcej roboty :D
    Co do poprawności, wrzuć Sobie do jakiegoś symulatora. Jak używasz Quartus'a to do ModelSim'a. Sprawdź markerami czasy. Przelicznik na odpowiednie czasy i tak masz w datasheet matrycy. Albo nabrać troszkę skill'a w pisania testbench'a. wyliczyć Sobie poprawność opisu i wypluć wynik do konsoli. Verilog jest stworzony do takiego testowania.
    Deklaracje rejestrów PixX i PixY wrzuć przed Wmax, bo analiza kodu idzie z góry na dół, więc może nie przejść syntezy.

    0
  • #3 01 Sie 2011 14:09
    Zumo
    Poziom 21  

    Dzięki za odpowiedź. Wiem o tym trybie LVDS, lecz dane są tam, jak patrzyłem na tabelkę jakoś multipleksowane co nieco utrudnia sprawę.
    Nie wiem jeszcze czy vertical blanking (42 linie) ma zawierać całą linię z blankingiem(790 pikseli), czy może bez niego(640pikseli).
    Czy wie ktoś jak to może być?

    0
  • #4 03 Sie 2011 21:34
    tymon_x
    Poziom 30  

    Zumo napisał:
    Dzięki za odpowiedź. Wiem o tym trybie LVDS, lecz dane są tam, jak patrzyłem na tabelkę jakoś multipleksowane co nieco utrudnia sprawę.

    Ble, ble, ble...
    Zrób Sobie moduł na RGB, VSYNC, HSYNC i etc. Łatwo to później wykorzystać, dodając dodatkowy moduł robiący zamiankę parallel na serial wymagany tam przez DVI czy inne. To są proste operacje nor, xnor i przesuwanie. Zajrzyj na stronę organizacji trzymającą piecze nad HDMI, tam w ich specyfikacji pięknie wytłumaczony jak to ugryź, z single czy dual-portem.
    A FPGA są do takich rzeczy stworzone, oprócz IO w rożnych trybach, dochodzą do tego serializery/deserializery i inne wspomagacze.
    Zumo napisał:
    Nie wiem jeszcze czy vertical blanking (42 linie) ma zawierać całą linię z blankingiem(790 pikseli), czy może bez niego(640pikseli).
    Czy wie ktoś jak to może być?

    Dla mnie te przedstawione przebiegi mówią wszystko za siebie :P

    0
  • #5 04 Sie 2011 02:36
    Zumo
    Poziom 21  

    Dobrze, ale z racji wieku (16) i tego że jestem początkujący chodzi mi o najprostsze ( i najszybsze uruchomienie ) tego wyświetlacza. Jak zadziała to mogę eksperymentować z własnymi generatorami, serializerami itp.
    Nie ma żadnego problemu z dodatkowymi układami bo są dostępne jako sample.
    Przyjąłem że linia pozioma zawiera piksele aktywne + blanking za każdym razem. Niebawem sprawdzę to praktycznie i ewentualnie wprowadzę poprawki.
    Niestety temat trochę zbacza z toru, miał służyć sprawdzeniu kodu oraz ewentualnym podpowiedzią ( nie chcę aby ktoś za mnie wykonał całą pracę ).

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo