INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
SPI Schnittstellen für mehrere Geräte nutzen
29.01.2019, 17:14 (Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2019 20:59 von Hoffmakl.)
Beitrag #1
SPI Schnittstellen für mehrere Geräte nutzen
Hallo zusammen,
kann ich am ESP8266 mehrere Geräte (Display und BME280) über SPI anschliessen?

Ich benutze eine Arduino IDE Umgebung 1.8.8 mit Arduino core for ESP8266 Version 2.4.2 und Board Generic ESP8266 Module.
Und werde den ESP8266 LoLin NodeMCU V3 verwenden.

Das SPI Interface für das Display Waveshare 2.9 inch e-Paper Module benötigt
DIN --> MOSI (Datenleitung vom Master zum Slave)
CLK --> CLK (SPI - clock)
CS --> SS (Slave Select)
DC --> data/command control pin
RST --> Module (Display) reset
BUSY --> Busy state output
MISO --> wird nicht benutzt

mögliche PIN-Belegung für
ESP8266 PIN
DC --> GPIO00 (D3)
RST --> GPIO02 (D4)
BUSY --> GPIO04 (D2) ==> 1)

SS0 --> GPIO15 (D8)
DIN --> GPIO13 (D7)
CLK --> GPIO14 (D5)

Die SPI - Pins sind in der Datei ..\ArduinoData\packages\esp8266\hardware\esp8266\2.4.2\variants\generic\common.h​ definiert.

#define PIN_SPI_SS (15)
#define PIN_SPI_MOSI (13)
#define PIN_SPI_MISO (12)
#define PIN_SPI_SCK (14)

Mit SS „Slave Select“ wird ein Geräte ausgewählt, mit welchem Slave der Master kommunizieren will.
Um ein weiteres Gerät über die SPI Schnittstelle anzuschliessen, wäre ein weiteres SS „Slave Select“ z.B. SS1 erfolderlich.

Das SPI Interface für den BME280
SDI --> MOSI (Datenleitung vom Master zum Slave)
SCK --> CLK (SPI - clock)
CSB --> SS1 (Slave Select)
SDO ---> MISO (Datenleitung vom Slave)

Wie kann man einen weiteren SPI SS PIN für ein weiteres Geräte definieren?
z.B.
#define PIN_SPI_SS1 GPIO05 (D1) ==> 1)

1) Bemerkung:
PIN D1 ==> GPIO05
und D2 ==> GPIO04

sind in der Datei ..\ArduinoData\packages\esp8266\hardware\esp8266\2.4.2\variants\generic\pins_ard​uino.h
für I2C definiert.

VG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.01.2019, 20:42
Beitrag #2
RE: SPI Schnittstellen für mehrere Geräte nutzen
Ja, wobei Du Dich selbst um die Umschaltung der SS-Pins kümmern musst.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 18:27 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2019 18:28 von Hoffmakl.)
Beitrag #3
RE: SPI Schnittstellen für mehrere Geräte nutzen
Hallo Tommy56,
Danke für deine schnelle Antwort.

Zum Test habe ich 2 Beispielsketches zusammenkopiert und folgende PIN Belegung verwendet.

BMP280 >> CS >> (D1) GPIO05
e-paper >> CS >> (D8) GPIO15

Das hat prima funktioniert.

Im 2. Schritt habe ich den BME-CS Pin auf GPIO3 (RX) gelegen. (Das hat auch funktioniert)
Im 3. Schritt habe ich den e-paper CS Pin auf GPIO01 (TX) gelegt.

Seitdem ist die COM Schnittstelle nicht mehr erreichbar.
Unter dem Windows Geräte-Manager bekomme ich die Fehlermeldung: Unbekanntes USB-Gerät (Fehler beim Anfordern einer Gerätebeschreibung.)

Gibt es da einen Weg zurück?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 18:42 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2019 18:44 von Bitklopfer.)
Beitrag #4
RE: SPI Schnittstellen für mehrere Geräte nutzen
(30.01.2019 18:27)Hoffmakl schrieb:  .....
Seitdem ist die COM Schnittstelle nicht mehr erreichbar.
Unter dem Windows Geräte-Manager bekomme ich die Fehlermeldung: Unbekanntes USB-Gerät (Fehler beim Anfordern einer Gerätebeschreibung.)

