Displays mit SSD1303

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
Benutzeravatar
Finger
Administrator
Beiträge: 7488
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Displays mit SSD1303

Beitrag von Finger »

Moin,

ich beziehe mich mal auf dieses Thema hier: viewtopic.php?p=471176&hilit=ssd1303#p471176

Kurzfassung: 30 von diesen Displays kullern jetzt hier rum und ich kriege die nicht ans laufen, die antworten per I2C einfach nicht.
Ich hab mich mal an dieser Platine orrientiert: https://github.com/LeoDJ/SSD1303_Breakout
Vom selben Autor gibt es auch einen Schnipsel Quellcode, der allerdings nicht ohne weiteres compilierbar ist. Jedenfalls antworten die Displays per I2C nicht auf
ihre eigene Adresse -> NACK

Hat die schon mal jemand von euch zum laufen gebracht? Hier mal mein Setup:

Code: Alles auswählen

Pin     Belegung
1       +12V
2      GND
3	1M gegen GND
9	SDA
10	SDA
11	SCL
15	Reset
16	GND
17	100k gegen GND
18     3.3V
19     3.3V
21     GND
22     GND 
Reset wird vom Controller erzeugt, SCL und SDA haben Pullups von 4k7 gegen 3.3V. Im Logicanalyser sehe ich, das das Ding weder auf Adresse 0x3C noch 0x3D mit ACK antwortet. CS ist zu dem Zeitpunkt Low, Reset ist High. Takt ist bei 100kHz
i2c.jpg
i2c.jpg (11.52 KiB) 1545 mal betrachtet
unlock
Beiträge: 639
Registriert: Sa 31. Dez 2016, 20:21

Re: Displays mit SSD1303

Beitrag von unlock »

Hallo,

Schon die Brücke an oder abgelötet?
To switch between SPI and I²C mode, you need to bridge / unbridge the solder jumper at the back (default is SPI)
Benutzeravatar
ferdimh
Beiträge: 9431
Registriert: Fr 16. Aug 2013, 15:19

Re: Displays mit SSD1303

Beitrag von ferdimh »

Wir setzen auf Arbeit SSD1306-Displays ein. Das scheint fast das gleiche Ding zu sein (unrelated: wo gabs die Displays? Ich suche da noch was für ein Funkprojekt...)
Wir benutzen die auch im SPI-Mode (for hysterical raisins).

Jedenfalls: DIE DINGER SIND SUPER ZICKIG.

Das Timing mit erst ansaften, dann Reset low, dann Reset wieder high, dann ansprechen ist irgendwie manchmal wichtig und manchmal nicht.
Problematischer ist eine andere Sache:
Der Chip ist wahnsinnig schnell. "sportliche" Flanken (wie sie von eher moderneren Mikrocontrollern kommen) liefern schon bei relativ humenen Kabellängen immer wieder (je nach Aufbau auch einfach immer) Doppeltriggerungen am Takteingang. Bei SPI ließ sich das mit 100Ω-Serienwiderstanden und ein paar strategischen Picofarädern lösen, bei I2C...ojeoje.
Guck dir mal die fallende Flanke von SCL displayseitig mit einem schnellen Speicheroszi an.
Evtl helfen Koaxkabel mit 33Ω-Serienwiderständen an den Enden.
berferd
Beiträge: 1342
Registriert: Mi 3. Apr 2019, 23:45

Re: Displays mit SSD1303

Beitrag von berferd »

Obacht: die SSD-Typ-Displays, die ich bisher verbaut habe, hatte die beiden i2c-Pullups jeweils schon integriert (auf 3v3 wenn ich mich richtig erinnere).
Benutzeravatar
patagona
Beiträge: 14
Registriert: Mi 22. Mär 2017, 21:52
Wohnort: Heilbronn
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von patagona »

Finger hat geschrieben: Do 2. Nov 2023, 16:07 Kurzfassung: 30 von diesen Displays kullern jetzt hier rum und ich kriege die nicht ans laufen, die antworten per I2C einfach nicht.
LeoDJ (nicht hier im Forum) hat damit schon ein bisschen rumgespielt, in der README von seinem Code hat er es schon angedeutet, auf Nachfrage nochmal deutlicher gesagt:
Ja, einfach nicht I2C nehmen, ist fucky.
Ich hab die schon ans laufen gebracht und nach ein paar dutzend display refreshs hängen die sich einfach auf.
Hab nen halben Tag debugged, aber der controller verhält sich einfach weird.
Konnte von meinem Code aus nix machen
Also wie ferdi schon meinte, sind die wohl ziemlich zickig, zumindest über I2C.

ferdimh hat geschrieben: Do 2. Nov 2023, 17:15 unrelated: wo gabs die Displays? Ich suche da noch was für ein Funkprojekt...)
Frag mal frickler_01, er hatte die verteilt, ich vermute er hat da auch noch ein paar.
nero
Beiträge: 742
Registriert: Mo 12. Aug 2013, 11:58
Wohnort: Oberbayern

Re: Displays mit SSD1303

Beitrag von nero »

Hatte mal Schwestern von denen. Die liefen nur mit seeeeehhhhhhr laaaaangsamer baud rate zuverlässig. 125k war glaub ich schon zu schnell. War echt ätzend da die erste Charge die ich bekommen hab einwandfrei war. Beim nachbestellen dann auf einmal keine Anzeige mehr.
Benutzeravatar
Finger
Administrator
Beiträge: 7488
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von Finger »

Wnigstens mal antworten könnte der Eimer. Der Code ist aber auch recht buggy....
Benutzeravatar
Fritzler
Beiträge: 12605
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von Fritzler »

