Forum: Mikrocontroller und Digitale Elektronik VGA Terminal mit ATMega644


von Georg G. (df2au)


Angehängte Dateien:

Lesenswert?

Auf http://www.ags.tu-bs.de/?id=e.lab:projekte:avrvga ist ein VGA 
Terminal (640*480, monochrom) mit einem ATMega beschrieben. Hier im 
Forum ist es der Thread Beitrag "AVR VGA Terminal"

Für dieses Projekt will ich Platinen beschaffen (80mm*100mm, zweiseitig, 
Lötstopmaske, kein Bestückungsaufdruck). Der Preis wird vermutlich € 2.- 
pro Stück plus Versand (Brief) sein.

Wer Interesse hat, melde sich bitte per PN.

Das Schaltbild hänge ich hier als Info an.

von stefanus (Gast)


Lesenswert?

Sorry, aber sind VGA Monitore nicht ein klein wenig veraltet? Kann man 
die überhaupt noch kaufen?

von matrixstorm (Gast)


Lesenswert?

Ne, ich find VGA schon noch OK.

Aber gibts zu dem Projekt denn noch sowas wie Gerber/Boardfiles?

Oder designest du die Platine neu?

von karadur (Gast)


Lesenswert?

Hallo

habe Interesse an 2 Platinen

von Dario B. (Gast)


Lesenswert?

> Sorry, aber sind VGA Monitore nicht ein klein wenig veraltet? Kann man
> die überhaupt noch kaufen?

sag' nichts: mein 24-zoller von samsung hat tatsächlich neben hdmi auch 
noch 'nen vga-eingang.

von Georg (Gast)


Lesenswert?

stefanus schrieb:
> Sorry, aber sind VGA Monitore nicht ein klein wenig veraltet? Kann man
> die überhaupt noch kaufen?

Solange PCs noch im VGA-Modus starten, muss das jeder Monitor können. 
Was sie nicht mehr können sind TV-Frequenzen.

Georg

von gvs (Gast)


Lesenswert?

Georg schrieb:
> stefanus schrieb:
>> Sorry, aber sind VGA Monitore nicht ein klein wenig veraltet? Kann man
>> die überhaupt noch kaufen?
>
> Solange PCs noch im VGA-Modus starten, muss das jeder Monitor können.
> Was sie nicht mehr können sind TV-Frequenzen.

Dumm nur das es eigentlich keine analoge Schittstelle mehr dafür gibt, 
oder glaubst du wirklich dass DVI mit Anlogeingang an digitalen Geräten 
zukunftsfähig ist?
Und ob der PC auch zukünftig noch ein VGA Bild produziert oder nicht ist 
doch dabei völlig egal.

von Christian B. (casandro)


Lesenswert?

gvs schrieb:
> Dumm nur das es eigentlich keine analoge Schittstelle mehr dafür gibt,
> oder glaubst du wirklich dass DVI mit Anlogeingang an digitalen Geräten
> zukunftsfähig ist?

Naja, so lange 99,999% aller Projektoren in Firmen nur ein VGA-Kabel zum 
Tisch darunter liegen haben, wird VGA weiter existieren.

von Georg G. (df2au)


Lesenswert?

matrixstorm schrieb:
> Aber gibts zu dem Projekt denn noch sowas wie Gerber/Boardfiles?

Es gibt alles dazu auf der Seite der TU-BS oder bei Bedarf von mir.

Zu "warum VGA?": Natürlich ist das aus der Steinzeit. Ich nehme das als 
Debug Terminal für diverse Schaltungen. Ein alter 17" Monitor, ein 
Hackbrett und diese kleine Zigarettenschachtel. Mit extra serieller 
Schnittstelle per USB am PC habe ich keine allzu guten Erfahrungen.

von stefanus (Gast)


Lesenswert?

