Forum: Mikrocontroller und Digitale Elektronik PAL (direkt) mit ATMega32


von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Hallo,

angespront von diesem Artikel / Projekt 
(http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm) wollte ich das 
gnaze nachbauen.

Natürlich kompilierte der Code erstmal nicht und nach einigen Fixes 
gings dann doch aber als Bild kommt nur Müll. Da stimmen wohl die 
Timings nicht mehr mit nem neuem Compiler & Libs.

Jetzt hab ich angefangen das ganze nachzuprogrammieren und natürlich 
ganz am Anfnag angefangen.

Dieser Artikel 
(http://www.rickard.gunee.com/projects/video/pic/howto.php) geht schon 
etwas mehr auf die Technik ein und da hab ich es dann auch geschafft ein 
paar vertikale Linien auf den TV zu zauben (einfach eine Scan-Line in 
der Schleife..).

Da kamen aber auch wieder merkwürdige Effekte die ich nicht ganz 
verstehe..
Ich gewissen Grenzen konnte ich die Dauer der Scanline verändern ohne 
das das Bild unbrauchbar geworden wäre.
Außerdem scheint das Bild hinten und vorne Abgeschnitte zu sein, es wird 
also nicht alles was ich schicke angezeigt (klar, die 4 + 8 micros hsync 
beachtet!).

Und dann noch wie is das mit der hsync? Wenn ich die mache springt er an 
den Anfang der Zeile? Daher kann ich die Länge der Scanline etwas 
varieren?

Und wie muss ich das jetzt mit dem VSync machen? einfach alle x 
scanlines vsync machen? immer abwechselnd für das eine und das andere 
Halbbild?

Wie genau muss der aussehen? Aus der Skizze in dem zweiten Link werd ich 
nicht ganz schlau..

von Michael U. (Gast)


Lesenswert?

Hallo,

mehr zum Sortieren...

PAL ist die Art der Übertragung einer Farbinformation in einem 
FBAS-Signal.
F Farb-
B Bild-
A Austast-
S Syncron-

Du bastelst vorest an einem BAS-Signal, also ohne Farbe.

Die Zeiten sind durch die TC-Norm festgelegt, Zeilenfrequenz 15625Hz, 
also Zeilendauer 64µs von HSync-Start zu HSync-Start.
Bild 20ms von VSync-Start zu VSync-Start.
Davon sollte man möglichst nicht abweichen, weil der TV eigentlich nur 
diese Werte kann. Bei geringen Abweichungen verschiebt sich die 
Bildlage, werden sie größer kommt die Syncronisation aus dem Tritt, das 
Bild "zerfällt" oder läuft durch.

Das die Geschichte nicht endlos schnell ist, wird für die Zeit der 
Zeilen- und Bildrückläufe der Strahl dunkelgetastet, der Austastimpuls 
vor und nach den Syncronimpulsen. Da wird eben schwarz gesendet.
Die Austastzeiten legen fest, ab wann oben und links und bis wann unten 
und rechts was dargestellt wird.

Den restlichen Kram kannst Du im Prinzip erstmal ignorieren, alle 
Fernseher stellen auch problemlos ein vereinfachtes Signal dar.
Dabei werden einfach völlig identische Halbbilder mit 312 Zeilen 
erzeugt.
Daß es eigentlich 312,5 sind, kann man ignorieren.

Erzeuge alle 64µs einen Zeilenimpuls und alle 312 Zeilen einen 
Bildimpuls und mache dann eine Zeile in der Mitte weiß. Die sollte 
stabil irgendwo stehen.
Nun mache den Anfang dieser Zeile schwarz, bis der Beginn des sichtbaren 
Teils sauber links erkennbar ist.
Dann das Spiel am Ende der Zeile, bis sie rechts vor dem Rand endet.
Dann hast Du die nutzbarer Breite.
Dann setze diese Zeile an den Anfang des Bildes (etwa ab Zeile 15, bis 
sie oben sichtbar ist, gleiches Spiel unten am Ende. Dann hast Du die 
Anzahl nutzbarer Zeilen.

Kann man auf einem µC ja recht gut wirklich durchspielen, danach sollte 
Dir der Aufbau des Signals ziemlich klar sein. ;)

Ganz ohne Austastsignale wird die Sache je nach Fernseher unstabil 
werden oder Rücklaufstreifen zeigen.
Solange Du die H- und V-Frequenz einhälst, passiert dem Fernseher dabei 
nichts. Bei sehr großen oder ungünstigen Abweichungen kann allerdings 
auch ein Fernseher sauer reagieren (Schutzschaltungen können 
ansprechen...).

Gruß aus Berlin
Michael

von Isipisi (Gast)


Lesenswert?

Gibts für TV als fertig programmierter ATMEGA8, inklusive
Echtzeit-Balkengrafik. Testversion (40 Betriebsstunden lauffähig)
***inklusive Versand**** für 3,95 Euro :)
http://www.tvterminal.de/tvt_mobi_2.html
3,95 überweisen und das Ding kommt per Post.

Man kanns erstmal in Ruhe ausprobieren, und dann den
ATMEGA8 gegen 10 Euro freischalten (oder löschen und als
normalen Mikrocontroller benutzen)

von Zacc (Gast)


Lesenswert?

So'n timing macht man besser mit einem FPGA zusaetzlich.

z

von Michael U. (Gast)


Lesenswert?

Hallo,

@Isipisi: gibts etliches als Freeware in mehreren Varianten in der 
Codesammlung und im Internet...

@Zacc: kann man, macht man, muß man nicht. Konnte ich aber schon vor 
mittlerweile 20 Jahren mit TTL-Zählern und Monoflops.

Ich finde es gut, wenn jemand sich Grundlagen erarbeiten will, es bringt 
manchmal schöne Lösungen, auf die andere noch nicht gekommen sind und 
man wird mit Sicherheit nicht dümmer dabei.

Gruß aus Berlin
Michael


von Willi (Gast)


Lesenswert?

Hier ein BAS-Videoterminal in mit Source Code für MEGA-8.
Läuft mit geringen Modifikationen (Int.-Tabelle) auch mit Mega32.

Beitrag "Re: AVR ASCII Video Terminal  - 40 x 25  - BAS Signal"

MfG Willi

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Danke Michael, das hilft mir schonmal weiter!

BAS, ja is klar, ist halt sozusagen PAL-Kompatibel :)
Soll auch so bleiben, ich meine Farbe ist aus einem ATMega nicht 
rauszuholen.

Das VSync ist mir klar, am Anfang der 64us 4us 0.0V dann 8us 0.3V.

Doch wie sieht der HYsnc aus?!?
In dem Artikel ist zwar eine Skizze 
(http://www.rickard.gunee.com/projects/video/pic/vinfo_vsync_big.png)
aber die kapiere ich ehrlich gesagt nicht. Keine Achsenbeschriftung und 
Skala..

von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Hallo Willi!

Hast du das schon mal auf den Mega32 protier oder nur theoretisch?

von Isipisi (Gast)


Lesenswert?

@MichaelU: Natürlich gibts Freeware Lösungen. Aber mancher möchte
vielleicht komfortablen TV-Output bloss nutzen ohne daran herum-
zubasteln, genauso wie er ein LCD Display kaufen würde.
Echtzeitgrafik und integrierte Uhr und Scrolling
bietet keine mir bekannte Freewarelösung. Und für 3,95 kann
man das ganze Testen, und bekommt noch einen ATMEGA8 dazu.
Finde ich doch mal ne coole Idee, oder ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.