Skocz do zawartości

FPGA (własne programy #5): Obraz na monitorze VGA


Elvis

Pomocna odpowiedź

Warto przy okazji zwrócić uwagę, że ten projekt pokazuje zalety FPGA w porównaniu z mikrokontrolerami. Przykładowy sterownik zrealizujemy za pomocą niewielkiej części zasobów naszego i tak niewielkiego układu. Wygenerowanie obrazu za pomocą mikrokontrolera, o ile w ogóle możliwe zajmowałoby ogromną ilość jego zasobów.

Cześć Elvis,

nawet nie wiesz jak się cieszę, że ktoś to w końcu napisał 🙂

Wszyscy moi znajomi uważają, że mikro-kontrolery są najlepsze do wszystkiego, a układy programowalne są dla maniaków i nie mają żadnych realnych zastosowań.

Dzięki za bardzo ciekawy artykuł, jutro postaram się poćwiczyć kod który napisałeś 😅 , może będę miał jakieś uwagi (jak już wspomniałem muszę trochę poczytać o temacie). Udało mi się zsyntetyzować PicoBlaze (z UARTem) tak, że mikro-kontroler do twojego projektu VGA będzie gotowy (walczę tylko z generacją zawartości ROM dla programu PicoBlaze bo dostarczony z projektem assembler "KCPSM3.EXE" to program DOS i nie mogę go uruchomić pod Windows 10), a linki do "pBlazeIDE" prowadzą w próżnię.

Pozdrawiam

Link do komentarza
Share on other sites

Cześć Elvis,

dzisiaj miałem czas, żeby pobawić się twoim kodem. To dziwne, ale u mnie białą ramkę prawidłowo rysuje przy takich warunkach w entity display:

   entity display is port(
       clk : in std_logic;
       x : in integer range 0 to 1023;
       y : in integer range 0 to 1023;
       color : out std_logic_vector(7 downto 0));
   end display;

   architecture Behavioral of display is
   begin

   process (clk) is
   begin
       if rising_edge(clk) then
           if (x < 640) and (y < 480) then
               if (x = 3) or (x = 639) or (y = 0) or (y = 478) then    -- biala ramka
                   color <= x"ff";           
               else
                   if (y < 160) then -- czerwony pasek na gorze
                       color <= x"e0";
                   elsif (y < 320) then -- zielony w srodku
                       color <= x"1c";
                   else -- niebieski na dole
                       color <= x"03";
                   end if;
               end if;
           else
               color <= x"00";
           end if;
       end if;
   end process;

   end Behavioral;

Pozdrawiam

Link do komentarza
Share on other sites

VGA to jak to ujmują zwłaszcza na Politechnice Warszawskiej "wymierający standard" (bo taka prawda) - niemniej jak jużto potraficie to zróbcie HDMI (jako ciekawostkę dodam, że jednym z jego elementów składowych jest właśnie sterownik VGA, a więc już połowa roboty wykonana - teraz tylko podłączyć do VGA kodery TMDS i do tych koderów rejestry przesuwne i macie HDMI - jak widać zatem jest to w rzeczywistości "udoskonalone" VGA, albo też "obudowane" czy też "rozszerzone" VGA - dzięki temu nie trzeba nie wiadomo jakich modyfikacji wprowadzać - ot starczy rozszerzyć to co istnieje. Podejście do zastosowania zarówno w FPGA jak w ogóle w samej elektronice (jak ma się VGA na scalaku jakimś to można na FPGA tylko dorobić kodery z rejestrami, spiąć to i mamy już przystosowany np: stary sprzed 20 lat generator obrazów kontrolnych czy starą kartę graficzną, też sprzed 20 lat do współczesnych odbiorników - i tyle 🙂 - prawda że zajebiście proste? 🙂))

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

VGA to jak to ujmują zwłaszcza na Politechnice Warszawskiej "wymierający standard" (bo taka prawda) - niemniej jak jużto potraficie to zróbcie HDMI (jako ciekawostkę dodam, że jednym z jego elementów składowych jest właśnie sterownik VGA, a więc już połowa roboty wykonana - teraz tylko podłączyć do VGA kodery TMDS i do tych koderów rejestry przesuwne i macie HDMI - jak widać zatem jest to w rzeczywistości "udoskonalone" VGA, albo też "obudowane" czy też "rozszerzone" VGA - dzięki temu nie trzeba nie wiadomo jakich modyfikacji wprowadzać - ot starczy rozszerzyć to co istnieje. Podejście do zastosowania zarówno w FPGA jak w ogóle w samej elektronice (jak ma się VGA na scalaku jakimś to można na FPGA tylko dorobić kodery z rejestrami, spiąć to i mamy już przystosowany np: stary sprzed 20 lat generator obrazów kontrolnych czy starą kartę graficzną, też sprzed 20 lat do współczesnych odbiorników - i tyle 🙂 - prawda że zajebiście proste? 🙂))

Cześć,

dzięki za podpowiedź, jak będzie chwila czasu to popróbuję 😉

Na razie to w pracy mam większe obciążenie.

Pozdrawiam

Link do komentarza
Share on other sites

Drobiazg - ja tylko mówię to jako ciekawostka jaka kryje się za tą całą magią HDMI (która szybko pryska jak się odkryje, że to w istocie VGA, tylko ulepszone!) - a także dobre to wskazanie, że stary sprzęt wcale nie taki stary i lekko można go przystosować do współczesnych realiów 🙂

Link do komentarza
Share on other sites

Cześć,

Udało mi się dziś powtórzyć wasz sukces i mój Elbert też wygenerował 3 pasy z białą ramką na 23" LCD-ku firmy LG.

W pierwszym podejściu też bez białej linii ramki na liniach 0. Kombinowałem z czasami, przeliczałem, a na końcu wyszło, że wystarczy wcisnąć przycisk automatycznej korekty pozycji/skali monitora i ramka jest jak trzeba za wszystkich stron... :-). Da się ją wycentrować niezależnie czy czasu impulsów synchronizacji są nieco przesunięte w lewo lub w prawo. Pewnie więc u Elvisa też wystarczyło poprawić pozycję/skalowanie monitora.