Ich stelle mir die Programmierung spannend vor. Das war bestimmt nicht 
einfach, das richtige Timing für die Ausgabe hinzubekommen. Immerhin 
muss der Controller alle 8 Takte ein Byte ausgeben.

Wann hat er überhaupt Zeit, die auszugebenden Bytes zu berechnen?

von Stephan B. (matrixstorm)


Lesenswert?

stefanus schrieb:
> Wann hat er überhaupt Zeit, die auszugebenden Bytes zu berechnen?

War der nicht bereits auf 25MHz uebertaktet?

MfG

von Falk B. (falk)


Lesenswert?

@ stefanus (Gast)

>Ich stelle mir die Programmierung spannend vor. Das war bestimmt nicht
>einfach, das richtige Timing für die Ausgabe hinzubekommen.

Mit dem richtigen Trick7Konzept geht das. Das ist nicht neu. BAS 
Videosignale wurden auch schon per AVR erzeugt, VGA hat hat mindesten 
doppelte Zeilenfrequnz.

>Wann hat er überhaupt Zeit, die auszugebenden Bytes zu berechnen?

Es reicht. Eine Verschnaufpause und deutlich Rechenzeit gibt es kurz 
zwischen den Zeilen (Horizontale Austastlücke) und länger zwischen den 
Bildern (vertikale Austastlücke). Bei 31,x kHz Zeilenfrequenz immer noch 
schnell genung, den UART per Polling abzufragen.

von c-hater (Gast)


Lesenswert?

Falk Brunner schrieb:

> Mit dem richtigen Trick7Konzept geht das.

Jepp. Und das Konzept heißt: Sage dem Controller selber, was er machen 
soll, überlaß' das nicht dümmlichen C-Compilern, denn die können das 
längst nicht so gut. Oder anders ausgedrückt:

Only ASM rules.

> Das ist nicht neu.

Das allerdings ist leider nur zu wahr. Leider ist es bis heute nicht 
möglich, nur mit einem AVR-Controller eine (monochrome) Vollgrafik in 
VGA-Auflösung anzubieten, weil Atmel einfach keinen im Sortiment hat, 
der dafür genug SRAM intern bieten würde. Die dafür nötige 
Rechenleistung hingegen haben sie schon seit langem.

So muß man sich leider seit Jahren schon auf einige VGA-Textmodi 
beschränken. Oder monochrome Vollgrafik in QVGA (allerdings mit 
VGA-Timing, exakt entsprechend "VGA" (im engeren Sinne) oder auch dem 
256Farben-Modus von SVGA).

Alles keine große Kunst, wenn man programmieren kann, insbesondere in 
der einzigen Sprache, die eine optimale Ausnutzung der verfügbaren 
Resourcen ermöglicht. Und nein, das ist definitiv nicht C...

von Falk B. (falk)


Lesenswert?

@ c-hater (Gast)

>Only ASM rules.

Jaja. Wer einen Controller missbraucht, um die niedere, geradezu 
triviale Aufgabe eines Zeichengenerators zu übernehmen, frisst auch 
kleine Kinder. ASM-Programmierer sowieso ;-)

>Das allerdings ist leider nur zu wahr. Leider ist es bis heute nicht
>möglich, nur mit einem AVR-Controller eine (monochrome) Vollgrafik in
>VGA-Auflösung anzubieten, weil Atmel einfach keinen im Sortiment hat,
>der dafür genug SRAM intern bieten würde.

Wozu auch? Siehe oben. Ausserdem gibt es längst genügend Alternativen. 
Diese VGA/Terminalgeneratoren sind "nur" eine Leistungsdemonstration der 
AVRs bzw. anderer Controller, nicht wirklich die Hauptanwendung.

> Die dafür nötige
>Rechenleistung hingegen haben sie schon seit langem.

Für volles VGA? Kaum.

>VGA-Timing, exakt entsprechend "VGA" (im engeren Sinne) oder auch dem
>256Farben-Modus von SVGA).

