Forum: Mikrocontroller und Digitale Elektronik Seeduino XIAO - Hardware-I2C geht nicht mit Wire (Arduino)


von Frank E. (Firma: Q3) (qualidat)


Angehängte Dateien:

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.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

denkst du nicht auch das paar Angaben fehlen?

von Rainer W. (rawi)


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?

von Frank E. (Firma: Q3) (qualidat)


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.

von Frank E. (Firma: Q3) (qualidat)


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 ...

von Monk (roehrmond)


Lesenswert?

Hast du die Signalpegel kontrolliert?

von Rainer W. (rawi)


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.

von Veit D. (devil-elec)


Lesenswert?

Frank E. schrieb:
> Veit D. schrieb:
>> Hallo,
>>
>> denkst du nicht auch das paar Angaben fehlen?
>
> Das wären?

hmm, nach knapp 6000 Beiträgen sollte man wissen das man das Modell 
angibt, es gibt nicht nur den einen XIAO. Testcode zeigt man auch.

: Bearbeitet durch User
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?


von Uwe (sailectric)


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...

von Stephan S. (uxdx)


Lesenswert?

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

von Frank E. (Firma: Q3) (qualidat)


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.

von Mario M. (thelonging)


Lesenswert?

Uwe schrieb:
> Es muss irgendein Problem mit den board variant bibliotheken in
> verschiedenen Versionen in verschiedenen Arduino-Implementierungen sein.

https://forum.seeedstudio.com/t/xiao-rp2040-i2c/261907/16

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.