Seit Tagen versuche ich irgend ein Lebenszeichen auf mein OLED Display zu bekommen
HW: SSD1306 SPI und ein Wemos D1 mini
Ich versuche dies mit der Adafruit Lib und der U8g2 Lib, beide ohne Erfolg.
Die Hardware habe ich schon mal ersetzt → ohne Erfolg (also muss es an mir liegen)
Hi, warum CS auf GND wenn in der Initialisierung steht : CS=*/D0 ???
Denke CS ist doch der ChipSelect , der gebraucht wird, damit sich das Dysplay überhaupt angesprochen fühlt? Denn SPI ist ja ein DatenBUS und wählt das Ziel-Device über CS aus.
valbuz:
Dies habe ich bei meinen Recherchen mal irgendwo gelesen, dass dieser nicht gebraucht wird und auf GND gezogen werden kann.
Das ist nur bedingt richtig.
Wenn du nur ein Modul am SPI-Bus hängen hast, geht es so.
Sobald du den Bus richtig mit mehreren Modulen einsetzt, brauchst du den CS als Steuersignal.
Dies habe ich bei meinen Recherchen mal irgendwo gelesen, dass dieser nicht gebraucht wird und auf GND gezogen werden kann.
Gibt es da allenfalls ein Unterschied zwischen HW und SW SPI?
Gruss
Patrick
Hi,
keine Ahnung ob es da zwischen HW un SW SPI nen Unterschied gibt.
Das mit dem CS war nur so ne Idee, die ich einfach mal ausprobiert hätte, wenn eine Komponente am Bus bei mir nicht richtig will.
Wenns dann klappt, .. ok , Fehler gefunden, wenn nicht, .. -> weiter suchen/fragen.
HotSystems:
Das ist nur bedingt richtig.
Wenn du nur ein Modul am SPI-Bus hängen hast, geht es so.
Sobald du den Bus richtig mit mehreren Modulen einsetzt, brauchst du den CS als Steuersignal.
auch das ist nicht zwingend so. Etliche SPI-ICs brauchen die steigende Flanke an /CS, um das Ende einer Übertragung z.B. bei mehr-byte-Anweisungen zu erkennen. Auch, um neu zu syncronisieren, wenn sie mal den Faden durch Störungen verloren haben.
/CS wird also bei mir immer angesteuert, sicher ist sicher...
auch das ist nicht zwingend so. Etliche SPI-ICs brauchen die steigende Flanke an /CS, um das Ende einer Übertragung z.B. bei mehr-byte-Anweisungen zu erkennen. Auch, um neu zu syncronisieren, wenn sie mal den Faden durch Störungen verloren haben.
/CS wird also bei mir immer angesteuert, sicher ist sicher...
Gruß aus Berlin
Michael
Ahh...ok.
Bisher hat das bei mir noch funktioniert.
Aber ein guter Hinweis, werde den bei zukünftigen Projekten auch berücksichtigen.
HotSystems:
Das ist nur bedingt richtig.
Wenn du nur ein Modul am SPI-Bus hängen hast, geht es so.
Sobald du den Bus richtig mit mehreren Modulen einsetzt, brauchst du den CS als Steuersignal.
valbuz:
Gibt es da allenfalls ein Unterschied zwischen HW und SW SPI?
Ja, gibt es.
Wenn ich APA102-LEDs möglichst schnell mit Informationen versorgen möchte, dann nutze ich an einem UNO/Nano/ProMini HW-SPI, weil diese Hardware für diese Aufgabe optimiert wurde. Die dafür zu nutzenden Pins sind festgelegt. Bei SW-SPI kann man die Pins wählen, ist aber nicht so optimal schnell.
Bei schneller getakteten µCs wird der Vorteil einer speziellen Hardware geringer, beim ESP32 gibt es dann eine IO-Matrix mit freier (?) Pinzuordnung.
Wenn es keine Gründe dagegen gibt, würde ich auch beim WemosD1 HW-SPI nutzen.