Hallo Jan,
vielleicht ist dies von Interesse für Dich ....
http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm
Laut Beschreibung läuft das Ganze ab einem Mega8 16MHZ ... PAL / VGA auswählbar ...
Gerry
Genau das habe ich gemeint.ausgänge für vsync und hsync die müsste man doch anstelle des timers als interrupt nehmen können
Der Mega hätte mit der Abtrennung der Synchronimpulse gar nix mehr zu tun.
Der 1881 erzeugt sogar Odd/Even für die Halbbilderkennung.
http://www.national.com/pf/LM/LM1881.html
Wobei der nicht direkt einen H-Impuls erzeugt, man kann aber warscheinlich den "Back Porch" (hintere Schwarzschulter) Ausgang verwenden. Der liegt nur Zeitlich etwas weiter hinten als der H-Impuls.
Der GS4981 von Gennum hat an Stelle des ODD/EVEN Ausgangs einen H Impuls.
http://www.gennum.com/video/pdf/52023DOC.pdf
Gruß
Christopher
Hallo Jan,
vielleicht ist dies von Interesse für Dich ....
http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm
Laut Beschreibung läuft das Ganze ab einem Mega8 16MHZ ... PAL / VGA auswählbar ...
Gerry
Hallo,
hier schon mal eine erste Test-Version des
40x25 Programmes für den Mega8-16.
Wer das gern mal ausprobieren möchte...
Mich würde interessieren, ob alles richtig funktioniert.
Die Beschaltung ist etwas anders als bisher, aber die Terminalfunktionen
sind die gleichen, wie früher in diesem Thread beschrieben.
Beim Rumstöbern im Web habe ich noch einige Anregungen bekommen,
wie ich das noch wesentlich verbessern könnte.
Aber das braucht Zeit, denn da müsste ich vieles völlig neu machen.
Gruß Jan
Code:;Der RSR232 Eingang wird an Rxd (Pin2) mit TTL-Pegel angeschlossen. ;Der RSR232 Ausgang TxD wird nicht benutzt. ; ;Die Baudrate kann über drei Jumper an PortD2-4 (Pin4,5,6) eingestellt werden. ;Wenn nichts angeschlossen wird (Pins offen),ist 9600 Baud eingestellt. ;Die gewählte Baudrate wird nach dem Einschalten übernommen, ;und wird auf dem Bldschirm angezeigt. ;Es werden die Parameter 8 Bits, 1 Stopbit, no Parity verwendet. ; ;Baudrateneinstellung: ;Pin 6 5 4 Baud ;--------------- ; 1 1 1 9600 ; 1 1 0 19800 ; 1 0 1 4800 ; 1 0 0 2400 ; 0 1 1 1200 ; 0 1 0 300 ; 0 0 1 110 ; 0 0 0 9600 ; ; ; ;Folgende Steuerzeichen können genutzt werden: ; ;Zeichen Taste Code-HEX Code-DEZ Funktion ;-------------------------------------------- ; CR Ctrl-J 0D 13 Cursor auf Anfang der Zeile setzen ; LF Ctrl-M 0A 10 Cursor eine Zeile tiefer setzen ; FF Ctrl-L 0C 12 Bildschirm löschen ; SO Ctrl-N 0E 14 Cursor auf Spalte X setzen. ; X ist das nächste Zeichen und muss kleiner 28dez sein ; SI Ctrl-O 0F 15 Cursor auf Zeile Y setzen. ; Y ist das nächste Zeichen und muss kleiner 24dez sein ;
Hallo Jan,
ich habe den neuen Code gerade getestet. Atmega8 mit 16MHZ Ressonator, Beschaltung nach Deiner Vorgabe.
Das Programm läuft, leider ist aber außer etwas "flackern" nichts auf dem Bildschirm (LCD als auch TV) zu sehen.
Rein optisch schaut es so aus, als ob der Chip mit der falschen Frequenz läuft .... (falsched Timing)
Nachtrag
Der selbe Chip mit der "alten" Version avrvid_m8-16.hex geflashed und der original Beschaltung läuft ohne Probleme und zeigt ein sehr stabiles Videobild.
Viele Grüße
Gerry
Hi Gerry,
kann ich mit nicht erklären.
Wenn es mit dem alten Programm läuft,
brauchst du nur den 560 Ohm Widerstand umhängen von Pin 14
auf Pin 15 oder 17 und die beiden Pins 15 + 17 miteinander verbinden.
Dann sollte es gehen.
Mal sehen, ob es noch jemand anders mal ausprobiert.
Übrigens, wenn du mit ISP flasht, muss die Verbindung
von Pin 15 + 17 aufgetrennt werden und der 560 Ohm
muss von dem Pins ab. Sonst klappt das flashen nicht.
(Jedenfalls bei meinem STK-500)
Hast du ein Scope, um dir das Signal mal anzusehen ?
Gruß Jan
Hallo Jan,
hab gerade nochmals Alles getestet. Flashen geht ohne Probleme.
Das Programm läuft auch, aber bei der Verwendung mit einem 16MHZ Reso. bekomme ich kein Bild.
Wenn ich dann z.B. nur auf interne 8MHZ RC umfuse, sehe ich Teile des Bildes überproportional groß auf dem Screen. Die Fuse zurückgesetzt auf ext Xtal highFreq. (16MHZ), bleibts beim Flackern, d.h. kein Bild in Sicht ...
Zur Sicherheit habe ich auch nochmals das alte Programm, geflashed und den 560 Ohm umgehängt, und voila, Alles läuft wie geschmiert ....
Osc. hab ich hier leider keines zur Verfügung ....
Gruß Gerry
p.s. ich habe Dir gerade noch eine PM geschickt ....
Hallo Jan,
bedingt Entwarnung. Nach einem Tag herumsuchen habe ich herausgefunden, was schief läuft.
Die gute Nachricht zuerst, Dein Programm läuft super ....
Was ich hier feststellen konnte, ich verwende hier 2 unterschiedliche Atmega8 Chips.
ATMEGA8-16PI
ATMEGA8-16PU
Soweit ich der Typenbeschreibung entnehmen konnte, ist die PU Version RoHS konform und bleifrei. Soweit so gut.
Nur hat genau die PU Version Probleme mit 16MHZ. Selbst das Programmieren scheitert, wenn ein 16MHZ Reso angeschlossen ist.
Das Programm auf eine PI Version geladen, und voila, läuft wunderbar mit 16MHZ
Vielleicht weiß jemand hier die detailierten Unterschiede der PI und PU Version?
Viele Grüße
Gerry
Das selbe Problem habe ich mit einem Atmega 8-8PU bei der Grundversion. Auch ein flimmerndes Bild. Liegt also am Chip.
Hallo Jan,
erstmal ne saugute Nachricht. Es läuft. Nachdem ich das ganze Wochenende herumgespielt habe, kann ich auch definitiv sagen, daß das beschriebene Phänomen nichts mit den unterschiedlichen Chip-Typen zu tun hat.
Rechner neu gebootet, Verbindungen neu gezogen, und Alles läuft als hätte es nie Probleme gegeben.
Es kann gut sein, daß es da irgendein Seiteneffekt gegeben hat, welcher den Fehler verursacht hat ....
Auf jeden Fall läuft Dein Programm tadellos, d.h. die 40x25 Darstellung auf einem 16MHZ Atmega8 ist einwandfrei.
EIne Sache ist mir beim Terminalteil aufgefallen (2400 Baud). Wenn ich den Screen lösche, und dann nur Werte hintereinander ausgebe, also beginnend in der ersten Zeile, habe ich nach der Ausgabe in der 5. Zeile ein Sprung, d.h. der Cursor springt dann in die 25. Zeile und macht dort die nächsten AUsgaben. Alles darauffolgende Scrollen geht einwandfrei.
Viele Grüße
Gerry
Hallo Gerry,Danke für den Hinweis !der Cursor springt dann in die 25. Zeile und macht dort die nächsten AUsgaben
Ich kann diesen Fehler aber bei mir nicht nachvollziehen.
Ich habs einfach probiert mit einem Terminalprogramm
und dann per PC-Tastatur:
Erst Bildschirm löschen (Ctrl-L), und dann immer weiter
einfach nur "normale" Zeichen ausgeben klappt bei mir
einwandfrei bis zum Bildschirmende.
Was gibst du denn da aus ? Sind vielleicht ein paar Steuerzeichen
dabei ?
Gruß Jan
P.S: Übrigens werde ich noch heute eine neue Version hier einstellen,
komplett mit Quellcode, dann tritt das Problem vielleicht auch bei dir
nicht mehr auf.
Lesezeichen