Forum: Projekte & Code "serielles" Display 640x64 UMS 7064 in ASM


von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

eigenlich sind Display-Ansteuerungen ja die Domäne von Benedikt K., aber 
ich will mal in seinen Gefilden wildern... ;-)

Ich mach mich auch mal etwas unbeliebt mit einer Auktionsnummer 
250238965212
Ich habe da keine Aktien dran, habe von dort aber 2 Displays bezogen, 
allerdings ist der Preis inzwischen um 2 Euro gestiegen???

Nun zur Sachen. Eigentlich sollte es nur eine "analoge Radioskala mit 
Zeiger und Sendernamen" werden, dann ergaben sich aber noch ein paar 
Überlegungen mehr.

Stand ist jetzt: seriell Ansteuerbar, übliche Terminal-Kommandos und 
einige ESC-Sequenzen.

CPU: Mega8515 mit 16MHz (minimal 12MHz).
externer Ram: 8K oder 32k
externer paralleler Flash: 128kx8 oder 256kx8
Seriell In/Out mit RS232-Pegel oder seriell In mit TTL-Pegel
Baudrate 38400
CPU-Last durch Display-Refresh ca. 35%

Der externe Flash dient als Font-Speicher und für feste Bildschirme.
Vom Ram werden z.Z. nur 8k genutzt für 2 änderbare Bildschirme.
Umschaltung zwischen den Fonts, Screens (das sind die beschreibbaren 
Rambereiche) und Dispalys (das sind die angezeigten Bereiche) mit 
ESC-Sequenzen.
Programmieren des parallen Flash mit dem AVR über Terminal-Programm.

Curosr-Steuerung Pixelgenau möglich, Fontgrößen bis (vorerst?) 32x48 
werden in beliebiger Folge geschrieben.

Einiges davon fehlt noch, z.B. die pixelgenaue Font-Positionierung.

Das kommt demnächst noch nach, auch einige minimale Grafiksachen.
Displayverknüpfungen sind noch nicht drin, aber mit wenig Aufwand zu 
programmieren (AND/OR/XOR zwischen beliebigen Screens).

Was ich noch angedacht habe; den Kram mit der Benedikt K. Ansteuerung 
vom 640x480 oder 320x240 in Graustufen zu kombinieren...

Vielleicht interessiert ja auch Benedikt K. der Kram. :-)

Es wäre auch kein Problem, das alles nach C zu portieren, der nötige 
ASM-Teil ist die IRQ für den Refresh und 5 fest genutzte Register, an 
den Registern ließe sich aber noch was machen.

So, nun zerreißt mich für das noch unfertige Machwerk. ;)

Gruß aus Berlin
Michael

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

die momentane Schaltung für die "schnell mal schauen" ;)

Gruß aus Berlin
Michael

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

von hinten noch mit nur 9k Ram und ohne 74ACT04.

Gruß aus Berlin
Michael

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

noch ein Bild von Teraterm beim Flash programmieren.

Die Flash stammen von alten Mainboards, bisher getestet sind:

128kx8, SST 29EE010-150
128kx8, ATMEL 29C010A-12
128kx8, Winbond W29C020-12

alle laufen interessanterweise stabil bei 16MHz ohne Waitstates und 
lassen sich auch so zuverlässig programmieren...

Gruß aus Berlin
Michael

von Steffen (Gast)


Lesenswert?

Hallo Michael,

du schreibst, dass die Last wegen dem refresh bei 35 % liegt. Ist ein 
refresh zwingend notwendig da sonst die Inhalte verschwinden?

Gruß
Steffen.

von Benedikt K. (benedikt)


Lesenswert?

Ja, das ist bei LCDs zwingend notwendig, da immer nur eine Zeile 
gleichzeitig angezeigt werden kann.

von Steffen (Gast)


Lesenswert?

Ja. In der Zwischenzeit hab ich das auch verstanden. Bei diesem Display 
ist in dem Sinne kein Grafikcontroller (o. ä.) drauf und die Ansteuerung 
muss selbst erstellt werden.

Da ja etwa 5 kiB notwendig sind um den gesamten Displayinhalt 
vorzuhalten benötigt man ja einen Controller mit 8 kiB SRAM (wenn man 
ihn nicht extern haben möchte). Dazu ist z. B. ein mega640 auf der 
Website von Atmel. Hat jemand eine Idee, wo ich ihn als Privatperson 
kaufen kann? Bei Reichelt und weiteren kleinen Anbietern habe ich ihn 
nicht finden können :-(

Steffen.

von Joerg W. (joergwolfram)


Lesenswert?

Meiner Rechnung nach braucht man nur

480*64/8 = 3840 Bytes RAM für das Display

Somit sollte ein Controller mit 4K RAM reichen, allerdings bleiben nur 
noch 256 Byte für anderes übrig.

Gruß Jörg

von Steffen (Gast)


Lesenswert?

:-)

Stimmt. Dann geht ja auch ein kleinerer. Es bleibt zwar nicht mehr viel 
übrig für andere Sachen - aber das ist dann wenigstens eine 
Herausforderung.

Danke für den Hinweis.

von Steffen (Gast)


Lesenswert?

Mist - wieder zu schnell geschrieben. Das Display hat aber 640x64/8 (?) 
= 5120 kiB.

von Joerg W. (joergwolfram)


Lesenswert?

Nein, da habe ich mich versehen (zzw. "verlesen"). Die Displays, von 
denen ich einen ganzen Karton ersteigert hatte, sind UMS7024 und haben 
480x64 Pixel.

Gruß Jörg

von Michael U. (amiga)


Lesenswert?

Hallo,

ist richtig, 480/8 = 60 Byte pro Zeile * 64 Zeilen = 3840 Byte.

4k reichen also. Mit dem Rest (256 Byte) kommt man zumindest in ASM auf 
jeden Fall aus, über das Verhalten von C kann ich dazu nichts sagen.

Ein sinnvoller Font kostet noch einiges an Flash, da sind aber 8k auch 
mehr als ausreichend, die haben die 4k-Ram-Typen sowieso.

Gruß aus Berlin
Michael

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.