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.
Hallo, denkst du nicht auch das paar Angaben fehlen?
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?
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.
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 ...
Hast du die Signalpegel kontrolliert?
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.
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
Ich scheine nicht der Einzige mit dem Problem zu sein: https://forum.seeedstudio.com/t/xiao-problems-with-wire-library/253101 https://wiki.seeedstudio.com/Arduino_Software_I2C_user_guide/#i2c-scanner-for-arduino ... es wird empfohlen, eine Software-I2C-Lib zu beutzen: https://github.com/Seeed-Studio/Arduino_Software_I2C
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...
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
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.
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
Frank E. schrieb: > 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. Und dadurch, dass es unter einer anderen Umgebung funktioniert, ist klar, dass es nicht an der HW liegt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.