i2c - "Hello World" geht nicht

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich habe einen Pi 3B+ mit dem aktuellen OS "Bullseye" aufgesetzt.

    ich möchte mit I2C-Projekten mit dem Pi starten und habe mit folgendem Tutorial gestartet.

    https://learn.adafruit.com/adafruits-rasp…configuring-i2c

    da Bullseye mit Python3 arbeitet, habe ich die Kommandos angepasst.

    Code
    sudo apt-get install -y python3-smbus
    sudo apt-get install -y i2c-tools

    Ich habe den I2C Sensor folgendermaßen angeschlossen:

    Code
    Raspberry Pi GPIO --- HMC5883L Breakout
    Pin Signal              Beschriftung 
    1   3V3 --------------- VCC 
    3   SDA --------------- SDA 
    5   SCL --------------- SCL 
    6   GND --------------- GND

    Leider bekomme ich mit keinem meiner I2C Sensoren eine Kommunikation hin.

    Das Kommando i2cdetect liefert leider keine Verbindung...

    Code
    sudo i2cdetect -y 1

    Bitte um Unterstützung...

    Danke!

  • Moin mfeicht,

    wenn ich das im Datenblatt richtig gesehen habe, dann wirst du mit i2cdetect auch nichts sehen.

    Der Baustein hat die Adresse 0x1e.

    Aber es scheint zu gehen. Siehe diesen Link: https://www.instructables.com/Interfacing-Di…-with-Raspberr/

    Er ist zwar älter, aber zeigt zumindest den Weg.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo

    Steffen.

  • Kann natürlich sein, dass auf dem Modul ein Spannungsregler verbaut ist.

    Ja, falls es genau dieses Modul (Seite 3) ist, dann wird ein Spannungswandler verwendet. Also der VCC soll dann 2,5 V sein. Bisschen komisch, da die Pegel von I2C dann auch nach unten gehen. Dass man die mit 5V einspeisen muss, hat man bestimmt wegen der Kompatibilität zum Arduino gemacht. Der hat soweit ich weiß keinen Spannungswandler mit 3.3V verbaut (alles 5V).

  • Hallo DeaD_EyE

    was soll daran falsch sein ?
    So weit mir bekannt, ich kann mich auch irren, ist sowohl beim 3,3 Volt wie auch dem 5,0 Volt digitalen HIGH Pegel die untere Spannung die Eingangsseitig noch als High erkannt wird mit 2,0 Volt definiert.


    Damit sollte es doch im Prinzip egal sein, ob der I²C Ausgangspegel nun 2,0V / 2,5V / 3,3V oder gar 5,0 V beträgt. Auf jeden Fall wäre die Signale sowohl für die 5,0V Arduino Boards , dem Raspi / dem Raspi PICOs mit 3,3V wie auch dem ESP Modellen 3,3V oder 5,0V kompatibel.


    Auf meinem Modul, wieder eines anderen Herstellers, ist ein 2,8V LDO SOT-23(5), sowie am SDA ein OPV SOT-23(6) verbaut. SCL hat nur eine Verbindung zum HMC5883L selber, welcher über einen Vorwiderstand 220 Ohm läuft.

    Steffen.

  • Zitat

    sowie am SDA ein OPV SOT-23(6) verbaut.

    Ja, das erklärt dann, wieso das funktioniert. Laut Datenblatt ist der I2C High-Pegel = VDIO * 0.8 und Low-Pegel VDIO * 0.2.

  • Moin Leute,

    Es wird schon wieder spekuliert...

    Warum warten wir nicht einfach bis mfeicht sich meldet und uns erzählt welches Breakoutboard er hat.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • hallo zusammen,

    vielen lieben Dank für euere Beiträge.

    Ich habe folgenden Baustein im Jahre 2019 gekauft:

    https://www.amazon.de/Youmile-QMC5883L-Magnetometer-Drei-Achsen-Magnetfeldmodul-Materiale/dp/B091YNR6F3/ref=cm_cr_arp_d_product_top?ie=UTF8&tag=psblog-21 [Anzeige]

    Auf dem Baustein stejht auch HMC5883L drauf. Es scheint aber viele Varianten zu geben.

    Dieser Baustein erfodert wohl 5V...

    Ich konnte ein Testprogramm für den Baustein über einen Arduino UNO zum Laufen (mit 5V) bringen. Allerdings mit einer speziellen Library. Die I2C Adresse ist auch anders wie im Standard,,,

    Mit dem Raspberry PI war das dann sehr komisch...

    Ich habe nur die VCC+5V/GND angeschlossen. Nach einer gewissen Zeit (20.-30sec) ist dann die Stromversorgung des PI zusammengebrochen (rote LED aus!)

    soweit mein Zwischenstand...

    mfeicht

  • Moin mfeicht,

    das mit dem Zusammenbruch der Spannung finde ich schon merkwürdig.

    In deinem 1.ten Beitrag hast du das Bauteil an 3,3V betrieben und da ist nichts passiert. Am Arduino Uno auch nicht, obwohl der LDO bei 800mA auch seine Grenze erreicht.

    Ich konnte bei der Lieferfirma nicht wirklich erkennen, welcher LDO verbaut ist. Kannst du die Buchstaben und Zahlen besser erkennen? Und dann hier posten.

    Ich meine das Bauteil mit den 3 Beinen.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo,

    @Bernd666 vielliecht hilft dir dieses Bildausschnitt weiter !? Diese Bezeichung des SOT23-3 ist auch nicht sehr aufschlußrecih.

    Meine Frage wäre jetzt ert einmal bevor es zum Zusammenbruch der Boardspannung 5 Volt auf dem Pi-Board kommt, ob das Modul via i2cdetect gefunden wird ?



    Was mich allerdings wundert, dass das SCL Signal keine Wirkliche Verbindung mit dem Chip hat !?
    Geht man vom Footprint des IC s aus, ist der SCL Anschluss Pin 1 = der rechte untere Pin der in einer Durchkontaktierung endet, und diese geht auf der Rückseite jedoch zum Pin SDA ?

    Ich habe mal anhand der Bilder dieses Moduls welches auch bei ALI angeboten wird, und anhand des Datenblattes von fred0815 versucht die Leiternahnverbindungen nachzu vollzoehen.

    Wie das Modul ohne ein CLOCK Signal arbeiten kann erschließt sich mir hier nicht.

    @mfeicht einfach mal eine Flachbatterie nehmen und dann an diesem Baustein versuchen herauszufinden welche Spannung am Pin unterdem K Aufdruck herauskommt. Sozusagen nur Vc und GND des Moduls mit dieser Batterie verbinden.

    Steffen.

  • Wenn der Sensor bereits an einem Arduino funktioniert hat, wird der SCL Pin mit sehr hoher Sicherheit in der Schaltung verbunden sein. Zum SMD LDO kann man mit der Bezeichnung 662K, auf einen XC6206P332MR schließen.

    Wenn der RPi nach dem Anschließen einer Schaltung, nach kurzer Zeit aus geht, würde ich mal zu 99,9% auf einen Fehler in der Schaltung bzw. beim anschließen von dieser, ausgehen.

  • Hallo,

    Wenn man von der Typenbezeichnung ausgeht, ist das ein 200mA LDO !? Damit überlastet man keinesfalls die 5V GPIO-Spannung der PINs 2 oder 4 !
    Die PullUps von den Anschluß-Pins der Platine mit 4,7K gehen direkt auf den Ausgang des LDO. Nur wenn dort aus irgendeinem Grund keine 3,3 Volt rauskommen, dann pfeift diese Überspannung auch auf das Pi zurück. Somit würde ich alle Versuche unterlassen, ohne wirklich zu wissen, welche Spannung der LDO liefert , dieses Modul noch einmal mit dem PI zu verbinden. Denn das PI, udn damit die GPIOs sind nur für 3,3 Volt ausgelegt. Und wie schnell hat man da das PI gekillt, wenn man da mehr anlegt ?

    Steffen.

  • Man kann jede Schaltung auch "falsch" anschließen und dann wird der Spannungsregler nicht nur max. 200mA vom RPi ziehen. Im übrigen könnte man mit einem Messgerät testen, ob der LDO Spannungsregler so funktioniert, wie er soll.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!