Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

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

Karta VGA do mikrokontrolerów z interfejsem SPI (QSPI)

oloam 08 Paź 2017 15:51 5223 20
  • Karta VGA do mikrokontrolerów z interfejsem SPI (QSPI)
    Witam.
    Pomysł na kartę wziął się z racji potrzeby wyświetlania obrazu na monitorze, nie tylko statycznego ale i ruchomego, z kamery dołączonej do mikrokontrolera. Szukając gotowego rozwiązania nie natknąłem się na wystarczająco "mocny" produkt i postanowiłem wziąć sprawy w swoje ręce.
    Od samego początku myślałem żeby wykorzystać gotowy kontroler obrazu , a sygnał wyjściowy przekonwertować na sygnał zgodny z VGA. Tak oto, po analizie dostępnych na rynku układów, wybór padł na chyba "najmocniejszy" i najprostszy w obsłudze układ FT812/FT813.
    Jako, że robię z tego projekt komercyjny, nie będę podawał szczegółów budowy karty.

    Standardowa rozdzielczość wynosi 800x600@56Hz przy domyślnym 12MHz zegarze. Dzięki możliwości wymiany rezonatora kwarcowego lub podania zewnętrznego sygnału zegarowego na wyprowadzenie karty, dostępne są inne tryby VGA (np. 800x600@60Hz, 800x600@72Hz przy zegarze 10MHz, jest tez możliwość przetaktowania układu i przy zegarze 13MHz osiągnąć rozdzielczość 1024x768@60Hz). Za sprawą użycia specjalizowanego konwertera cyfrowo-analogowego wyświetlana paleta barw wynosi 24 bity (true color - 16,777,216 kolorów). Adapter sterowany jest za pomocą interfejsu SPI z maksymalna prędkością SCK 30MHz (QSPI z maksymalnym SCK 25MHz ). Łatwe generowanie obrazów za pomocą wysyłanych komend (FTDI dostarcza edytory scen, które tworzą listę komend generowanego obrazu). Za sprawą wbudowanego gniazda możliwa jest również obsługa kart SD . Zasilanie karty wynosi 3,3v. Posiada dwa tryby pracy :



    Karta VGA do mikrokontrolerów z interfejsem SPI (QSPI)

    - tryb pracy ARDUINO dzięki wyprowadzeniom zgodnym z tym standardem. Karta akceptuje napięcia 5v na wyprowadzeniach komunikacji. Poza interfejsem SPI wykorzystywane sa dodatkowo trzy linie IO – dwie do wyboru procesora graficznego i karty SD (sygnaly CS dla SPI) oraz lina dla włączenia trybu ARDUINO



    Karta VGA do mikrokontrolerów z interfejsem SPI (QSPI)

    - tryb pracy dowolnego mikrokontrolera. Karta posiada osobny blok wyprowadzeń interfejsu SPI (QSPI), zewnętrznego sygnału zegarowego, wyboru karty SD w trybie SPI oraz piny zasilania. Ponieważ interfejs SPI (QSPI) jest wspólny dla procesora graficznego i karty SD, nie ma możliwości obsługi karty SD przy komunikacji QSPI.


    W sieci znajduje się mnóstwo materiałów i przykładów programowania (programujemy de facto układ FT812/FT813). Warto dodać, że karta nie tylko pozwala nam na wyświetlanie obrazu na monitorze ale również na interakcje (reakcje na wykryte obiekty wyświetlane w danej chwili).
    Filmik nakręcony na potrzeby innego postu na elektrodzie:

    Link


    Przykład z filmu jest napisany na ARDUINO. Oprócz karty wykorzystany jest joystick analogowy do poruszania kursorem i "naciskania" przycisków.

    Kartę testowałem na:
    - monitor Samsung T220
    - monitor LG FLATRON 23ET83V-W
    - telewizor Panasonic TX-P42GT20B (po modyfikacjach timingów w programie oraz ustawieniach timingów w telewizorze).


    Fajne!
  • #2 08 Paź 2017 19:02
    R-MIK
    Poziom 37  
  • #4 08 Paź 2017 19:30
    oloam
    Poziom 18  

    Pod ARDUINO przerobilem - zmodyfikowalem biblioteki pod FT80x plus dodalem plik naglowkowy, dzieki ktoremu inicjalizacja karty sprowadza sie do polecenia:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    gdzie juz wpisalem takie rozdzielczosci :
    Kod: c
    Zaloguj się, aby zobaczyć kod

    z tym, ze monitor Samsunga przy nizszych rozdzielczosciach niz 800x600 wypisuje, ze rozdzielczosc jest za niska i wylacza obraz po kilkunastu sekundach.

    Jezeli chodzi o uc z serii LPC (moja druga platforma testowa) to napisalem program, w ktorym dane wysylane po USB przez PC zapisywane sa w buforze w pamieci mikrokontrolera i nastepnie wysylane sa do karty poprzez interfejs QSPI. Po stronie PC biblioteki sam rzezbilem pod Delphi.

    Karol966 napisał:
    Jaki użyłeś konwerter RGB do VGA?

    Znalazlem na rynku tylko 2 rodzaje pinoutow z ukladow DAC. Karta jest zaprojektowana tak, zeby mozna byl uzywac ich naprzemiennie.
    Wyszedlem z zalozenia, ze skoro ma byc dobry produkt (prawdziwy true color) nalezy uzyc dobrych podzespolow a nie np drabinek rezystorowych

  • #5 08 Paź 2017 19:45
    R-MIK
    Poziom 37  

    oloam napisał:

    Karol966 napisał:
    Jaki użyłeś konwerter RGB do VGA?

    Znalazlem na rynku tylko 2 rodzaje pinoutow z ukladow DAC. Karta jest zaprojektowana tak, zeby mozna byl uzywac ich naprzemiennie.

    Jakie to DAC? Z tematu generowania obrazu wypadłem (kiedyś używałem TDA - 3xDA 6-bit, był też i AD 3x6-bit używane w telewizorach), ale wszystko może się zmienić.

  • #7 08 Paź 2017 19:56
    tmf
    Moderator Mikrokontrolery Projektowanie

    Karol966 napisał:
    Jaki użyłeś konwerter RGB do VGA?


    Można użyć np. ADV7125. Zgodność ze standardem uzyskasz konfigurując odpowiednio zegar taktujący FT813 i jego rejestry okntroli generacji obrazu.

  • #8 08 Paź 2017 20:01
    Karol966
    Poziom 30  

    oloam napisał:
    Znalazlem na rynku tylko 2 rodzaje pinoutow z ukladow DAC


    Coś czuję, że jest ich zdecydowanie więcej.
    W szufladzie walają mi się tfp410 (one akurat mają wyjście dvi czyli w prawie jak hdmi bez licencji o ile się nie mylę). Jest nawet już jeden projekt właśnie na tfp410+ft813.

  • #9 08 Paź 2017 20:06
    oloam
    Poziom 18  

    Karol966 napisał:
    Coś czuję, że jest ich zdecydowanie więcej.
    W szufladzie walają mi się tfp410 (one akurat mają wyjście dvi czyli w prawie jak hdmi bez licencji o ile się nie mylę). Jest nawet już jeden projekt właśnie na tfp410+ft813.

    Wlasnie nie ma zbytnio wyboru, jest jakis egzotyczny chyba chinski ale w europie jest tylko jeden dystrybutor i ma brak stanow magazynowych. W uklady z taka dystrybucja nie warto sie pchac. U mnie karta z hadmi ma byc nastepna wersja po VGA.

  • #10 08 Paź 2017 22:10
    Xaveri
    Poziom 17  

    Stary 14"monitor 4:3 jako wyświetlacz do ATMegi zamiast malutkiego OLED 128x64?

    Tego było trzeba!

  • #11 08 Paź 2017 22:30
    Tomekddd
    Poziom 23  

    Ciekawy projekt, kiedy będzie coś wiadomo na temat dostępności i ceny?

  • #12 08 Paź 2017 23:43
    oloam
    Poziom 18  

    Xaveri napisał:
    Stary 14"monitor 4:3 jako wyświetlacz do ATMegi zamiast malutkiego OLED 128x64?

    Wciagnalem z pudelka attiny2313, zeby pokazac, ze i na tym da sie cos wyswietlic :D. Jednak z braku czasu uc lezy dalej na biurku nawet nie podlaczony do karty.

    Tomekddd napisał:
    Ciekawy projekt, kiedy będzie coś wiadomo na temat dostępności i ceny?

    Karta prawdopodobnie bedzie dostepna pod koniec tygodnia (czwartek, piatek). Mam zamiar wystawic ja na ebay. Ewentualnie (teraz mi to przyszlo do glowy i musze to rozwazyc) dla uzytkownikow Elektrody moge przyjac zamowienie i platnosc Paypal na email.
    Cena (nie wiem jak dlugo mi sie uda ja utrzymac) bedzie w granicach 25GBP (okolo 122zl na dzien dzisiejszy) + wysylka 'poleconym' 7.75GBP (ok.37zl) lub 'zwyklym' (tej opcji jeszcze nie jestem pewien) 2.55GBP (ok 12zl).

  • #13 08 Paź 2017 23:53
    R-MIK
    Poziom 37  

    oloam napisał:

    Wciagnalem z pudelka attiny2313, zeby pokazac, ze i na tym da sie cos wyswietlic :D. Jednak z braku czasu uc lezy dalej na biurku nawet nie podlaczony do karty.

    Na Tiny coś w necie widziałem (zdaje sie terminal znakowy), a na Mega8535, może jeszcze 90S8535, robiłem. Dane wysyłane po SPI, mono, wada: pomiędzy znakami jeden pusty piksel. Koniec końców, powstała karta z CPLD+eeprom (później flash). Chodziło o wyświetlanie statycznego obrazu. Później w necie widziałem rozwiązanie z Mega generujące kilka kolorów, a szczęka mi opadła jak zobaczyłem Uzebox https://www.youtube.com/watch?v=Da3OIHtX8d8..

  • #14 10 Paź 2017 12:00
    lukiiiii
    Poziom 25  

    Pytanie laika: Dlaczego nie DVI/HDMI? odpadła by konwersja D/A.

  • #15 10 Paź 2017 13:02
    tmf
    Moderator Mikrokontrolery Projektowanie

    @lukiiiii Bo zamiast prostej konwersji DA - jest cyfrowo analogowa, a nie na odwrót, miałbyś relatywnie skomplikowaną konwersję równoległo-szeregową (ze względu na wysoką częstotliwość). Co prawda realizuje to też jeden scalak, ale już trzeba dbać o dopasowanie i impedancję linii, zabezpieczenia ESD itd. Do tego dochodzi kawałek softu do konfiguracji serializera i troszkę więcej jeśli to ma dodatkowo obsługiwać HDCP. Zresztą autor napisał, że planuje się za HDMI zabrać.

  • #16 10 Paź 2017 19:34
    oloam
    Poziom 18  

    lukiiiii napisał:
    Pytanie laika: Dlaczego nie DVI/HDMI?

    Tak jak pisalem wyzej, wyswietlanie obrazu mialo byc w innym projekcie. Do wykorzystania byly monitory troszke starszego typu bez wejscia HDMI. Zeby nie robic od razu calej pytki projektu, postanowilem wydzielic generowanie obrazu jako osobna plytke prototypowa (w pierszej wersji popelnilem blad developerski, takze nie nadawala sie do uzytku). Powstala druga wersja z gniazdami PS/2:
    Karta VGA do mikrokontrolerów z interfejsem SPI (QSPI)
    dzialajaca :P :
    Karta VGA do mikrokontrolerów z interfejsem SPI (QSPI)
    wtedy powstalo pytanie dlaczego nie zrobic plytki uniwersalnej z uklonem dla uzytkownikow ARDUINO (?)
    Tak powstala ostateczna wersja.

    tmf napisał:
    Zresztą autor napisał, że planuje się za HDMI zabrać.

    Wlasciwie schemat juz mam, zostalo zaprojektowac i zamowic plytke - problem to brak czasu. Jezeli bede mial dobry "feedback" bierzacego projektu i nie chodzi tu sprzedaz (o czym w akapicie ponizej) tylko o sama idee, czy jest sens wchodzic w to, poniewaz osobiscie mnie to nie jest potrzebne a czasu jak na lekarstwo..

    Jeden z uzytkownikow zarzucil mi, ze to nie jest DIY tylko reklama. Pewnie niektorzy tez tak mysla, dziekuje - widac z tego, ze plytka wyglada jak produkt komercyjny. Teraz moze okreslmy jak bardzo komercyjny jest to produkt (?). Chcac zbudowac 1szt. dla siebie musisz wydac co najmniej (ceny farnell):

    ft813 - 40,90zl
    adv w wersji najtanszej nie pozwalajacej na rozdzielczosc wyzsza niz 800x600@72Hz - 62,70zl
    Plytki nie wiem jak ceny ksztaltuja sie w Polsce ale z chin to trzeba liczyc lekko 50zl z przesylka (za kilka szt)
    Juz w tym momencie cene samodzielnej budowy masz wyzsza niz cena zaproponowana przeze mnie.
    Dodaj jeszcze reszte drobnicy (pytka poroponowana przeze mnie posiada wszystko zeby od razu ja uzytkowac - zworki i kwarc rowniez), paste lutownicza, montaz.
    Proponowana przeze mnie cene jest rowniez niska z tego powodu, ze montaz robie we wlasnym zakresie i jest to montaz "profesjonalny" -plytki ENIG, stencil, pasta lutownicza, piec tunelowy, 'firmowe' spoiwo lutownicze do elementow przewlekanych, wyszystko oczywiscie w technologi bezolowiowej.

  • #18 19 Paź 2017 12:07
    leonow32

    Poziom 29  

    Mikroprocesorowiec napisał:
    leonow32 napisał:
    Możesz pokazać schemat?

    Weź aplikację użytych układów, połącz kreskami i masz schemat.

    No dzięki za błyskotliwą odpowiedź, o wielki mędrcu światłość niosący ociemniałym. Dzięki takim radom to forum będzie jeszcze bardziej pomocne dla wszystkich.

  • #19 19 Paź 2017 12:14
    Mikroprocesorowiec
    Poziom 7  

    leonow32 napisał:
    Mikroprocesorowiec napisał:
    leonow32 napisał:
    Możesz pokazać schemat?

    Weź aplikację użytych układów, połącz kreskami i masz schemat.

    No dzięki za błyskotliwą odpowiedź, o wielki mędrcu światłość niosący ociemniałym. Dzięki takim radom to forum będzie jeszcze bardziej pomocne dla wszystkich.

    Dziękuję za wyrazy uznania. Schemat to nie problem, nie rozumie czemu o niego pytasz. Po fotografii urządzenia widać, że jest to banalne urządzenie od strony elektrycznej, to co da ci schemat? Zaprojektujesz poprawnie PCB?. A program? Masz już?
    Wracając do programu, zastanawiałeś się jak AVR16MHz może wyświetlać animacje w rodzielczości 600x800. Poczytaj o FT8xx a zrozumiesz, ze schemat to banał. Jak bym właśnie zapytał o rysunki PCB i o program. Ale autor na początku wspomniał coś o komercji.

    Skoro schemat jest najważniejszy, to ja go narysuję. Narysuje tez PCB. A ty napiszesz mi program w C na AVR obsługujący tą kartę. Ok?

  • #20 19 Paź 2017 18:49
    oloam
    Poziom 18  

    leonow32 napisał:
    Możesz pokazać schemat?

    Jak zaznaczylem w pierwszym poscie zrobilem z tego projekt komercyjny (zreszta wystawilem juz karte na ebay), dlatego tez schematu nie chce publikowac. Moge podac pinout:
    Karta VGA do mikrokontrolerów z interfejsem SPI (QSPI)
    Karta VGA do mikrokontrolerów z interfejsem SPI (QSPI)

    Mikroprocesorowiec napisał:
    A ty napiszesz mi program w C na AVR obsługujący tą kartę. Ok?

    Programowanie jest bajecznie proste. Jak pisalem wyzej, wysylasz liste komend (niektore z parametrami) do karty. Komendy te sa rozpisane w postaci funkcji w C i dostepne na stronach FTDI. Dla przykladu caly program z video z pierwszego postu procz ladowania jpeg z karty do FT81x i poczatkowej inicjalizacji zawiera sie w procedurze umieszczonej w petli glownej :
    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #21 22 Paź 2017 14:19
    Mikroprocesorowiec
    Poziom 7  

    Mikroprocesorowiec napisał:
    A ty napiszesz mi program w C na AVR obsługujący tą kartę. Ok?

    Programowanie jest bajecznie proste. Jak pisalem wyzej, wysylasz liste komend[/quote]
    Dla jednego proste, dla innego "krzywe". Przyznam, że kody ze strony FTDI nie oglądałem. Mozaesz tak w przybilizeni napisacjak to działa? Po SPI wysyła się komendy, ale jak wysłac npo komedę odtwarzająca np mp4 (może format jest inny wymagany) aby to ta karta FY8xx odtworzyła?
    Może moje pytania sa lamerskie, ale na wszystkim nie mogę się znać.

    (23 Paź 2017 17:43) Polecenie moderatora: CMS

    Proszę niezwłocznie poprawić błędy w pisowni.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME