Forum: Mikrocontroller und Digitale Elektronik Altes Grafikdisplay (monocrome)


von Hias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich weiß wir hatten das schon oft.
Es geht wieder mal um ein Notebookdisplay!
Es hat 640x480 Pixel. (1bit/pixel) und ist zweigeteilt. (2x 640x240)
Das Display hat jede Menge Row und Column Treiber drauf.
Diese werden über Schieberegister angesprochen.
Wobei ich mir bei den Columns nicht sicher bin ob das wirklich einer
is.
Wenn ich das richtig verstanden hab werden hier immer 4bits auf einmal
ausgegeben.

Wobei ich mir wieder sicher bin sind die Anschluss-Pins:
UD0-UD3 data inputs for the column driver shift register upper part
LDO-LD3 data inputs for the column driver shift register lower part
CL1 clock for row driver shift register
CL2 clock input to the column driver shift register
FLM data input to row driver shift register
Natürlich auch noch die Vorsorgungsspannungen, die sind aber klar.

Im Anhang ist dazu ein Timing Diagramm.(Seite 7)
Wobei dies nicht mein Display ist. CL1 und CL2 ist vertauscht.
Ich hab ein LCM-5505-32NTK.

Meine Frage:
Gibt es dazu einen fertigen Controller?
Kann man das Display mithilfe eines Mega16 ansteuern oder is der zu
langsam?
Was habt ihr sonst noch für Tipps?

von Rufus T. Firefly (Gast)


Lesenswert?

Du hast das im großen und ganzen richtig interpretiert; es werden immer
acht Bits parallel übertragen, vier für die obere und vier für die
untere Hälfte.
Mit einem AVR wird man so ein Display aufgrund der erforderlichen
Datenrate nicht ansteuern können - sieh' Dir mal im Datenblatt die
Seite 7 an. Daraus wird ersichtlich, daß eine komplette Zeile (also 160
Bytes Daten) in 38 .. 76 µsec übertragen werden soll.
Das ist eine Datenrate von 2 bis 4 MByte/sec, die so ein AVR zwar
theoretisch hinbekommt, nicht aber, wenn er noch auch nur irgendwas
anderes machen soll.

Die üblichen Epson-Controller können solche Displays ansteuern, da rid
ein Blick in deren Datenblätter Aufklärung bringen.

Mit 'ner Handvoll Logik-ICs kann man sich so eine Ansteuerung
allerdings auch selber bauen, oder man nimmt den Urvater aller
Videocontroller-ICs, den 6845. Zusätzlich braucht man immer noch 'ne
Handvoll weiterer ICs, nämlich Adress-Multiplexer '151/'251),
Datenbustreiber ('245) und natürlich ein SRAM, das den
Bildschirmspeicher enthält. Da das Display monochrom angesteuert wird
(1 Bit/Pixel) sind zwei 32kByte-RAMs (62256) ausreichend.
Nimmt man je eines für die obere und eines für die untere Hälfte, dann
braucht man noch ein Ausgangslatch, um die Nibbles abwechselnd an das
Display zu übertragen.
Das ist zwar 'ne vertiable Lötarbeit, aber durchaus realisierbar, da
nirgendwo sonderlich hohe Taktfrequenzen auftreten.

von Benedikt (Gast)


Lesenswert?

Es gibt fertige Controller (S1D13704/5) mit 40 bzw. 80kb SRAM intern.
Kosten so ca. 30€
Man kann es aber auch mit einem AVR und 64kB externem RAM machen, das
in einer Pseudo DMA Configuration angeschlossen wird:
RD\ vom uC wird gleichzeitig als Takt für das LCD verwendet. So muss
der uC nur Daten lesen und die landen dann automatisch im LCD.
Ich habe das schonmal ausprobiert, allerdings ist der AVR ziemlich an
der Grenze, wenn er sowohl Daten ausgeben als auch neue nachladen sol.
Ich hatte dafür einen 8515 verwendet, der per UART die Daten bekam. Man
konnte damit ein BMP laden das dann angezeigt wurde. Mit ein paar
Befehlen und einem weiteren uC ist auch eine Textdarstellung möglich.

von Hias (Gast)


Lesenswert?

Danke schon mal!
Da sagt doch einer man braucht gleich ein Datenblat fürs Display.
Na gut nicht jedes is so einfach aufgebaut wie des...

Ich möchte keine 30€ für so einen Controller ausgeben.

Möglichkeiten:
1.
Ich verwende eine extra µc für das Display
Ich denke das des bei so 16MHz schon irgendwie realisierbar is.
Was denkt ihr?
Ich möchte des dann so Handhaben:
In der Software is eine Schleife die die Daten vom RAM immer an das
Display ausgibt.
Wenn er einmal durch is schaut er ob es neue Daten gibt, wenn ja ab ins
RAM damit und los gehts von vorn. Datenausgeben, neue Daten holen.
Was ich mir noch ned vorstellen kann in welcher Form ich die Daten
übermittle.
Am einfachste denke ich wäre es feste Funktionen auch noch im µC zu
Speichern, wie z.B. Schreibe Text Adresse, Größe) und dann die Daten in
ascii form oder so.
So könnte man sicherlich auch Linien,Rechtecke oder Kreise
realisieren.
Die Frage is ob das ein einziger µC alles schafft?
Ich weiß auch nicht in welcher Form ich die Daten für eine Grafik
übermittlen soll. Wie geht sowas?
Kann man eigentlich mit zwei verschiedenen µc auf ein RAM zugreifen?

Wie würdet ihr des machen???

2. Möglichkeit:
Die von Rufus.
Man baut sich des Ganze mit ein paar IC auf.
Davon hab ich allerdings keine Anhnung. Zumindest wenig.
Gibts da jemanden der schon sowas gemacht hat und wo ich mir Infos
holen kann?

MfG Hias

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

zu 1)
Ein uC schafft das nicht, ich habe das ja schonmal gemacht.
Also ein uC ist nur dafür zuständig das LCD anzusteuern und neue Grafik
Daten ins RAM zu laden, der zweite berechnet die Kreise, Linien, Texte
usw.
Ich habe mal die Software angehängt, die zwar (warscheinlich läuf) aber
noch eine Menge Fehler enthält.
Es ist etwas aufwendig, da ein Byte Daten in zwei Nibble zerlegt werden
muss, da in jedem Byte im RAM ein Nibble für die obere und eines für die
untere Hälfte gespeichert wird. Ach ja, der RAM muss ausreichend schnell
sein, um bei 20MHz Taktfrequenz des AVR noch die Daten ohne Wait States
liefern zu können.

von Hias (Gast)


Lesenswert?

Hallo!
Ok dann werd ich woohl zwei nehmen müssen...
Wie schließt man den RAM am AVR am besten an?
Wo find ich da Info's?
Ich hab noch jede Menge SRAM von einem alten 486 rumliegen. Die könnte
ich ja verwenden.
Ach ja ich hab nur 16MHz ned 20MHz?
Aber des düfte kein Problem sein.

Kann ich eigentlich mot 2 AVRs auf ein RAM zugreifen?

MfG Hias

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.