Pozdrawiam!

Edytowano przez Szałszanin
  • Lubię! 2
Link do komentarza
Share on other sites

Witam. Do kodu Elwisa (swoją drogą bardzo pouczającego) dodałem w ramach ćwiczenia funkcjonalność przesuwania granic kolorów, przy pomocy przycisków SW1..SW4. Trochę ciekawiej. 😉 Pozdrawiam Elwisa za ciekawy post.

VGA.zip

  • Lubię! 2
Link do komentarza
Share on other sites

6 minut temu, monsiw napisał:

A takie pytanie, jest możliwość wyświetlić obraz na ekranie laptopa przez przejściówkę VGA-HDMI?

Zacznijmy od tego, że VGA to standard analogowy, a HDMI to standard cyfrowy. Większość przejściówek to kłamstwa, a działające są oparte na specjalnych układach albo FPGA właśnie. Jeżeli już to DVI->HDMI jest możliwe ze względu na kompatybilność wsteczną standardu HDMI.

Wracając do pytania - tak da się, ale trzeba trafić w dobrej jakości przejściówkę opartą na jakimś sensownym układzie.

Źródła: VGA, HDMI

Link do komentarza
Share on other sites

5 minut temu, H1M4W4R1 napisał:

Zacznijmy od tego, że VGA to standard analogowy, a HDMI to standard cyfrowy. Większość przejściówek to kłamstwa, a działające są oparte na specjalnych układach albo FPGA właśnie. Jeżeli już to DVI->HDMI jest możliwe ze względu na kompatybilność wsteczną standardu HDMI.

Wracając do pytania - tak da się, ale trzeba trafić w dobrej jakości przejściówkę opartą na jakimś sensownym układzie.

Źródła: VGA, HDMI

Ja właśnie próbowałam poprzez przejście w windowsie do Project->second screen only i nic nie pokazało. A jeżeli użyć DVI->HDMI to rozumiem, że by to wygłądało tak, że kabel od FPGA do przejściówki VGA-DVI podłączyć, a ją z kolei do przejściówki DVI-HDMI?

Link do komentarza
Share on other sites

@monsiw Używałem przelotki VGA->HDMI,  była zasilana przez USB i miała  kabelek jack do podłączenia dźwięku. Cena (o ile dobrze pamiętam) około 80zł. Te HDMI->VGA były znacznie tańsze. Więc wyświetlić obraz na ekranie monitora z wejściem HDMI można.

@H1M4W4R1 Jak spowodować aby gniazdo HDMI w komputerze (laptopie) pracowało jako wejście?

EDIT

HDMI to sygnał cyfrowy, więc może się jakoś da (gdzieś spotkałem ofertę na na nagrywarkę z wejściem HDMI i zapisem na dysku w jakimś "zjadliwym" formacie).

Edytowano przez bjrk
Uzupełnienie
Link do komentarza
Share on other sites

3 godziny temu, bjrk napisał:

Jak spowodować aby gniazdo HDMI w komputerze (laptopie) pracowało jako wejście?

W większości się nie da i jest podpięte jako output. Czasami laptop ma w ustawieniach możliwość przełączenia tej opcji.

4 godziny temu, monsiw napisał:

A jeżeli użyć DVI->HDMI to rozumiem, że by to wygłądało tak, że kabel od FPGA do przejściówki VGA-DVI podłączyć, a ją z kolei do przejściówki DVI-HDMI?

Nie, to tylko nadmienienie, że HDMI i DVI są kompatybilne, ale z VGA już potrzebujesz przejściówki za ~100zł.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.