Kauf dir ein passendes LCD mit Intelligenz und fertig.
Du wirst die Unmengen alter VGA Monitore mit diesem Terminal nicht vor 
der Verschrottung retten.

>Alles keine große Kunst, wenn man programmieren kann, insbesondere in
>der einzigen Sprache, die eine optimale Ausnutzung der verfügbaren
>Resourcen ermöglicht. Und nein, das ist definitiv nicht C...

https://de.wikipedia.org/wiki/Fetischismus_%28Religion%29

von Frank K. (fchk)


Lesenswert?

c-hater schrieb:

> Das allerdings ist leider nur zu wahr. Leider ist es bis heute nicht
> möglich, nur mit einem AVR-Controller eine (monochrome) Vollgrafik in
> VGA-Auflösung anzubieten, weil Atmel einfach keinen im Sortiment hat,
> der dafür genug SRAM intern bieten würde. Die dafür nötige
> Rechenleistung hingegen haben sie schon seit langem.

Dann nimmt man halt was anderes. ZB PIC24FJ256DA206. 96k RAM eingebaut, 
Grafikcontroller drin, Grafikbeschleuniger drin. Und das alles in einem 
64 Pin TQFP. Es gibt auch ein Leben nach dem AVR.

fchk

von Georg G. (df2au)


Lesenswert?

Zur Info: Die erste Charge der Platinen ist vergeben. Die Bestellung 
läuft.

von Georg G. (df2au)


Lesenswert?

Update: Leiterplatten sind produziert und in der Post.

von Harald N. (haraldn)


Lesenswert?

Hallo Georg!

Hast du vlt einen anständigen Schaltplan mit Stückliste erstellt, wo 
auch die richtigen Bauteile mit ihren entsprechenden Werten verzeichnet 
sind? Auf der Projektseite ist das ja nicht unbedingt der Fall. Klar 
kann ich mir selbst erarbeiten und heraussuchen, aber wenn's schon 
jemand gemacht hat...

Danke und LG

von Georg G. (df2au)


Lesenswert?

Die Platinen sind nach den Unterlagen auf der TU-BS Seite gefertigt. 
Eagle meint, Schaltbild und Platine seien konsistent. Als muss das 
Schaltbild (nicht das PDF, das Schaltbild aus dem ZIP!) dort auch zum 
Bestückungsdruck passen und eine BOM sollte man daraus auch generieren 
können.

Noch ein Hinweis: Der Quelltext auf der Projektseite lässt sich nicht 
fehlerfrei linken. Im ZIP-File sind aber ein ELF und ein HEX File 
enthalten, die man auf einen ATMega644 flashen kann und die 
funktionieren.

Momentan ist hier etwas Stress. Eventuell schaffe ich es am Wochenende, 
einen Satz konsistente Unterlagen zu erstellen.

von Joachim B. (jar)


Lesenswert?

c-hater schrieb:
> Das allerdings ist leider nur zu wahr. Leider ist es bis heute nicht
> möglich, nur mit einem AVR-Controller eine (monochrome) Vollgrafik in
> VGA-Auflösung anzubieten, weil Atmel einfach keinen im Sortiment hat,
> der dafür genug SRAM intern bieten würde. Die dafür nötige
> Rechenleistung hingegen haben sie schon seit langem.

hast du dir mal den m1284p angesehen ?

ich war erstaunt 16kB Ram warum gibts das nicht im m328p ? oder einen 
Arduino mit dem ?

der 1284p hat sogar mehr SRAM als der m2560

von Georg G. (df2au)


Angehängte Dateien:

Lesenswert?

Dann mal auf die Schnelle Schaltbild, Bestückungsplan und BoM für die 
aktuelle Platine. Um die Soft kümmere ich mich später (oder ein anderer 
tut es).

von Georg G. (df2au)


Lesenswert?

