i2c-Sensor SI7021 nicht erkannt

  • Hallo,

    ich habe neben dem Feuchte- und Temperatursensor SI7021 (auf Breakout-Board GY-21) u.a. einen Luftdruck-Sensor BMP180 angeschlossen. Letzterer funktioniert einwandfrei. Der SI7021 wird allerdings nicht erkannt. Er soll die Adresse 0x40 haben. i2cdetect hat mir den Sensor auch einmal kurz angezeigt, das hat sich aber nie wieder reproduzieren lassen. Mit einem Austausch-Sensor hatte ich auch keinen Erfolg.

    Ich habe auf der Messplatine Pull-Ups mit 10k für SCL und SDA. Den SI7021 habe ich an 3.3V angeschlossen. Der GY-21 soll 5V tolerant sein, daher habe ich auch das versucht, kein Erfolg.

    Hat jemand eine Idee, warum der SI7021 sich nicht (zuverlässig) meldet, während zwei weitere i2c-Bausteine einwandfrei arbeiten? Die Anschlüsse sind definitiv nach Plan ausgeführt, hat ja auch 1x kurz funktioniert...

    Vielen Dank,
    Stefan

  • Leitungslänge?
    Pullups zu hochohmig?
    Timing falsch 100k/400k?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Servus,
    wozu die pullups?
    Der Raspi hat schon welche (1k8) fest verbaut ...

    //EDIT: btw: geht's ein bisschen genauer? Mit GY-21 findet man alles mögliche, aber keinen SI7021 ...
    Ausserdem gibts da verschiedene Ausführungen, u.a. welche, die wiederum selbst noch mal pullups verbaut haben.

    cu,
    -ds-


  • wozu die pullups?
    Der Raspi hat schon welche (1k8) fest verbaut ...

    könnten ja trotzdem zu hochohmig sein, ist ja abhängig von der Leitungslänge, bzw. deren Kapazitäten die umgeladen werden müssen.
    Es könnte auch wieder an den Pegeln liegen, 3,3V <-> 5V?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hallo,

    wenn ich das richtig verstanden habe, gibt es das Board GY-21 mit verschiedenen Sensoren. Leider habe ich keine Infos über Pull-Ups auf dem Board gefunden. Es handelt sich jedenfalls um das hier: http://www.ebay.de/itm/Si7021-GY2…gsAAOSw8gVX4~kf

    Die auf meinem Board fest verbauten Pull-Ups habe ich wegen eines direkt verlöteten MCP79410-Timers und eines ebenso direkt verbauten AD-Wandlers. BMP180 und SI7021 werden bei Bedarf per Buchsenleiste eingesteckt.

    Momentan verwende ich ein Kabel mit ca. 20cm Länge.

    Der SI7021 kann 400kHz, da sollten doch - wenn überhaupt - eher niederfrequentere Chips aussteigen, oder?

    Vielen Dank,
    Stefan

    könnten ja trotzdem zu hochohmig sein, ist ja abhängig von der Leitungslänge, bzw. deren Kapazitäten die umgeladen werden müssen.
    Es könnte auch wieder an den Pegeln liegen, 3,3V <-> 5V?

    Einmal editiert, zuletzt von RasBees (10. Juli 2017 um 22:49)

  • Hallo,

    leider konnte ich keinen Schaltplan finden. Ich habe zwar von einem gelesen, der angeblich vorhandene SDA/SCL-Ausgangswiderstände überbrückt haben will, der scheint also einen Schaltplan entdeckt zu haben, die Spur verlief aber leider rasch im Sande...

    Stefan


    Hi,
    hast Du mal geschaut ob es zu dem Teil irgendwo einen Schaltplan gibt ...
    Irgendwie habe ich den Eindruck, dass da neben pullups ein Spannungsregler verbaut ist.

    cu,
    -ds-

  • Da hilft dann nur ausmessen ...
    Aber nicht am Raspi anstecken ...
    Wenn Du 3V3 an Vin anlegst, was hat dann der Chip (SI7021) am Vcc Pin?
    Was liegt dann an SCL/SDA an?
    Was liegt an, wenn Du 5V an Vin ansteckst (Vcc Chip und SCL/SDA)?
    Dieser 662K ist in der Tat ein LDO mit Vin 5V und Vout 3V3.
    Ich vermute jetzt mal, der Chip hat dann 3V3 und SCL/SDA haben 5V ...
    Das ist dann eher schlecht ...
    Also müsstest Du die Pullups lokalisieren und entfernen. Ich tippe da ganz stark auf das Bauteil 103 ...

    cu,
    -ds-

  • Hallo,

    mein Board hat nur VIN/GND/SCL und SDA, also keinen 3V3.

    Angeschlossen an 5V messe ich direkt an der Lötstelle des Boards:
    VIN: 5.0V
    SCL: 3.3V
    SDA: 3.3V

    an 3V3 angeschlossen:
    VIN: 3.3V
    SCL: 3.1V
    SDA: 3.1V

    !!! An 5V ist der Sensor jetzt doch da!!! Den spärlichen Angaben zum Board zufolge würde ich aber doch trotzdem mit ausreichenden 3V3 rechnen, oder? Aber offensichtlich braucht der halt doch 5V, warum das bei meinem ersten Versuch nicht funktionierte...???

    Vielen Dank,
    Stefan


  • Hi,
    naja ... ok, es funktioniert so weit, dass Du den mit 5V befeuerst und trotzdem 3V3 auf dem Bus hast.
    Ist ja schon mal was ...
    Solltest Du im Dauerbetrieb/unter Last/bei längeren Leitungen Probleme bekommen wirst Du imho allerdings nicht umhin kommen mal das pullup-Durcheinander zu ordnen ;)

    cu,
    -ds-

  • Hallo,

    so ein Grmpf...!!! Habe die 5V jetzt fest verdrahtet und alles nochmal wie vorhin gemessen, nur der SI7021 taucht jetzt wieder nicht mehr auf. Meinst Du, die parallel geschalteten Pull-Ups verhindern, dass SDA und SCL auf Null gehen können?

    Ich habe wie gesagt jeweils 10k Pull-Up verbaut. Was der BMP180 und der SI7021 auf ihren Breakout-Boards haben, kann ich leider nicht sagen. Das Board sollte aber halt auch ohne die beiden Breakout-Boards, also nur mit den fest verbauten i2c's funktionieren. "Entlaste" ich die Pull-Up-Situation, indem ich den BMP180 abziehe, ändert sich an den anderen i2c's allerdings nichts.

    Stefan



    Hi,
    naja ... ok, es funktioniert so weit, dass Du den mit 5V befeuerst und trotzdem 3V3 auf dem Bus hast.
    Ist ja schon mal was ...
    Solltest Du im Dauerbetrieb/unter Last/bei längeren Leitungen Probleme bekommen wirst Du imho allerdings nicht umhin kommen mal das pullup-Durcheinander zu ordnen ;)

    cu,
    -ds-

  • Hi,
    das kann schon sein, dass die pullups eine Rolle bei Deinem Problem mit dem SI7021 spielen ...
    "Normalerweise" brauchst Du keine pullups verbauen ... die am Raspi sollten aureichen (wobei die für meinen Geschmack mit 1k8 fast ein wenig klein dimensioniert sind - aber die Macher werden schon wissen, was sie tun).

    Alles, was da noch an pullups dazu kommt verringert halt den Gesamt-Widerstand noch weiter, weil die ja parallel geschaltet sind.
    Blöderweise ist das an dem SI7021 ohne Schaltplan schwierig zu sagen, was da jetzt pullup ist und was nicht.
    Rein vom Gefühl her würde ich sagen, dass der Baustein 103 ein Widerstands-Array mit 10k ist und zwei von den drei Widerständen als pullups auf 3V3 verwendet werden.

    Der BMP hat scheinbar dasselbe Spielchen drauf: Spannungsregler, 10k pullups ... vorausgesetzt das Bildchen hier stimmt -> http://makertreeebayimages.azurewebsites.net/ebayimages/eba…t/GY-65-SCH.jpg

    10k machen jetzt erst mal "nur" ca. 200-300 Ohm weniger aus, aber dreimal ist dann schon fast 1k ... ok, sind bei 3V3 ca. 3 mA, könnte also noch gehen ohne dass es Rauchzeichen gibt.

    Schwierig, Dir da jetzt das richtige zu raten ...

    Ich würde mir die betroffenen Sensoren ohne breakout besorgen und die Platinchen dazu selbst basteln, evtl. mit Jumpern zum Zuschalten der Pullups ...
    Der Aufwand sollte sich auf einer Streifenraster-Platine in Grenzen halten.

    //EDIT: ach ja ... was in dem Zusammenhang auch immer gerne genommen wird sind Wackelkontakte, Kabebrüche und kalte Lötstellen ... ;)

    cu,
    -ds-

Jetzt mitmachen!

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