Gibt es da einen Weg zurück?

Hallo,
jooh ist klar... D0 + D1 bzw. man sagt eigentlich Port0 und Port1 gehören zu der Seriellen Schnittstelle die mit dem PC kommuniziert bzw. über die wird auch der Sketch hochgeladen.
Um wieder reinzukommen, ändere im Sketch die Ports und dann sage "Hochladen", doch bevor du das Hochladen startest legst den Finger auf den Resetknopf und wartest bis im IDE Fenster das Hochladen angezeigt wird... dann schnell den Finger vom Reset nehmen.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 18:47
Beitrag #5
RE: SPI Schnittstellen für mehrere Geräte nutzen
Da hast Du Dir aber kräftig ins Knie geschossen. Etwas vorher überlegen, wozu TX und RX gut sind, hätte es verhindern können.

Du kannst folgendes versuchen:
In der IDE die ausführlichen Meldungen beim Hochladen aktivieren.

Einfachen Blinksketch in die IDE. Reset-Button am ESP halten und wenn die IDE sagt, dass sie hoch lädt, den loslassen.
Das ist etwas wie Lotto spielen, Du brauchst evtl. viel Geduld.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 20:03
Beitrag #6
RE: SPI Schnittstellen für mehrere Geräte nutzen
Ihr habt ja Recht....
Bitte nicht weiter erzählen.



1. ausführliche Ausgabe während Hochladen ist enabled.
2. Blink Versuch -> Hochladen


Output:
esptool v0.4.13 - © 2014 Ch. Klippel <ck@atelier-klippel.de>
setting board to nodemcu
setting baudrate from 115200 to 115200
setting port from COM1 to COM7
setting address from 0x00000000 to 0x00000000
espcomm_upload_file
espcomm_upload_mem
error: Failed to open COM7
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

COM7 kann wahrscheinlich nicht geöffnet werden, weil im Windows die COM Schnittstelle nicht mehr zur Verfügung steht.
"Unbekanntes USB-Gerät (Fehler beim Anfordern einer Gerätebeschreibung.) "
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 20:10
Beitrag #7
RE: SPI Schnittstellen für mehrere Geräte nutzen
Dann hilft wohl nur der alte Satz: Henkel ran schweißen und weg werfen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 20:21
Beitrag #8
RE: SPI Schnittstellen für mehrere Geräte nutzen
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Die COM Schnittstelle hat jetzt auch mit einem anderen ESP8266 das gleiche Problem.
Der CH34x Treiber scheint nicht mehr zu funktionieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  mehrere Bytes seriell einlesen. Verständnisprobleme Mosi 9 567 19.12.2018 16:07
Letzter Beitrag: Mosi
  mehrere leds blinken jennerlein 1 286 18.12.2018 09:25
Letzter Beitrag: hotsystems
  Mehrere Werte "ungefähr" vergleichen DL1AKP 8 994 06.09.2018 14:48
Letzter Beitrag: ardu_arne
  Scetch in mehrere Scripte aufteilen? Lanzet3 7 734 13.08.2018 20:55
Letzter Beitrag: ardu_arne
  Struct mit Defaultdaten ohne initalisieren nutzen? da_user 14 1.457 22.03.2018 19:11
Letzter Beitrag: da_user
  Mehrere Ausgänge mit einem Befehl auf High oder Low setzen dahans 1 1.862 10.01.2018 12:48
Letzter Beitrag: Tommy56
  Ampelschaltung mehrere Befehle möglichst gleichzeitig Jan5663 15 1.807 15.12.2017 15:46
Letzter Beitrag: Chopp
  Wie Programmiere ich mehrere if-Abfragen? Mr.Purz 7 2.304 12.12.2017 21:25
Letzter Beitrag: Tommy56
Question Mehrere HX711 an einem Arduino Nano Lambacher 59 9.180 17.10.2017 09:34
Letzter Beitrag: Tommy56
Lightbulb mehrere Funktionen mit Schalter mechastef 7 1.922 21.08.2017 22:34
Letzter Beitrag: SkobyMobil

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste