0,96 Oled mit STM32F407

Gast #4133153
Lesenswert?
• ▲
▼
Hello,

ich versuche gerade ein 0.96 Oled mit dem STM32F407 zum laufen zu 
kriegen. Es handelt sich um folgendes Display:
http://www.dx.com/p/bonatech-0-96-inch-display-screen-module-blue-display-black-blue-295842#overview

Verbunden wie folgt:
GND->GND
VCC->5V
D0->PB13 (CLK)
D1->PC3 (MOSI)
RST->PE4 (RST)
DC->PE2 (Data/Cmd)
CS->PE1 (Chipselect)

Anbei mein "Treiber". Die Befehle für die Initialisierung habe ich aus 
der adafruit-lib genommen, aber auch wenn ich nur ein "displayon" 
schicke, passiert nichts. Das Display bleibt einfach schwarz. Zumindest 
leuchten müsste es doch mal, oder?

Leider habe ich keinen Logic analyzer. Im Keil habe ich schon geschaut, 
ob hier alles gesetzt wird wie gewünscht - eigentlich ja...

Wäre super, wenn ihr euch das mal ansehen könntet. Ich sitze seit 2 Uhr 
Nachmittag (nun 10h mit Unterbrechungen...) an dem Ganzen und kriege 
kein Murren aus dem Display.

In der Main rufe ich dann die Funktionen spiInit & oledInit auf und 
erwarte eigentlich, dass das Ding zumindest mal leuchtet - oder sehe ich 
das falsch?

Danke!
Angehängte Dateien:
Gast #4133786
Lesenswert?
• ▲
▼
So, das ließ mir jetzt keine Ruhe. Ich hab jetzt mal nen Logic Analyzer 
besorgt und das Ganze getestet. SPI hatte einen kleinen Fehler, der ist 
jetzt raus (verbessert im Anhang -TI Mode war falsch und CPHA muss 
gesetzt sein.). Jetzt siehts so aus, wenn ich 0xAF (Display ON) schicke, 
siehe "8.jpg" im Anhang.

Eigentlich doch Mustergültig, wenn ich mit dem SSD1306 Datenblatt Seite 
18 Figure 8-5 vergleiche, oder irre ich?

Eigentlich müsste das dumme Ding doch zumindest mal leuchten, oder? :D

Die Initialisierung mit den vielen Commandos habe ich auch mal gemacht 
(siehe Anhang, "5.jpg" - die stimmen auch, der letzte übertragene 
command ist das besagte 0xAF, wo ich ja das display einschalte), aber da 
geht auch nix an.

Ich bin ABSOLUT ratlos und langsam auch echt am verzweifeln..

Grüße Hendrik
Angehängte Dateien:
Gast #4134258
Lesenswert?
• ▲
▼
Habe das mal probiert. Heißt ja - so wie ich das verstehe - nur "Daten" 
schreiben, dann sollte ja mal irgendwas leuchten, oder?

oledSendData(0x55);
oledSendData(0xFF);
oledSendData(0x55);
oledSendData(0xFF);
oledSendData(0x55);
oledSendData(0xFF);

wird zu dem Bild im Anhang, sieht ja soweit gut aus. Display trotzdem 
dunkel.

Neue Tipps?

Die Initialisierung stimmt?
  oledSendCmd_enum(DisplayOff);
  oledSendCmd_enum(ClockDivide);
  oledSendCmd(0x80);
  oledSendCmd_enum(Multiplex);
  oledSendCmd(0x3F);
  oledSendCmd_enum(DisplayOffset);
  oledSendCmd(0x0);
  oledSendCmd_enum(StartLine0);
  oledSendCmd_enum(ChargePump);
  oledSendCmd(0x10); //externalVCC, otherwise 0x14
  oledSendCmd_enum(MemoryAddressing);
  oledSendCmd(0x0);
  oledSendCmd_enum(SegRemap127);
  oledSendCmd_enum(ComScanDec);
  oledSendCmd_enum(ComPins);
  oledSendCmd(0x12);
  oledSendCmd_enum(Contrast);
  oledSendCmd(0x9F); //externalVCC, otherwise 0xCF
  oledSendCmd_enum(PreCharge);
  oledSendCmd(0x22); //externalVCC, otherwise 0xF1
  oledSendCmd_enum(DeselectLevel);
  oledSendCmd(0x40);
  oledSendCmd_enum(EntireDisplayOnResume);
  oledSendCmd_enum(DisplayNormal);
  oledSendCmd_enum(DisplayOn);

wobei ja, auch wenn die falsch ist, das Ding doch irgendwas anzeigen 
müsste oder?

Grüße, der langsam verzweifelte hendrik.
Angehängte Dateien:
#4134385
Lesenswert?
• ▲
▼
Hallo,


oledSendData(0x55);
oledSendData(0xFF);


sind zwar Daten die man per SPI senden kann, sie zeigen aber auf den 
Display wenig Wirkung!

Nochmals, das Display bleibt bei richtiger Initialisierung schwarz. Es 
wird nicht wie ein TFT-Display "blau", grün oder mit sonstiger Farbe 
angesteuert. Erst der richtig angesteuerte Font-Satz  erzeugt ein 
lesbares Schriftbild.

Als Anlage eine ATXMEGA-Anwendung zum Studieren. SPI- und 
Transfer-Protokolle sin ja nahezu  identisch!


Gruß G.G.
Angehängte Dateien:
#4137490
Lesenswert?
• ▲
▼
Ich habe vor ein paar Jahren mal was mit dem Displaycontroller gemacht, 
und hatte immer Probleme, wenn ich das CS in Hardware gelassen habe. 
Dann funktionierte die Initialisierung nicht richtig, weil zwischen den 
einzelnen Argumenten der Befehle Wackler am CS waren.
Mit Software-CS gings dann einwandfrei.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.