Forum: Mikrocontroller und Digitale Elektronik Tips zur Displayansteuerung mit DualController gesucht


von olaf (Gast)


Lesenswert?

Moin da draussen,

Ich bin gerade dabei ein Grafikdisplay anzusteuern zu dem ich keine 
Daten habe und brauche etwas Inspritation weil mir gerade die Ideen 
ausgehen. :)

Das Display hat 256x128pixel und ist aufgeteilt in zwei Controller. Es 
ist zweimal der S6B0741 von Samsung verbaut.

Die Leitungen zur Ansteuerung der beiden Display sind komplett parallel 
geschaltet bis auf jeweils eine eigene /CS Leitung.

Das Display wird im sogenannten 3Wire-SPI Mode angesprochen. Es gibt 
also keine Umschaltung zwischen Kommando und Daten.

Ich habe den Schaltplan auf der Displayplatine grob aufgenommen und 
weiss daher in welchen Modis ich das Display ansteuern und konfigurieren 
muss.

Ich intialisiere nun die beiden Controller und gebe am Ende ein 
Testkommando aus das alle Pixel anschaltet. Das funktioniert auch, aber 
nur bei einem Controller! Der andere stellt sich einfach tod. Das 
Display ist aber nicht defekt, ich habe 10Stk von den Teilen und jedes 
verhaelt sich gleich. Beim rum messen ist es bisher einmal passiert das 
die andere Seite auch etwas angezeigt hat. Das konnte ich aber nicht 
reproduzieren.

Ich habe alle Leitungen bis an den Displaycontroller durchgemessen und 
kann
kein Fehler finden. Ich habe natuerlich auch mal probiert jeweils nur 
einen der Controller anzusteuern, oder die Reihenfolge geaendert, aber 
es laeuft immer nur derselbe. Die Signale sehen gut aus und der 
funktionierende Controller laeuft reproduzierbar gut.

Gibt es bei solchen LCDs mit zwei Controllern irgendwelche 
Besonderheiten?
Muessen sie vielleicht unterschiedlich initialisiert werden?
Mir ist aufgefallen das beide Controller sich die Stuetzkondensatoren an 
V1 bis V5 teilen, allerdings eigene Kondensatoren zur 
Spannungsvervielfachung haben.

Olaf

von Joe F. (easylife)


Lesenswert?

Wie behandelst du denn die beiden CS/ Leitungen?
Du musst ja beide Controller jeweils einzeln initialisieren, und dann 
auch nacheinander die Kommandos an jeweils einen der Controller zum 
aktivieren aller Pixel schicken.

von olaf (Gast)


Lesenswert?

> Wie behandelst du denn die beiden CS/ Leitungen?

So:

void usart0_CS_Low(unsigned char controller)
{
  if ( 0 == controller )
    GPIO->P[gpioPortE].DOUTCLR = (1<<8);  //CS0 auf Lowpegel
  else
    GPIO->P[gpioPortE].DOUTCLR = (1<<13); //CS1 auf Lowpegel

}

> Du musst ja beide Controller jeweils einzeln initialisieren,

Ja richtig. Nach meinem Verständnis sind das ja zwei vollkommen 
getrennte Displays die sich nur ein Glas teilen. Bis auf die Kleinigkeit 
das sie sich auch die fuenf Stuetzkondensatoren an ihrem 
Spannungsvervielfacher teilen. Allerdings nicht die Pumpkondensatoren, 
die hat jeder Controller fuer sich extra.

Ich kann auf dem Oszi sehen das die jeweilige CS Leitung korrekt bedient 
wird. Ich glaube nicht das das Problem so einfach ist. :)

Olaf

von spess53 (Gast)


Lesenswert?

Hi

>Du musst ja beide Controller jeweils einzeln initialisieren,...

Warum einzeln, wenn beide Controller gleich initialisiert werden sollen?

MfG Spess

von Dumpfbacke (Gast)


Angehängte Dateien:

Lesenswert?

olaf schrieb:
> Das Display wird im sogenannten 3Wire-SPI Mode angesprochen. Es gibt
> also keine Umschaltung zwischen Kommando und Daten.

So so ....

... und was steht da im Datenblatt?

Eine deiner SPI Leitungen wird wohl das RS bzw C/D (Command/Data)
Signal sein da es kein MISO Signal gibt.

von Joe F. (easylife)


Lesenswert?

Ohne zu wissen mit welchem uC du arbeitest bzw, wie die IOs konfiguriert 
sind, evtl. treiben deine IOs nicht aktiv high und du brauchst Pullups 
an den CS/ Leitungen oder musst die Ausgangstreiber auf push-pull 
konfigurieren...?!

Du könntest auch testweise die CS/ Leitungen mal vertauschen und gucken, 
ob dann die andere Hälfte des Displays korrekt funktioniert.

von Olaf (Gast)


Lesenswert?

> ... und was steht da im Datenblatt?

> Eine deiner SPI Leitungen wird wohl das RS bzw C/D (Command/Data)
> Signal sein da es kein MISO Signal gibt.

Im Datenblatt steht das man RS auf einen festen Pegel legen soll. Und es 
nie verwendet wird. Wenn man Daten uebertragen will dann geschieht das 
ueber ein spezielles Kommando das fuer eine bestimmte Anzahl von Bytes 
in den Datenmode umschaltet. Das ist aber auf keinen Fall ein Problem 
weil ich derzeit noch garkeine Daten uebertrage sondern ausschliessliche 
Kommandos.