Hast du jetz die Platine vom GitHub Projekt nachgebaut?
(dasda: https://github.com/LeoDJ/SSD1303_Breako ... eakout.pdf)
Da stand ja noch drinne, dass die da NFETs zum Pegelwandlern verbaut haben, weil das ja für 5V blödduino kompatibel sein soll...
Q1,Q2:
Also, 2N7002 are probably not too optimal for this,
BSS138 would be better, but JLC basic part
Mal abgesehen, dass 10k Pullup bissel viel is, bei 3,3V nimmt man eigentlich 3,3k und 4,7k bei 5V.
Wenne also direkt mit 3,3V rangehst, dann wird Q1-2 rausgeföhnt und setze ne Brücke zwischen D-S
(Warum ist da kein 0R Widerstand Pfad vorgesehen im Plan/Layout?!)

D1 bereitet mir auch Bauchschmerzen, 100kHz+ Rechteck, das zieht doch gut an den Flanken und das is der Antwortpin.
Was bekommste nicht? Ne Antwort :lol:
Da sollte dann eher son Singlegatter nonInverting Opendrain Buffer hin: 74LVC1G07
Benutzeravatar
Finger
Administrator
Beiträge: 7488
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von Finger »

Nene, der Controller ist 5V-Tolerant an den Datenpins, das ist 1:1 durchverdrahtet. Die Platine ist... seltsam...
Der Code macht nativ 1MHz, aber es macht keinen Unterschied, auch bei 100kHz antwortet das Ding nicht.
Aber ich werd die Pegel an den Datenpins mal mit Sope kontrollieren. Aus Komfortgründen hab ich nur den Saleae dran zur Zeit.
Benutzeravatar
Fritzler
Beiträge: 12605
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von Fritzler »

Finger hat geschrieben: Fr 3. Nov 2023, 11:13 das ist 1:1 durchverdrahtet.
Ich frag jetz mal ganz doof, weil ich den Fehler sicher auch gemacht hätte:
Diesen Spezialkram, dass der SSD1303 bei I2C wohl SDA_In und SDA_Out.
Nicht, dass du jetz ausversehen SDA_Out vergessen hast oder der Lackdraht abgerissen ist :lol:
(Weil da kommt ja wirklich gaaaanix als Antwort)

Klingt jedenfalls komisch, "kann man anschließen, muss man aber nicht, dann ignoriert man acks und BRÜLLT das OLED eben so an"
b) I2C-bus data signal (SDA)
SDA acts as a communication channel between the transmitter and the receiver. The data and the
acknowledgement are sent through the SDA.
It should be noticed that the ITO track resistance and the pulled-up resistance at “SDA” pin
becomes a voltage potential divider. As a result, the acknowledgement would not be possible to
attain a valid logic 0 level in “SDA”.
“SDAIN” and “SDAOUT” are tied together and serve as SDA. The “SDAIN” pin must be connected to
act as SDA. The “SDAOUT” pin may be disconnected. When “SDAOUT” pin is disconnected, the
acknowledgement signal will be ignored in the I2C-bus
Das hier klingt aber irgendwie so als müsste das SA0 Bit des I2C Adressbits dem Logikpegel der D/C Leitung entsprechen?!
a) Slave address bit (SA0)
SSD1303 has to recognize the slave address before transmitting or receiving any information by
the I2C-bus. The device will respond to the slave address following by the slave address bit (“SA0”
bit) and the read/write select bit (“R/W#” bit) with the following byte format,
b7 b6 b5 b4 b3 b2 b1 b0
0 1 1 1 1 0 SA0 R/W#
“SA0” bit provides an extension bit for the slave address. Either “0111100” or “0111101”, can be
selected as the slave address of SSD1303. D/C pin acts as SA0 for slave address selection.
“R/W#” bit is used to determine the operation mode of the I2C-bus interface. R/W#=1, it is in read
mode. R/W#=0, it is in write mode
manawyrm
Beiträge: 141
Registriert: Sa 3. Okt 2015, 23:09
Wohnort: Kiel
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von manawyrm »

Finger hat geschrieben: Do 2. Nov 2023, 16:07 Pin Belegung
2 GND
Oehm?
Pin 2 ist doch VCOMH. Der muss mit nem Cap gegen GND, nicht direkt gegen GND...
SA0 Bit des I2C Adressbits dem Logikpegel der D/C Leitung entsprechen
ist auch so -- das ist dann halt die 0x3C/0x3D oder halt 0x78/0x7A. In Fingers Logikanalysator-Screenshot sah das aber schon genau richtig aus.
Wer hat eigentlich mit dieser bloeden 7bit I2C Notation angefangen? Was mich das schon an Debugging-Zeit gekostet hat :lol:
Benutzeravatar
zauberkopf
Beiträge: 9538
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Displays mit SSD1303

Beitrag von zauberkopf »

OT Frage :
Also wenn SSD1303 zickig ist.. was ist dann das gegenteil ?
Frage für einen Freund, der mal mit Touchkrams herumspielen will.. ;-)
manawyrm
Beiträge: 141
Registriert: Sa 3. Okt 2015, 23:09
Wohnort: Kiel
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von manawyrm »

zauberkopf hat geschrieben: Fr 3. Nov 2023, 20:44 wenn SSD1303 zickig ist
Also ich find die ehrlich gesagt ueberhaupt nicht zickig, bei mir haben die immer auf Anhieb funktioniert... Auch in wilden Betriebsarten wie z.B. direkt an nem 8080 Mikrocontrollerbus.

Aber du fragst nach Touch, das hier sind ja winzig kleine OLEDs. Du willst vermutlich lieber eine andere Art von Display?
Benutzeravatar
zauberkopf
Beiträge: 9538
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Displays mit SSD1303

Beitrag von zauberkopf »

8080 ?!?!? oh...
Irgendwo im Keller müsste noch ein Eprom-Emulator herumfliegen...

Also ich wollte demnächst was probieren mit einem 3.2Zoll display... und am liebsten SPI oder I2C ansteuerung mit RP-PICO (unter C).
Benutzeravatar
Fritzler
Beiträge: 12605
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von Fritzler »

Welche Auflösung?
Da wirds mit SPI dann irgendwann hässlich.

Aber guck mal hier, da gibts fast alles:
https://www.buydisplay.com/
Benutzeravatar
zauberkopf
Beiträge: 9538
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Displays mit SSD1303

Beitrag von zauberkopf »

320*240 reicht völlig...

Das ganze soll nur ne einfache Anzeige sein, und ein minimalistisches Menü besitzen..
Benutzeravatar
ferdimh
Beiträge: 9431
Registriert: Fr 16. Aug 2013, 15:19