Noch ein Hinweis: mit einem ATMega644 muss man die Keyboard Routinen aus 
dem "alten" Thread auf MKC.NET nehmen und anpassen. Der Quältext auf der 
aktuellen TU-BS Seite möchte einen ATMega mit 2 UARTs sehen, ATMega1284p 
als Beispiel.

Der Linker Fehler lässt sich bei Verwendung eines ATMega1284p 
beseitigen, wenn man in den Custom Options big_align passend rauf setzt, 
auf 0x6000 zum Beispiel.

von Harald N. (haraldn)


Lesenswert?

Danke, das macht schon mal einiges klarer!

von Harald N. (haraldn)


Lesenswert?

Hallo!
Ich hab's noch nicht gebaut und probiert. Aber ich hab mir jetzt mal die 
Schaltung genauer angesehen. Reset ist ja komplett 
unbeschaltet-funktioniert das?

von Georg G. (df2au)


Lesenswert?

Klar tut es das. Jeder AVR kann damit leben (oder vegetieren?). Ein 
Kondensator und ein Pullup am Reset wären hilfreich gegen Störungen. 
Ohne alles ist es recht hochohmig. Aber notfalls geht es auch so.

von Harald N. (haraldn)


Lesenswert?

Dann is ja gut ;-)
Vlt lässt sich ja die Standard-Reset-Beschaltung dazufriemeln

von Harald N. (haraldn)


Lesenswert?

Statt den 0 Ohm Widerständen funktionieren auch Drahtbrücken oder 1 Ohm?

von Georg G. (df2au)


Lesenswert?

Harald Nagy schrieb:
> Statt den 0 Ohm Widerständen funktionieren auch Drahtbrücken oder
> 1 Ohm?

Wie viel Ohm hat eine Drahtbrücke? Annähernd 0 würde ich vermuten.

Ich habe mit Drahtbrücken bestückt.

von karadur (Gast)


Lesenswert?

Hallo

die erste LP macht schon mal die Demo-Seite auf dem Monitor.

RS232 und Keyboard tut noch nicht. Liegt wahrscheinlich am falschen 
Quellcode.

Im ELF-File fehlt die Tabelle der Fuses.

von Georg G. (df2au)


Lesenswert?

karadur schrieb:
> Liegt wahrscheinlich am falschen
> Quellcode.

Wenn du Erfolge hast, bitte posten. Der Kiosk Mode kann ja wohl raus. 
Welchen Prozessor nimmst du?

von karadur (Gast)


Lesenswert?

Hallo

Atmega644P 20

Oszillator 25,175 MHz ( von einer alten VGA-Karte )

Da die Leiterbahnen sehr dünn sind habe ich vorsichtshalber auf der 
Unterseite der LP  zwischen VCC und GND und AVCC und GND jeweils 100n in 
0805 eingelötet.

Der Rest ist so wie in den Unterlagen.

Ich habe es mit drei Monitoren getestet. Der alte Sony erkennt zwar die 
Sync-Signale aber zeigt kein Bild.  Ein Hansol zeigt "Out of Range".

Mit dem Samtron geht es.

Nach dem Scope passt das Timing bzgl. Abstand der Sync-Impulse.

Die Breite habe ich noch nicht getestet.

von karadur (Gast)


Lesenswert?

Nachtrag:

wo ist der andere Quellcode zu finden?

von Georg G. (df2au)


Lesenswert?

karadur schrieb:
> wo ist der andere Quellcode zu finden?

Auf der TU-BS Webseite findest du die "moderne" Version, die mit dem 
aktuellen GCC fast ohne Warnungen übersetzt wird. In den custom linker 
options nur big-align passend setzen, beim 644 sollte 0x6000 gut sein 
(dort wandert der Font hin).

Den alten Quelltext (Keyboard ohne Scancode Übersetzung, einlesen nicht 
via UART) findest du hier im Thread 
Beitrag "AVR VGA Terminal" (mehrere 
Versionen, die letzte ist wohl am besten).

