Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VGA i AVR nie działa - układ z wykorzystaniem Atmega32 i monitora LCD

xamrex 11 Sty 2012 17:31 5138 19
  • #1 11 Sty 2012 17:31
    xamrex
    Poziom 28  

    Witam,
    Chciałem sobie zrobić banalny układ z wykorzystaniem Atmega32 i monitora LCD.

    Miała to działać tak, że na ekranie przez cały czas będzie czerwony ekran.

    Korzystając z tego tematu:Link

    Do linii R, G B, wsadziłem w szereg rezystor 470om(aby mieć napięcie ok 0,7V).

    Prosty schemat:
    VGA i AVR nie działa - układ z wykorzystaniem Atmega32 i monitora LCD

    Oczywiście atmega jest odpowiednio zasilona itp. tylko żeby nie śmiecić na schematcie dałem uproszczony (atmega32 siedzi na płytce od pana Mirka)

    Jeśli ktoś rozwiąże problem ofiaruję punkty !

    Napisałem taki kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod



    No ale niestety nie działa...
    Mógłby ktoś się w to wgłębić i podpowiedzieć mi co robię źle.


    Bardzo proszę o nie komentowanie tego kodu, wiem że w taki sposób się tego robić nie powinno, ale timingi wychodzą dobre, więc w czym może być problem?

    1 19
  • #2 12 Sty 2012 07:28
    94075
    Użytkownik usunął konto  
  • #3 17 Sty 2012 09:44
    xamrex
    Poziom 28  

    Mam 3 monitory
    1)jakiś bardzo stary nokia
    2)LCD Samsunga
    3)LCD acer

    Próbowałem na nich odpalić ten kod, który jest w pierwszym poście.

    1)Na starej Nokii odpaliło się bez problemu:
    VGA i AVR nie działa - układ z wykorzystaniem Atmega32 i monitora LCD
    Tylko na początku i na końcu obraz się 'zdeformował' ;/

    2)Na LCD Samsung było już trochę gorzej...
    VGA i AVR nie działa - układ z wykorzystaniem Atmega32 i monitora LCD

    Pasy powinny zaczynać się od Czerwonego, potem zielony i na końcu niebieski.

    A tutaj coś się stało z kolejnością i w ogóle nie ma zielonego.

    3)Na monitorze Acer, nie wyświetliło nic;/

    Mógłby mi ktoś podać przyczynę dlaczego tak się dzieje?
    Proszę o pomoc ;)

    0
  • #4 17 Sty 2012 10:16
    kozak_sc
    Poziom 23  

    LCD-ki mają jakieś minimalne (wcale nie małe) częstotliwości H i V, Twój układ zapewne generuje dość niskie częstotliwości dlatego też na monitorze CRT działa a na LCD już nie.

    1
  • #5 17 Sty 2012 10:35
    xamrex
    Poziom 28  

    układ generuje 60Hz

    0
  • #6 17 Sty 2012 12:09
    JarekC
    Poziom 27  

    A jakiego kwarcu użyłeś?
    Z linku który podałeś w pierwszym poście wynika że powinien być 20MHz.

    Monitory VGA synchronizują najczęściej powyżej 30kHz (synchronizacja pozioma).

    Pozdrawiam
    JarekC

    0
  • #8 17 Sty 2012 22:17
    94075
    Użytkownik usunął konto  
  • #9 18 Sty 2012 08:18
    marek1846
    Poziom 14  

    Przecież układ działa prawidłowo, na CRT wyświetla to co ma wyświetlać. Układ generuje obraz o określonej rozdzielczości np 640x480, z której wynika częstotliwość H iV.
    Nokia obsługuje niskie rozdzielczości LCD nie. Zniekształcenia to efekt braku synchronizacji.

    0
  • #10 18 Sty 2012 08:38
    94075
    Użytkownik usunął konto  
  • #11 18 Sty 2012 09:07
    marek1846
    Poziom 14  

    Przecież to proste, czym jest to co pojawia się na ekranie Nokii. Wg mnie obrazem
    generowanym przez układ czyli układ działa prawidłowo, bo generuje obraz.
    Niedokładności czasowe, zgoda niezbyt dokładnie napisałem, powodują pojawianie
    się obrazu w pierwszych liniach z opóżnieniem , czyli niezbyt dokładną
    synchronizacją obrazu z impulsami synchronizacji linii. Wyrażnie widoczne
    przesunięcie. Gdyby układ działał w jeszcze niższej rozdzielczości ( na jeszcze
    starszym monitorze analogowym) mieściło by się w tolerancji.

    0
  • #12 18 Sty 2012 11:19
    JarekC
    Poziom 27  

    Witam,

    Przeanalizowałem program i timingi nie do końca zgadzają się z wymaganymi dlaVGA 640x480 60Hz.

    Rozpiskę i przebiegi timingów można znaleźć np tutaj (strona 14)
    http://www.televox.pl/images/stories/dokumenty/televga/televga.pdf

    Poprawiłem kod teraz powinno być lepiej.
    Jeszcze nie idealnie bo trzeba by dokładnie pokorygować opóźnienia wnoszone przez pętle "for".

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam
    JarekC

    0
  • #13 19 Sty 2012 08:59
    xamrex
    Poziom 28  

    Witam
    Wgrałem twój kod.
    Na monitorze CRC działa OK(ale też na początku pierwszej linii jest zniekształcenie)...

    A na
    LCD Samsunga i Acera nic się nie wyświetla ;/

    0
  • #14 19 Sty 2012 12:10
    marek1846
    Poziom 14  

    Skąd ten upór z LCD, proponuję taki eksperyment. Podłącz Nokię do swojego
    komputera, ustaw rozdzielczość karty na 640 na 480, a póżniej do tak
    skonfigurowanego komputera podłącz LCD. Też nie będzie działał, z prostego
    powodu, nie obsługuje tego trybu a nie dlatego, że karta graficzna żle działa.

    0
  • #15 19 Sty 2012 12:28
    94075
    Użytkownik usunął konto  
  • #16 19 Sty 2012 18:17
    xamrex
    Poziom 28  

    Czy specyfikacja monitora LCD różni się jakoś od CRT??
    Dlaczego nie chce mi się ten obraz wyświetlać na LCD'kach, skoro te timingi nie są jakieś straszne?

    0
  • #17 19 Sty 2012 18:42
    marek1846
    Poziom 14  

    albertb napisał:
    Upór jest tylko z Twojej strony.
    Pokaż specyfikację choć jednego monitora, który nie obsługuje
    trybu 640/480/60Hz

    Albert

    Masz rację, trochę się rozpędziłem,od tej rozdzielczości wszystko się zaczyna.

    0
  • #18 20 Sty 2012 18:43
    xamrex
    Poziom 28  

    Ale wydaje wam się, że obraz nie wyświetla się poprawnie na LCD przez złe timingi, czy może coś innego jest przyczyną?

    0
  • Pomocny post
    #19 20 Sty 2012 20:03
    JarekC
    Poziom 27  

    Witam,

    Skleciłem na szybko układ na "pająka":

    ATMEGA128, Zasilanie 5V, Kwarc 20Mhz, Rezystory 470 Ohm w liniach RGB

    Poprawiłem jeszcze trochę timingi aby nie szarpało na początku obrazu.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    I oto efekt na monitorze LCD DELL 20" matryca 1600x1200.
    Więc timingi i układ są poprawne.
    VGA i AVR nie działa - układ z wykorzystaniem Atmega32 i monitora LCD

    Przy okazji zapraszam do zaglądnięcia na mój projekt również wykorzystujący VGA ale przy pomocy sprzętowej karty.
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=10423539#10423539

    Jeżeli zamieszczony kod nie zadziała to przyczyny szukałbym w przetaktowaniu uP. Jaką dokładnie masz kostkę i jakim napięciem zasilasz układ.

    Pozdrawiam
    JarekC

    0
  • #20 20 Sty 2012 20:30
    xamrex
    Poziom 28  

    No, ja znowu sobie podłączyłem i dalej nic....
    Ale się w końcu rozwiązało..
    Winny był kabel ;))

    Jako, że monitor mam połączony kablem do komputera, to aby nie przekładać cały czas, to po prostu wpinałem inny kabel (który jak się okazało był uszkodzony), którym łączyłem PC z uc.

    Stary monitor CRT, miał swój własny kabel (którego się nie da wyłożyć, więc nigdy nie zmieniałem i dlatego on działał)


    Oczywiście na 'normlanym' działającym kablu wszystko działa elegancko ;))
    W końcu się wyajśniło :)))
    Tak czy siak, dzięki za pomoc i za trud, zrobienia tego na pająka :))
    Tak jak obiecałem 50pkt leci do ciebie Jarku
    //Mimo to na moim acerze dalej nie działa... czsami tylko obraz migne :)
    Ale to już przebole.. ważne że działa na LCD Samsunga :)

    0