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!
Die u8g-Lib finde ich ganz praktisch und kann auch verdammt viele Controller. Hier gibts auch einen Port für den STM32 http://blog.bastelhalde.de/?p=759
Hab's mal schnell verglichen aber akut auch keinen Fehler gefunden...:-(
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
Hallo, Achtung!! Das Display zeigt nach der Initialisierungsphase keine besonderen Merkmale. Es leuchtet nicht und flackert nicht! Erst ein gesendetes Pixel zeigt die eigentliche Display-Funktion an! Hast du was an das Display gesendet? Gruß G.G.
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.
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.
es lebt! ;) Scheinbar war die Initialisierung falsch. Sonst habe ich meine Sachen soweit übernehmen können. Jetzt wird mal getestet. Danke!!
Bei mir läuft jetzt das 1.3" Sainsmart OLED (SPI Version) auch auf einem STM32F072 Discovery unter Verwendung von STM32 Cube. Leider hab ich die u8g lib nicht zum laufen gebracht :-/ Aber geht auch so.....
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.