Ich habe momentan leider wenig Zeit. Aber gemeinsam sollten wir ein 
"rundum sorglos Paket" hinbekommen.

von c-hater (Gast)


Lesenswert?

Joachim B. schrieb:

> hast du dir mal den m1284p angesehen ?

(640*480)/8 = 38400

16384 << 38400

Alles klar?

von Joachim (Gast)


Lesenswert?

c-hater schrieb:
> Alles klar?

nü, wer muss den Pixelram haben, OK ich hatte VGA Terminal mit 
TextTerminal verstanden

von Harald N. (haraldn)


Lesenswert?

karadur schrieb:
> Im ELF-File fehlt die Tabelle der Fuses.

Wie müssen die Fuses gesetzt werden?

von Georg G. (df2au)


Lesenswert?

ohne Bootlader, Takt = externer Oszillator, Brown Out falls gewünscht, 
Watchdog an die Leine.

von Harald N. (haraldn)


Lesenswert?

Kannst du das näher angeben? Hab die Angst vor den Fuses noch nicht 
verloren...

von karadur (Gast)


Lesenswert?

Hallo

kennst du diesen Link: http://www.engbedded.com/fusecalc/

von Harald N. (haraldn)


Lesenswert?

Ja, hab aber noch nie für einen Oszillator fusen müssen....
Ext. Clock Startup 6CK + 65ms?
Ohne CKDIV8?

Das würde dann sein: Low: E0 High: 99 Ext: FF

Stimmt das?

Hat sich erledigt. Funzt!

Anmerkung falls es eine nächste Auflage der Platine gibt: Zwischen VGA- 
und Serieller Buchse 5 mm mehr Abstand...

Bleibt nur noch zu klären wie ich meinen Monitor dazu bringe, das ganze 
Bild anzuzeigen ;-)

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

Harald Nagy schrieb:
> meinen Monitor dazu bringe, das ganze
> Bild anzuzeigen

Mein 17" Acer TFT brauchte dazu nur einen Druck auf die Taste 
"Automatischer Abgleich" :-)
Was für einen Monitor hast du? Der verwendete Modus ist eigentlich in 
jedem Monitor drin, ist was ganz übliches.

von Harald N. (haraldn)


Lesenswert?

Ich verwende das LS-7 TFT Display. Funktioniert sonst ganz gut bei zB 
Raspberry. Irgendwie fehlt aber der untere Teil. Leider kann man nichts 
einstellen...
Wenn ich am Wochenende dazu komme werd ich das Board mal am TV 
anstöpseln. Sonst hab ich leider keinen Monitor zur Verfügung.

BTW wenn ich versuche Monitor, Keyboard und RS232 anzustecken startet 
das Board nicht. Evtl zieht das ganze Zeug zu viel Strom? Jeweils nur 
zwei funktioniert (wenn auch keine Konsole erscheint oder das Keyboard 
nicht funktioniert.... aber das liegt vermutlich am Code). Ich 
verwendete das aktuelle mit inkludiertem Hex-File.

von Ronny S. (phoenix-0815)


Lesenswert?

Guten Abend,

hat zufällig einer von euch noch ein oder zwei Sätze der Anschluss 
Buchsen übrig.Die in diesem Projekt verwendet werden.


Gruß und Danke.

Ronny

von Harald N. (haraldn)


Lesenswert?

Neuigkeiten von der Front?

von Georg G. (df2au)


Lesenswert?

Harald Nagy schrieb:
> Neuigkeiten von der Front?

Demnächst... zu viele Projekte, zu wenig Zeit.

von Georg G. (df2au)


Lesenswert?

Zwischenbericht:
Der ATMega644 funktioniert nicht, das zweite UART fehlt. Mit dem 
ATMega644A würde es klappen. Das RAM ist dann aber zu 99% voll. Also 
sollte man gleich den ATMega1284P nehmen.

