Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. ESP32-GPIO0 -- I2C-Bus Problem [gelöst]

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ESP32-GPIO0 -- I2C-Bus Problem [gelöst]

    This topic has been deleted. Only users with topic management privileges can see it.
    • MartinSU
      MartinSU last edited by MartinSU

      Hallo,
      ich wollte Euch hier nur meine Erfahrungen mitteilen, bevor jemand anderes auch einen ganzen Tag einen Fehler sucht.
      Ich habe einen D1-Mini, an dem ich u.a. einen Helligkeitssensor TSL2561 per I2C-Bus angeschlossen habe.
      SCL an D4 = GPIO2 mit Pullup Widerstand 3K9 gegen +3V3
      SDA an D3 = GPIO0 mit Pullup Widerstand 3K9 gegen +3V3.
      So lief die Schaltung jetzt etwa ein Jahr.
      Jetzt wollte ich die Sache um einen BME280 (Temperatur- Luftfeuchtigkeits- und Luftdrucksensor) erweitern.
      Den BME280 habe ich parallel zu dem TSL2561 angelötet.
      Aber der BME280 wurde in der Tasmota-Oberfläche nicht erkannt bzw. die Werte nicht angezeigt.
      Die Eingabe I2CSCAN in der Konsole ergab: stat/tasmota_XXXX/RESULT = {"I2CScan":"Device(s) found at 0x39"}
      0x39 ist nur der TSL2561 Helligkeitssensor, 0x76 oder 0x77 wäre der BME280 gewesen.
      Die Eingabe I2CDRIVER in der Konsole ergab: stat/tasmota_XXXX/RESULT = {"I2CDriver":"8,9,10,11,12,15,16,17,...}
      => Für TSL2561 muss der Treiber Nr. 16 vorhanden sein.
      => Für BME280 muss der Treiber Nr. 10 vorhanden sein.
      (für den TSL2561 und dem BME280 wird eine spezielle Firmware benötigt, die ich mit dem Tasmocompiler erzeugt habe)
      Dann habe ich den BME280 an einen anderen D1-Mini angelötet, gleiche Firmware, gleiche Einstellungen (ohne TSL2561) und der BME280 wurde nicht erkannt. An einem ESP01S lief der BME280.
      Mit einem Oszilloskop konnte ich sehen, dass das SDA-Signal zwischen ca. 0,5V und 3V wechselte.
      Das SCL-Signal wechselte aber nur zwischen ca. 1,8V und 3V, 1,8V sind zu wenig als L-Pegel (TSL2561 nicht angeschlossen)
      Für mich war es unlogisch, warum der TSL2561 funktionierte, der BME280 nicht, trotz des Pegels.
      Am nächsten Morgen fiel mir ein, dass der SCL am D3 des D1-Minis angeschlossen ist. Der D3 ist der GPIO0. Und der GPIO0 hat eine Sonderstellung beim Flashen des ESP32.
      Also SCL an D4 (GPIO2) angelötet, Einstellung angepasst, Reboot und es funktioniert!!!!!
      Dass der SCL am GPIO0 ist, ist dem TSL2561 anscheinend egal, aber der BME280 hat in dieser Kombination Schwierigkeiten.
      Vermutlich gibt es noch andere I2C-Chips die so funktionieren oder Schwierigkeiten haben.
      Bei einem Blick in die Schaltung des D1-Mini sieht man, dass der GPIO0 über den Transistor U2 geschaltet wird. Vermutlich macht dieser Transistor die Verwendung des Pins etwas unbrauchbar, je nach Signalpegel von DTR und RTS.
      Bild1.gif
      Soweit meine Erfahrungen.

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      934
      Online

      31.7k
      Users

      79.7k
      Topics

      1.3m
      Posts

      bme280 gpio0 i2c tsl2561
      1
      1
      156
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo