www.mikrocontroller.net

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


Autor: Michael U. (amiga)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Michael U. (amiga)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Gruß aus Berlin
Michael

Autor: Michael U. (amiga)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Gruß aus Berlin
Michael

Autor: Michael U. (amiga)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Steffen (Gast)
Datum:

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

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.