Die Platine hat einen Fehler. Der Tastatur Takt geht an XCK0 (Pin 1) und 
nicht an XCK1 (Pin 18),wo er hin sollte. Also bitte die Verbindung von 
Pin 18 zum MAX232 auf der Unterseite trennen und einen Draht zwischen 
Pin 1 ud Pin 18 legen.

Eine erste lauffähige Software kommt innerhalb der nächsten zwei Wochen 
- hoffe ich.

von Harald N. (haraldn)


Lesenswert?

Danke soweit. Ich hoffe ich habe einen 1284P herumliegen ;-)

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Hier eine Version mit Propeller.
Beitrag "VT100-Terminal (VGA+PS2)"

von Georg G. (df2au)


Angehängte Dateien:

Lesenswert?

Anbei der erste Versuch einer Software. Abweichend vom Original wird ein 
VT52 Terminal rudimentär emuliert (mein CP/M aus der Steinzeit mag so 
moderne Terminals wie das VT100 nicht, ich bekomme den Wordmaster nicht 
dafür gepatcht).

Es fehlt die Ansteuerung der LEDs in der Tastatur. Da habe ich noch 
keine Idee, wie ich das bei dem engen Timing machen kann.

Es sind nicht alle Tastenkombinationen dekodiert bzw liefern Codes, die 
für dumme Systeme unverständlich sind.

Es ist noch nicht alles entrümpelt. Diverse Dinge, die vermutlich aus 
historischen Gründen im Code enthalten waren, sind nur auskommentiert.

Fehler bitte melden (am besten gleich mit Reparaturanweisung :-) )

von Harald N. (haraldn)


Lesenswert?

Hi!

Endlich mal Zeit gehabt herumzuprobieren...
Also 1284P rein, Platine korrigiert
Serial Terminal funktioniert, Keyboard funktioniert (interessanterweise 
nur mit original PS/2; USB-Tastatur mit Adapter funktioniert nicht)
Ich hab mir jetzt ehrlicherweise den Quellcode nicht angesehen, aber 
kann es sein, dass es keinen VGA-Output gibt? Initialisert wird - da 
sich am Display die Auflösung einstellt. Aber mein Display zeigt dann 
nichts an.
Bei der vorherigen Software hats funktioniert (zwar abgeschnitten aber 
funktioniert)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Harald Nagy schrieb:
> (interessanterweise nur mit original PS/2; USB-Tastatur mit Adapter
> funktioniert nicht)

"USB-Tastatur mit Adapter" funktioniert nur, wenn die Tastatur 
bilingual ist, wenn sie also sowohl USB als auch PS/2 unterstützt. Der 
Adapter ist dumm, der sagt der Tastatur nur, welches Protokoll sie 
verwenden soll.

Und damit ist so ein Adapter für nicht-bilinguale USB-Tastaturen nicht 
zu gebrauchen.

Bei Mäusen ist das übrigens genauso, und war auch "damals" schon so, als 
der Wechsel von Mäusen für RS232 auf PS/2 stattfand.

von karadur (Gast)


Lesenswert?

Hallo

ich habe die letzte Version der Software noch nicht probiert.

Die anderen Versionen machen aber nicht VGA ( 640x480) sondern 640x400.

Ich habe mit einigen Monitoren getestet. Einige können den Modus, andere 
nicht.

Wenn ich mal wieder Zeit habe für das Projekt such mal im Quelltext.

Ich hätte gerne VGA. 640x480 60 Hz.

von Harald (Gast)


Lesenswert?

Hallo!

Es ist zwar schon eine ganze Weile her, aber gibt es Neuigkeiten zum 
Projekt?

Lg

von Georg G. (df2au)


Lesenswert?

Harald schrieb:
> Neuigkeiten

Es funktioniert hinreichend.

von Harald (Gast)


Lesenswert?

Ok. Könntest du deinen aktuellen Quellcode (vieleicht gleich mit 
Hexfile) und Konfiguration online stellen? Geht's jetzt mit dem 
ATmega1284P?

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.