SPI Display und SD-Karte gleichzeitig nutzen

Nachdem ich mein OLED geschossen habe, als ich versucht habe, es per I2C anzusteuern
(Waveshare 2,42 OLED an ESP32 funktioniert nicht)
und keine lust habe, auch das Neue kaputt zu machen, habe ich es am SPI zum Laufen gebracht, was auch einwandfrei funktioniert.

Das Problem ist nun, daß auch die SD-Karte am selben SPI hängt. Nur den CS des OLED habe ich auf einen anderen Pin gelegt, was mit der U8G2-Lib auch funktioniert. (Mangels freier Pins kann ich den zweiten SPI am ESP32 nicht verwenden)

Gibt es irgend etwas, was dagegen spricht, beides, also OLED und SD-Karte am selben SPI zu betreiben? Die SD-Karte hängt am dafür vorgesehenen CS-Pin und für das Display habe ich einen anderen Pin benutzt. Und muss ich irgend was dabei beachten?

Die Spannungen an den Datenpins müssen gleich sein, beim ESP32 also 3,3 V, praktisch wohl etwas weniger.

Sonst fallen mir keine Fußangeln ein :slightly_smiling_face:

Da alles mit 3,3V läuft, sehe ich da keine Probleme. Meine Sorge ist eher, daß sich Zugriffe auf Display und SD-Karte gegenseitig ins Gehege kommen. Aber da werde ich wohl einfach aufpassen müssen, daß nicht beides gleichzeitig stattfindet.

Das macht SPI schon selbst, keine Angst :wink:
Bei mir läuft auf einem ESP32 TFT Display + Touch + SD. Einziges im Moment wen auf SD geschrieben wird ist der Touch 0,3Sek Träge. Demnächst will noch ein SPI Sender, Empfänger (nRF24) drauf tun.

Dann kann ich die Hardware ja erst mal beruhigt abhaken.
Danke :slight_smile:

Ist ja auch sehr wahrscheinlich dasselbe Gerät :wink:

Allerdings fast komplett technisch getrennt.

Gruß

Pucki

Wen Du meinst SD dann ist doch Wurst ob Separat oder auf dem Display, das hat nix zu sagen.

Wie Meinen?

Das alle 3 "Teile" eine eigene Anschlusstelle besitzen. Einzig Vcc + GND sind einmalig.

Gruß

Pucki

Es Ist ein SPI BUS! also muss jeder SPI Teilnehmer seinen eigenem CS haben, ( So am Rande es geht auch mit einem gemeinsamen CS, nur dann muss es alles anders Verschaltet sein).
Bei mir SCK, MOSI, MISO, sind gemeinsam verschaltet, nur wie geschrieben, CS vom jedem Gerät hat eigenen Pin.

Und Ja ESP32 hat 3 SPI-Schnittstellen wo zwei von hängen am Flach = machen Probleme wen falsch genutzt deshalb hängt bei mir alles auf VSPI.

Hm.
Ich habe bei jeden Anschluss Mosi + co. Pins und dort auch die passenden Kontakte angeschlossen. Muss mal schauen was passiert wenn ich vom SD-Bereich MOSI + MISO wegnehme. Ob ich dann noch Zugriff habe.

Wäre Cool. Weil das würde mir Leitungen sparen.

Was mir aber die Frage stellt, wieso die geizigen Chinesen die Pins nicht weggelassen haben.

CS ist Klor.

Gruß

Pucki

Wird nicht funktionieren :wink:

MOSI – Master Output Slave Input – überträgt Daten vom Master an einen Slave, während MISO – Master Input Slave Output – Daten vom Slave an den Master überträgt,

Schade.

Ergo doch getrennt. :wink:

Gruß

Pucki

Es gibt gute. verständliche Beschreibungen wie SPI funktioniert. und was macht CS oder SS.
Für dich,
die Chip-Select-Leitung trägt den treffenderen Namen SS, was für Slave-Select steht. Mit CS (Chip-Select) kann der entsprechende Peripheriebaustein selektiert werden.

Du hast mein Gedanken nicht verstanden.

Wenn bei den TFT mit Touch und SD Miso + Mosi durchgeschliffen sind würde EIN Kabelpärchen reichen. Aktuell schick ich Miso + Mosi zu JEDEN Anschluss.

Aber egal. Ich zieh einfach Miso + Mosi von den SD-Anschluss ab. CS selbstverständlich nicht. Wenn es MISO + MOSI auf der Platine durchgeschliefen sind, würde die SD-Karte funktionieren sonst halt nicht.

Gruß

Pucki

Also Du verirrst mich mit deinen Aussagen.
So wie unten gezeigt wird Standard SPI verdrahtet.

Die CS manchmal als SS kennzeichnet haben immer eigenen Pin (GPIO)
was wird in dem Sketch EXTRA deklariert.
Scheit so aussehen das Du noch nie mit SPI beschäftigt hast, nur alles gemacht nach den Beispielen.

GENAU.

Und nun stellt sich nur noch die Frage ob die Chinesen das auf der Platine auch so gemacht haben. :wink:

Weil aktuell habe ich MISO + MOSI auf je einer Steckreihe und schicke sie von DA zu jeder Kontaktgruppe. Wenn die Chinesen es so gemacht haben wie auf deiner Zeichnung, würde das bedeuten ich spare mir 2 x 2 Kabel.

Oder noch einmal einfach für dich erklärt. Sind ALLE Mosi bzw. Miso auf der Display-Platine mit einander Verbunden. ??

Gruß

Pucki

Ich habe mich mit den BUS beschäftigt. ABER NICHT mit den Layout der Platine des Displays.

Gruß

Pucki

Und wen man Problem mit einem Gerät hat kann man mit SD bei ESP32 auf HSPI umsteigen, hat jedoch den Nachteil das bei jedem Aufspielen vom Sketch darf die SD Karte nicht im Modul stecken, sonst geht der Upload nicht, so als werde der ESP nicht am COM Port angeschlossen.
SD ist eine große Zicke, dazu wählerisch wen es um CS Pin geht, bei mir wollte die unbedingt GPIO 5 habe, warum habe nicht rausgefunden.

Wenn das kein Geheimnis ist zeige mall Link zum Display, normaler weise SPI Displays brachen kein MOSI (SDI) Pin und sollte als -1 deklariert werden bei allen mir bekannten Libraries.

Kenn ich. Da musst du im Zweifelsfall halt die Libs umschreiben. Ich mag keine "Hardcodierten" Pins. Das macht nur Stress. Liegt aber nicht am Pins selbst.

Gruß

Pucki