Re: Displays mit SSD1303

Beitrag von ferdimh »

manawyrm hat geschrieben: Fr 3. Nov 2023, 21:03 Also ich find die ehrlich gesagt ueberhaupt nicht zickig, bei mir haben die immer auf Anhieb funktioniert... Auch in wilden Betriebsarten wie z.B. direkt an nem 8080 Mikrocontrollerbus.
Hattest du sie auch an Controllern der eher schnellen Sorte?
Benutzeravatar
zauberkopf
Beiträge: 9538
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Displays mit SSD1303

Beitrag von zauberkopf »

Hattest du sie auch an Controllern der eher schnellen Sorte?
Sag ja nichts gegen den 8080 !!!! 8-)
manawyrm
Beiträge: 141
Registriert: Sa 3. Okt 2015, 23:09
Wohnort: Kiel
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von manawyrm »

ferdimh hat geschrieben: Fr 3. Nov 2023, 22:15 Hattest du sie auch an Controllern der eher schnellen Sorte?
Och, wenn so ein ISA-Bus mit 14 MHz an nem x86 Rechner erstmal loslegt, geht das schreiben auf den Bildschirm erstaunlich zuegig ;)

Sonst auch per SPI an einem ESP32, ja.
Benutzeravatar
zauberkopf
Beiträge: 9538
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Displays mit SSD1303

Beitrag von zauberkopf »

Mal noch mal ne Doofe Frage :
Ich bin kurz davor, dieses hier zu ordern :
https://www.waveshare.com/wiki/Pico-ResTouch-LCD-2.8

Grund : Bin die nächste Woche unterwegs, und wollte was portables haben, wo mir nicht dauernd ein Kabel abreist.. ;-)
LCD : ST7789
Touch : XPT2046

Kaufe ich damit ein Problem ?
Benutzeravatar
Fritzler
Beiträge: 12605
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von Fritzler »

Bei den Touchcontrollern sollteste vorher gucken obs nen guten Treiber gibt.
Die sind gerne maln Buch mit 7 Siegeln und schlechter Doku.
manawyrm
Beiträge: 141
Registriert: Sa 3. Okt 2015, 23:09
Wohnort: Kiel
Kontaktdaten:

Re: Displays mit SSD1303

Beitrag von manawyrm »

zauberkopf hat geschrieben: Mo 6. Nov 2023, 23:47 Kaufe ich damit ein Problem ?
Och, naja :)
Ich wuerd bei so Hardware dann vermutlich mal wieder versuchen https://lvgl.io/ zum Laufen zu bekommen.
Das ist zwar irgendwie ziemlich schlechter Code intern, aber es funktioniert und stand mir bisher bei Projekten nicht allzusehr im Weg, also kann man schon gut einsetzen.
Benutzeravatar
zauberkopf
Beiträge: 9538
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Displays mit SSD1303

Beitrag von zauberkopf »

Also das Packet ist unterwegs.. und der Link.. also Puhh !
(Also erst mal vielen DANK! )

Damit kriegt man die Leute, die nicht wie ich das Paradigma vertreten "Form Follows Function" bestimmt beeindruckt !
Konkret habe ich 2 Projekte im Auge, wo "guter Code" nebensächlich ist.. Weil nicht sicherheitskritisch.
Damit muss ich echt mal spielen... Bitte lieber Postbote.. sei vor dem Freitag da, damit ich es noch in die Reisetasche packen kann.. ;-)
nero
Beiträge: 742
Registriert: Mo 12. Aug 2013, 11:58
Wohnort: Oberbayern

Re: Displays mit SSD1303

Beitrag von nero »

manawyrm hat geschrieben: Di 7. Nov 2023, 10:51 lvgl ...
Das ist zwar irgendwie ziemlich schlechter Code intern,
Starke Behauptung.

Eine der wenigen Größeren Software die keinen Fehler im Speichermanagement hat.

Aber ja, das ist was wo man noch programmieren können muss und nicht alles zusammen klickt.
Dafür hats aber auch 1/10 Speicherbedarf im RAM.
Antworten