VGA Terminal mit ATMega644

OP #3830601
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.
Angehängte Dateien:
Gast #3830891
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.
Gast #3831105
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.
OP #3831156
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.
Gast #3832243
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?
#3832450
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.
Gast #3833361
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...
#3833563
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
#3833584
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
Gast #3853227
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
OP #3853297
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.
#3853315
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
OP #3853479
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.
Gast #3863339
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.
OP #3863928
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.
Gast #3873093
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 ;-)
Gast #3873639
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.
OP #3958421
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.
OP #3959948
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 :-) )
Angehängte Dateien:
Gast #4011180
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)
Persönliche Seite #4011205
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.
Gast #4011796
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren