Ich versuche seit einer Weile ein Display mit dem ST7735S Controller mit 128*128 Pixel zum Laufen zu bekommen. Ich habs einerseits mit dem Raspberry Framebuffer Treiber [1] und dieser Library [2] probiert. Beide Libraries funktionieren, wenn ich so ein Arduino Display mit ST7735 Controller anschließe mit meinem Aufbau problemlos. Das Display mit dem Controller ST7735S reagiert aber überhaupt nicht. Kann es sein, dass die Controller so unterschiedlich sind ? Hat jemand schon mal ein Display mit dem ST7735S Controller zum Laufen gebracht ? Ich habe bis jetzt leider noch keinen Treiber explizit für das "S" gefunden. Es kann auch noch sein, dass es ein elektrisches Problem gibt, da bei diesem Display die Anschlüsse sehr filigran sind. [1] http://www.whence.com/rpi/ [2] https://github.com/microbuilder/LPC1343CodeBase/blob/master/drivers/displays/tft/hw/st7735.c
Habe hier ein 128x160 im Einsatz. Die Dinger gibt es in Rot, Grün und Schwarz. Damit wird die Farbe der Lasche an der Schutzfolie bezeichnet. S ? Könnte das Schwarz meinen?
hm, laut [1], Zeile 364 gibt es zwischen "B" und "R" minimale unterschiede in der Initialisierung. Ich hätte aber gehofft dass mein Display zumindest mal irgendwas macht... [1] https://github.com/adafruit/Adafruit-ST7735-Library/blob/master/Adafruit_ST7735.cpp#L364
Mit dieser gewaltigen Menge an Initialisierungsbefehlen hatte ich auch kein Glück. Deshalb habe ich mir laut Datenblatt eine kleine init selbst geschrieben. Hast Du auch den Schwarzen?
welche initialisierung genau hat bei dir nicht funktioniert ? kannst du mir deine initialisierung vl. schicken ?
Die Farbe ist an der Display Schutzfolie. Ist bei dir schon ab :-( Meine ist für STM32 und HAL, dürfte aber ersichtlich sein:
1 | void lcd7735_init(void) { |
2 | LCD_CS0; // CS=0 |
3 | |
4 | LCD_RST0; // RST=0 |
5 | HAL_Delay(10); //10 ms warten |
6 | LCD_RST1; |
7 | HAL_Delay(5); |
8 | |
9 | lcd7735_sendCmd(0x11); |
10 | |
11 | HAL_Delay(50); |
12 | |
13 | lcd7735_sendCmd (0x3A); |
14 | lcd7735_sendData(0x05); // |
15 | |
16 | lcd7735_sendCmd (0x29); // |
17 | |
18 | |
19 | // Testbild:
|
20 | |
21 | unsigned char y; |
22 | unsigned char x; |
23 | for (y=0;y<160;y++) |
24 | for (x=0;x<128;x++) { |
25 | unsigned int color=0x0; |
26 | if (y<50) color=0xF800; // |
27 | else { |
28 | if (y<100) color=0x02E0; // |
29 | else { if (y<150)color=0x001F; } |
30 | lcd7735_pix(x, y, color); |
31 | }
|
32 | LCD_CS1; |
33 | |
34 | }
|
Kannst entweder noch die Wartezeiten ändern, oder war eben doch kein "Black".
ok, jetzt habe ich herausgefunden, dass die displayschutzfolie eine grüne markierung hat
Dann brauchst Du eine ST7735S Lib die INITR_GREENTAB unterstützt. Zum Beispiel: https://github.com/adafruit/Adafruit-ST7735-Library sollte nach leichten Anpassungen funktionieren. Kann aber nicht mehr dazu sagen, da ich kein "Green" habe.
ich habs jetzt mit der adafruit library (alle tabs) versucht, funktioniert leider auch nicht, das display bleibt einfach weiß. mit dem funktienierenden display tut es bei allen konfigurationen zumindest irgendwas. ich werds nochmal nachlöten...
ok, jetzt gehts. es hat die "green tab" initialisierung gebraucht (sonst tuts gar nix) und es darf am stecker keine kurzschlüsse haben.
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.