Ich sehe nach der Initialisierung wild verstreute Pixel die halt den 
zufaelligem Inhalt des Datenrams entsprechen und dann kann ich mit einem 
speziellen Testbefehl alle Pixel unabhaengig vom Datenram einschalten. 
So kann ich sehen das halt ein Controller gut funktioniert und der 
andere garnicht.
Es macht erst Sinn sich um die Datenausgabe zu kuemmern wenn beide 
Controller laufen.

> an den CS/ Leitungen oder musst die Ausgangstreiber auf push-pull
> konfigurieren...?!

Ist alles richtig konfiguriert. Ich kann ja die Signale auf dem Oszi 
sehen. Das sieht erstmal gut aus. Ich hab auch schon mal alle SPI-Modi 
durchprobiert und die Übertragung langsam gemacht.

> Du könntest auch testweise die CS/ Leitungen mal vertauschen und gucken,
> ob dann die andere Hälfte des Displays korrekt funktioniert.

Ich gebe zu, das habe ich noch nicht gemacht. Aber scheint mir nicht 
sinnvoll wenn ich am nicht laufenden Controllerchip, also direkt am 
Anschluss des COG sein Chipsselect sehe.

Ich denke da muss es noch irgendeine Abhaengigkeit zwischen den beiden 
Controllern geben die ich uebersehe.

Olaf

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Olaf schrieb:
> So kann ich sehen das halt ein Controller gut funktioniert und der
> andere garnicht.

Heisst: beim nicht-funktionierenden Controller bleibt das Zufallsmuster 
stehen?

Ansonsten sind Kontrast-Einstellungen immer eine gute Quelle für erhöhte 
Suizid-Gefährung ;-)

: Bearbeitet durch User
von H.Joachim S. (crazyhorse)


Lesenswert?

Vielleicht sind es gar nicht 2 CS-Leitungen, sondern 1 CS und eine 
Adressleitung?

von Olaf (Gast)


Lesenswert?

> Heisst: beim nicht-funktionierenden Controller bleibt das Zufallsmuster
> stehen?

Nein, beim nicht funktionierenden Controller sieht das Display einfach 
immer wie ausgeschaltet aus. Die Ratte macht einfach garnix.

> Ansonsten sind Kontrast-Einstellungen immer eine gute Quelle für erhöhte
> Suizid-Gefährung ;-)

Yoyo, wenn es nur einen Controller gaebe und man nicht recht wuesste. 
Aber bei zwei identischen?

> Vielleicht sind es gar nicht 2 CS-Leitungen, sondern 1 CS und eine
> Adressleitung?

Es gibt keine Adressleitungen. Aber natuerlich, ich hab die 
Anschlussbelegung geraten, Spielraum fuer Fehler ist da sicher gegeben. 
Bloss wenn ich mich beim raten vertan haette dann duerfte der andere 
Controller ja nicht funktionieren.

Ich glaub ich geb es erstmal auf....

Olaf

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Olaf schrieb:
> Nein, beim nicht funktionierenden Controller sieht das Display einfach
> immer wie ausgeschaltet aus. Die Ratte macht einfach garnix.

Dann ist es der Kontrast (oder die Kontrastspannung). Es ist immer er 
Kontrast. Immer. Believe me. Been there, seen that. :-)

Vielleicht "teilen" sich die Controller irgendwas im Umfeld der 
Ladungspumpe.

von Olaf (Gast)


Lesenswert?

> Vielleicht "teilen" sich die Controller irgendwas im Umfeld der
> Ladungspumpe.

Sie teilen sich nicht die Kondensatoren der Ladungspumpe selber. Diese 
Kondensatoren hat jeder Controller fuer sich alleine!

Allerdings hat der Kontroller ja noch Kondensatoren an den erzeugten 
Spannungen gegen GND. Und die Kondensatoren teilen sich beide 
Controller, da sind also die Spannungsausgaenge der Controller 
verbunden. Das fand ich ja auch sehr erstaunlich.
Ich habe auch schon mal probiert den einen Controller auf externe 
Spannung umzuprogrammieren, hat sich aber nichts geaendert.

Olaf

von Weingut P. (weinbauer)


Lesenswert?

Hast Du auch n Link zum Display selbst? ... evtl ist ja n CS invertiert?

von olaf (Gast)


Lesenswert?

So, Problem ist geloest. Display laeuft. :-)

Das Problem war das die Hardware zwar grundsaetzlich SPI erlaubt, 
allerdings das Layout wohl nicht dafuer vorgesehen war. Ausserdem ist 
direkt am LCD auch ein 15cm langes Flexkabel angeloetet das ich so 
uebernommen habe. Wenn man nun das Display im SPI-Mode verwendet dann 
stoert SCK etwas auf die /CS Leitung des einen Controllers ein. Das ist 
erstaunlich und hab ich so empfindlich noch nie gesehen. Dadurch hat der 
zweite Controller keine gueltigen Kommandos empfangen.
Ich hab jetzt alle Leitungen auf dem LCD mit 100R+47pF terminiert und 
die Treiberleistung im Controller runter programmiert. So funktioniert 
es dann und ich kann beide Controller zuverlaessig ansprechen.

Olaf

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.