Seeduino XIAO - Hardware-I2C geht nicht mit Wire (Arduino)

(Firma: Q3) #7717398
Lesenswert?

Hat jemand bei dem Winzling Seeduino XIAO das I2C-Interface mit der der Standard-Arduino-Lib "Wire" in Gang bekommen (IDE 2.x unter MacOS)?

Eigentlich will ich einen Adafruit Feuchtesensor "Stemma Soil Sensor" mit der Adafruit-eigenen "Seesaw"-Lib benutzen. Eine Betrachtung des Sourcecodes hat ergeben, dass auch dort nur ein "ganz gewöhnlicher" Aufruf von Wire eingebunden ist.

Der klassische I2C-Scanner für Arduino kann zwar problemlos compiliert und hochgeladen werden, erkennt den Sensor aber auch nicht. Der gleiche Code funktioniert übrigens auf einem Uno und Nano aus dem Stand völlig problemlos.

Angehängte Dateien:
#7717454
Lesenswert?

Frank E. schrieb:

Der klassische I2C-Scanner für Arduino kann zwar problemlos compiliert und hochgeladen werden, erkennt den Sensor aber auch nicht. Der gleiche Code funktioniert übrigens auf einem Uno und Nano aus dem Stand völlig problemlos.

Anderen I2C-Devices erkennt der I2C-Scanner, wenn er auf den Seeduino XIAO geladen wird? Und die Versorgungsspannung passt?

(Firma: Q3) #7717480
Lesenswert?

Rainer W. schrieb:

Frank E. schrieb:

Der klassische I2C-Scanner für Arduino kann zwar problemlos compiliert und hochgeladen werden, erkennt den Sensor aber auch nicht. Der gleiche Code funktioniert übrigens auf einem Uno und Nano aus dem Stand völlig problemlos.

Anderen I2C-Devices erkennt der I2C-Scanner, wenn er auf den Seeduino XIAO geladen wird? Und die Versorgungsspannung passt?

Nein, auch nicht. Es sieht alles danach aus, dass die Hardware nicht korrekt angesprochen wird.

(Firma: Q3) #7717481
Lesenswert?

Veit D. schrieb:

Hallo,

denkst du nicht auch das paar Angaben fehlen?

Das wären?

Dass die Kabel korrekt verbunden sind, hielt ich nicht für erwähnenswert, weil selbstverständlich. Auch dass die Betriebsspannung von XIAO und Sensor (3,3V) zusammen passen, betrachte ich als gegeben. Dass der gleiche Code (mit dem selben Sensor) am z.B. Nano funzt (hier allerdings die Pins A4/A5), schrieb ich auch ...

#7717495
Lesenswert?

Frank E. schrieb:

Dass die Kabel korrekt verbunden sind, hielt ich nicht für erwähnenswert, weil selbstverständlich.

Scheitert es am Ack vom Slave oder erscheinen Taktsignal und Adressbyte gar nicht erst auf dem I2C-Bus (SCL bzw. SDA), d.h. liegt es am Master oder am Slave? Wenn der Master auf den erwarteten Pins nichts raus schickt, helfen die Kabel für den I2C gar nichts.

#7734744
Lesenswert?

Es muss irgendein Problem mit den board variant bibliotheken in verschiedenen Versionen in verschiedenen Arduino-Implementierungen sein. Oder mit der toolchain. Ich habe unter aktuellem sloeber 4.4.3 mit seeduino SAMD 1.8.5 board file das gleiche Problem. Die beiden Ports an für SCL und SDA an PIN4 und PIN5 zucken einfach nicht und liegen konstant auf 3v3. Fehlende Pullups können es also nicht sein. Wenn ich den gleichen Quellcode in der Arduino classic 1.8.19 compliliere und hochlade, funktioniert es wunderbar. Ich verstehe es noch nicht, weil eigentlich beide Umgebungen sich die gleichen 3rd party boards und libraries reinziehen. Wenn ich Zeit habe, gucke ich mal mit nem Debugger rein. Ich bin auch sicher, dass ich auch unter sloeber schon mal in einem anderen Projekt ein I2C-Display ohne Probleme am XIAO betrieben habe. Insofern nervt es mich um so mehr. Wollte nur kurz was ausprobieren und plötzlich funktionieren triviale Sachen nicht mehr...

(Firma: Q3) #7735319
Lesenswert?

Stephan S. schrieb:

Monk schrieb:

Hast du die Signalpegel kontrolliert?

Der häufigste Fehler bei I2C sind zu hohe Werte für die Pullups. 10k führen zu schlechten Signalpegeln. Bei 3V3 ist 1k angemessen

Es geht nicht darum, dass die Kommunikation nicht zustande kommt bzw. gestört ist, es geht darum, dass an den entsprechenden Pins schlicht NICHTS passiert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren