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:
1 | *((unsigned short *)0x80000000) = 0x1234; //Daten gehen ins Instruktionsregister
|
2 | *((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