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

[Atmega32][Bascom] - Generowanie prostego obrazu VGA

AWllen 11 Sie 2012 19:35 3559 11
  • #1 11198531
    AWllen
    Poziom 15  
    Na procesor AtMega32 (taktowany kwarcem 8MHz) wrzuciłem program który ma generować prosty obraz (3 pionowe pasy - czerwony, zielony i niebieski) na monitorze VGA (Mój monitor to Samsung SyncMaster740n)

    Oto on

    Kod: text
    Zaloguj się, aby zobaczyć kod


    I teraz co się udało:
    Po uruchomieniu procka monitor wykrywa obraz (wychodzi z trybu Standby i dioda Power pali się ciągle), po wyłączeniu procka na monitorze pojawia się informacja "check signal cable", co jest jakimś pozytywem.

    Niestety na monitorze nie pojawia się obraz. nawet po podłączeniu (przez rezystor) pinu koloru bezpośrednio do plusa, nic się nie dzieje

    Kolejność pinów oraz odstępy czasowe brałem Stąd.

    Notka dla moderacji Tag SYNTAX nie działa
    Moderowany przez LordBlick:

    Jak widać wyżej, trzeba tylko odpowiednio go użyć.

  • #2 11198584
    xamrex
    Poziom 28  
    Jaką rozdzielczość generujesz i jaką masz częstotliwość(ile Hz)?
    Nie wiem czy da Ci się to osiągnąc na 8MHZ
    Podłącz może 20Mhz, będą lepsze timingi .
  • #3 11199155
    LordBlick
    VIP Zasłużony dla elektroda
    Delikatnie powiedziawszy, dobór języka programowania ma tu kluczowe znaczenie - trzeba generować precyzyjnie synchronizację poziomą, czego ty nie robisz - Bascom nie jest językiem dużej precyzji czasowej.
    Linki do przejrzenia:
    http://tinyvga.com/
    http://www.lucidscience.com/pro-vga%20video%20generator-1.aspx
    http://quinndunki.com/blondihacks/?p=955
  • #4 11199198
    stanleysts
    Poziom 27  
    VGA najlepiej na FPGA
  • #5 11199259
    piotrva
    VIP Zasłużony dla elektroda
    stanleysts napisał:
    VGA najlepiej na FPGA

    Owszem, ale to jest skok z sadzawki na pełny ocean ;-)
    I do takich rzeczy nada się w jakimś ograniczonym stopniu mikrokontroler AVR nawet z Bascomem, choć C, będzie jeszcze lepszy, nie mówiąc o ASM.
  • #6 11199323
    tmf
    VIP Zasłużony dla elektroda
    Timingi i jeszcze raz timingi. Skoro na stałe zwarcie R, G lub B z napięciem różnym od 0V nie generuje jednolitego obrazu o jakimś kolorze to znaczy, że nie ma synchronizacji i w ogóle żaden obraz nie jest generowany. Sama zmiana koloru diody, czy napis na ekranie to niewiele, bo nie świadczy to o złapaniu synchronizacji przez monitor. Pytanie pierwsze - procesor jest taktowany z kwarca? Na generatorze RC nie wszystkie monitory chcą łapać synchronizację, zwykle przejawia się to poszarpanym obrazem lub jego pływaniem. Druga sprawa - synchro, szczególnie H-sync należy generować timerem - ważne są nie tyle czasy, co ich powtarzalność. Większość monitorów ma jakieś PLL czy inne cuda i jak pomiędzy kolejnymi impulsami zmienia się czas, to bardzo tego nie lubią. Na czas synchronizacji sygnały RGB muszą mieć też 0V. Czy sam program jest poprawny to nawet nie będę analizował, im szybciej porzucisz tego dziwoląga jakim jest Bascom tym lepiej.
    Aha, weź też pod uwagę, że m.in. na podstawie polaryzacji impulsów synchronizacji monitor rozpoznaje rozdzielczość.
  • #7 11200883
    Konto nie istnieje
    Konto nie istnieje  
  • #8 11200990
    AWllen
    Poziom 15  
    Dzięki za rady.
    Postanowiłem jednak zrezygnować z robienia własnego GPU na rzecz wykorzystania układu SAA5281GP/H. W telewizorach jest używany jako generator teletekstu i dla mnie pasuje idealnie. Kartkuję na razie notę katalogową.

    Temat do zamknięcia.
  • #9 11201050
    RomanFilipecki
    Poziom 18  
    Witaj.
    Sądzę że za szybko się poddajesz. Kilka lat wstecz wygenerowałem obraz wprawdzie nie VGA ale standardu telewizyjnego 15625 Hz/50 Hz, ale sumowany z główną treścią, także za pomocą AVR w asm.
    W czasie studiów robiliśmy takie wynalazki tylko w oparciu i układy TTL ...
    Cierpliwości
    Roman
  • #11 18897117
    kogiel
    Poziom 16  
    Wiem, że temat stary i większośc w ASM, ale w Bascomie ;-)
    Może komuś się przyda

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
REKLAMA