www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Display am External Memory Controller (EMC) eines LPC2468


Autor: Fabian Schuiki (fabianschuiki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen!

Also ich hab folgendes Problem: Ich habe ein Projekt am laufen, welches 
u.a. einen LPC2468 als MCU und einen Densitron OLED als Display 
beinhaltet. Eigentlich wollte ich den 16 Bit Datenbus und die 3 
Steuersignale RD, WR, CS und RS des OLEDs an einem GPIO anhängen und den 
Display so ansteuern.

Nun ist mir zuvor die Idee gekommen, den OLED an den Externen 
Speicherbus zu hängen (da ist bereits ein 16MB SDRAM vertreten). Da 
könnte man den CS des OLEDs an den CS0 für die erste Speicherbank des 
MCU hängen und dann ganz simpel Daten mit dem Display austauschen. 
Sinnvollerweise hängt man den Datenbus D0..15 des OLEDs an den Datenbus 
des EMC D0..15 :), und den RS (Register Select) an eine der 
Adressleitungen.

Dann könnte man im C-Code theoretisch so mit dem Display kommunizieren:
*((unsigned short *)0x80000000) = 0x1234; //Daten gehen ins Instruktionsregister
*((unsigned short *)0x80000002) = 0x5678; //Daten gehen ins Parameterregister

Nun ergibt sich bei mir aber folgendes Problem: Was mache ich mit den 
Signalen RD und WR? Ich Frage mich ob es nicht zu einem Problem werden 
könnte, RD und WR des Displays direkt an OE und WE des MCU zu hängen, da 
beim EMC ja noch die Byte Lane Selects ins Spiel kommen (BLS0..3). Kann 
ich den ARM irgendwie so konfigurieren, dass er alle 16 Bits auf einmal 
schreibt und nicht in 2 Bursts, oder zumindest irgendwie BSL0 an WR des 
Displays hängen, damit dieser beim ersten Byte schon den ganzen Bus 
einliest?

Hat das jemand schon gemacht?

Achja und wegen dem RS: Der müsste doch an den A1 im Falle eines 16 Bit 
Busses, da A0 ja immer LOW ist, oder?


Besten Dank für jegliche Tipps und Anregungen!

Grüsse,
Fabian

Autor: Kai F. (k-ozz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das ganze mal mit dem LPC2468-OEM-Board von EmbeddedArtists 
gemacht.
Folgende Belegung sollte auch bei dir funktionieren:

LPC2468   Display
D0        D0
...       ...
D15       D15
A1        RS
CS0       CS
OE        RD
WE        WR

Autor: Fabian Schuiki (fabianschuiki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besten Dank für den Hinweis, werde ich sofort ausprobieren!

Gruss,
Fabian

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.