Moin zusammen.
Ich bin confused, vielleicht könnt Ihr mir helfen. Wahrscheinlich sehe
ich den Wald vor lauter Bäumen nicht.
Zunächst was ich vor habe:
20 Mini Displays (240x240px) hintereinander schalten so das ich ein
Gesamtbild von 4800x240px erhalte.
Es sollen keine Videos oder aufwendige Animationen laufen, nur ein
bisschen geblinke und evtl. mal ein Text.
Es geht sich um ein Modelbau Projekt.
Ich habe also erwartungsvoll 20 Mini Displays (ZJY IPS130-v2 240x240
IC DT7789 / SPI) gekauft
https://naltronic.de/displays/oled/610/1-3-zoll-ips-oled-display-modul-240x240-pixel-rgb-tft-lcd-bord-st7789-3.3v
und da ich mir viele Videos angesehen hatte, erstmal einen Multiplexer
TCA9548A zum testen.
Was ich jetzt erst verstanden habe ist das der Mutiplexer I2C ist und
die Displays SPI - das funktioniert also nicht.
Nach weiteren lesen habe ich verstanden das über den SPI Bus mehrere
Geräte geschaltet werden können und diese dann über CS angesprochen
werden.
Schön, nur die Displays haben kein CD sondern nur SDA SCL DC / RST
(und VCC/GND/BCL).
Als Board hätte ich Mega2560 ESP8266 ESP32 zur Verfügung.
Nur ich komme gerade echt nicht weiter - vielleicht suche ich auch
einfach nach einem falschen Ansatz bei meiner Recherche. Die Displays
selber bekomme ich ohne Probleme zu laufen, auch mehrere am selben
"Port, zeigen dann natürlich alle das gleiche an.
Ich danke Euch....
Marko Knoche schrieb:> Moin zusammen.> Ich bin confused,
#metoo
Früher (tm) war man in Germanien verwirrt. So ändern sich die Zeiten
#globalisation
#ihatemylanguage
> vielleicht könnt Ihr mir helfen. Wahrscheinlich sehe> ich den Wald vor lauter Bäumen nicht.
A common problem.
> Zunächst was ich vor habe:> Ich habe also erwartungsvoll 20 Mini Displays (ZJY IPS130-v2 240x240> IC DT7789 / SPI) gekauft> https://naltronic.de/displays/oled/610/1-3-zoll-ips-oled-display-modul-240x240-pixel-rgb-tft-lcd-bord-st7789-3.3v> und da ich mir viele Videos angesehen hatte, erstmal einen Multiplexer> TCA9548A zum testen.
Why?
> Was ich jetzt erst verstanden habe ist das der Mutiplexer I2C ist und
Indeed my dear!
> die Displays SPI - das funktioniert also nicht.
BINGO!
> Nach weiteren lesen habe ich verstanden das über den SPI Bus mehrere> Geräte geschaltet werden können und diese dann über CS angesprochen> werden.
You'r my hero!
> Schön, nur die Displays haben kein CD sondern nur SDA SCL DC / RST> (und VCC/GND/BCL).
Iam sure, that those pins can be used as CS, when SPI mode is enabled.
RTFM works wonders!
https://www.alldatasheet.com/view.jsp?Searchword=ST7789> Als Board hätte ich Mega2560 ESP8266 ESP32 zur Verfügung.
They will work just fine. Beside the 3 major IOs SCK, MISO and MOSI all
you need is love, I mean, 20 outputs for 20 chip selects. If you want to
save precious pins on your controller, the 74HC138 is your friend (1 out
of 8 decoder/selector). Three of them allow you to control 24 chip
selects using only 5 IOs.
> Nur ich komme gerade echt nicht weiter - vielleicht suche ich auch> einfach nach einem falschen Ansatz bei meiner Recherche. Die Displays> selber bekomme ich ohne Probleme zu laufen, auch mehrere am selben> "Port, zeigen dann natürlich alle das gleiche an.
You are almost there! Hang on!
See SPI for further readings.
> Ich danke Euch....
You'r welcome!
Falk
SPI wäre schon richtig, aber CS muss vorhanden sein. Die Controller
haben das, es ist aber nicht immer herausgeführt. Bei 20 Displays ist
das viel Fummelei da vom FFC eine zusätzliche Leitung anzulöten, da
sucht man besser ein passendes Displaymodul aus.
Marko Knoche schrieb:> Ich habe also erwartungsvoll 20 Mini Displays (ZJY IPS130-v2 / 240x240 /> IC DT7789 / SPI) gekauft> https://naltronic.de/displays/oled/610/1-3-zoll-ips-oled-display-modul-240x240-pixel-rgb-tft-lcd-bord-st7789-3.3v
Da ist kein Datenblatt sondern nur ein Bildchen das man vergrößern
kann....
Und - lies Dich in I2C und SPI ein und Du wirst dann eh recht schnell
selber verstehen das Du keinen I2C-Mux brauchst sondern ein bischen
Hirnschmalz wie man die nötigen /CS für das Display (wenn es denn
wirklcih SPI ist) erzeugt...
Falk B. schrieb:> Iam sure, that those pins can be used as CS
RTFM ist ein guter Hinweis. Aber ein CS muss man sich bauen.
Die Seite des Händlers ist mehrdeutig. Er schreibt von 4-Draht-SPI
Interface, laut Foto hat das Ding aber nur 3 Drähte. Und ein FM gibt es
bei ihm auch nicht. Der Controller kann vieles - aber fest verdrahtet.
Lange Rede, wenig Sinn: Fehlkauf.
Das SDA und SCL sind KEINE I2C Signale am Modul, sondern die SPI-Signale
des COntroller-ICs, welcher NUR SPI kennt. Wie es scheint haben die
Knalltüten aber das CSX Signal vergessen . . .
Marko Knoche schrieb:> Smit hat Pin8 CS - aber dann muß ich an dem Display löten ?
Du hast es erkannt. Wie das Ding ohne CS funktioniert grenzt an ein
Wunder.
Marko Knoche schrieb:> Uff, das würde ja ne Mamutaufgabe bei 20 Displays
Du kennst aber kleine Mamuts . . .
Wenn man das einmal gemacht hat, ist das in 5min erledigt. Macht 100min
für 20 LCDs. Ich glaube du hast schon deutlich mehr Zeit für deutlich
sinnlosere Dinge verschwendet.
Es scheint, dass bei dem Display der CS-Pin aus Platzgründen weggelassen
wurde. Von dem Display gibt's auch eine 1,54"-Version, bei der etwas
mehr Platz für diese Pinreihe ist, und dort ist der CS-Pin dann auch
vorhanden.
Falk B. schrieb:> Marko Knoche schrieb:>> Smit hat Pin8 CS - aber dann muß ich an dem Display löten ?>> Du hast es erkannt. Wie das Ding ohne CS funktioniert grenzt an ein> Wunder.
Warum? CS ist der "chip select". Wen das Display keinen CS-Anschluss
hat, ist der Chip halt immer "selected".
Rolf M. schrieb:>> Du hast es erkannt. Wie das Ding ohne CS funktioniert grenzt an ein>> Wunder.>> Warum? CS ist der "chip select". Wen das Display keinen CS-Anschluss> hat, ist der Chip halt immer "selected".
Ja, aber richtige SPI-Slave führen einen Befehl immer nur dann aus,
wenn CS wieder auf HIGH geht. Bei dem Controller wird das schon nach der
richtigen Anzahl Datenbytes gemacht, auch wenn CS dauerhaft auf LOW
liegt. Dann darf sich SPI aber nie verschlucken, denn sonst kommt es aus
dem Tritt. Mit einer regelmäßigen Syncronisation über CS passiert das
nicht bzw. wird es bei der nächsten Übertragung sofort korrigiert.
Ähm, bin ich doof?
SDA und SCL sind I2C-Signale. Es sieht so aus, als ob die Displays über
I2C angesprochen werden und die Beschreibung im Shop (4-Draht SPI)
falsch ist.
Mit SPI hätte man das leicht lösen können, aber bei I2C wird es
schwierig, wenn die Adresse nicht änderbar ist. Mehr wird das Datenblatt
des Controllers verraten.
Falk B. schrieb:> Ja, aber richtige SPI-Slave führen einen Befehl immer nur dann aus,> wenn CS wieder auf HIGH geht. Bei dem Controller wird das schon nach der> richtigen Anzahl Datenbytes gemacht, auch wenn CS dauerhaft auf LOW> liegt. Dann darf sich SPI aber nie verschlucken, denn sonst kommt es aus> dem Tritt. Mit einer regelmäßigen Syncronisation über CS passiert das> nicht bzw. wird es bei der nächsten Übertragung sofort korrigiert.
Ob HIGH oder LOW hängt von der Polarität ab, meistens ist es umgekehrt:
Der Slave fühlt sich nur angesprochen, wenn Slave Select auf LOW ist.
Ob sich der Controller des Slaves verschluckt, kommt auf den Controller
an. Mit dem ersten Clock kennt der Controller die Taktrate. Wenn der
Controller schlau ist, hat er intern ein Timeout, wenn einer oder mehr
Takte fehlen. Dann geht das eigentlich genau so gut wie ohne Slave
Select. Allerdings lässt sich dann natürlich der Slave dennoch nicht
einfach so auswählen, das geht nur mit Zusatzbeschaltung.
Benutze einen (oder mehrere) Demultiplexer (aka 74xx138) um den Takt
(SCL) nur an eins der Displays durchzuschalten!
Damit sollten die sich selektiv ansprechen lassen.