Forum: Mikrocontroller und Digitale Elektronik Esp32 fehlerhafte I2C Kommunikation in esphome


von Joachim M. (joachim_m465)


Lesenswert?

Hallo,

evtl. würde mir bitte jemand weiterhelfen. Mit einem Olimex ESP32 Poe 
bekomme ich keine saubere i2C Kommunikation zustande. Die I2C 
Standardpins Gpio13,16 haben mit 2,2k das Pullup gegen 3,3v. bereits auf 
dem Board. Betreiben würde ich gerne u.a. mehere PCF8574, was mir nicht 
gelingt. Die Software stellt esphome zur Verfügung - 
Standardkonfiguration. Aufgebaut wurde alles sauber auf einem Steckbrett 
mit Kabelbrücken (keine Dupont!). Natürlich unterschiedliche 
Addresierung. 2 PCF8475 funktionieren wunderbar... aber dann. MCP23017 
habe ich schon gar nicht zum laufen bekommen. Warum auch immer... 
Softwareseitig ist die Datenrate auf 50khz eingestellt. Jetzt habe ich 
mal was gelesen das bei dieser Frequenz der Pullup 10k betragen 
sollte... Was kann ich noch tun? Messgeräte die Profis nutzen, habe 
leider nicht zur Verfügung. Aber schon mal vielen Dank!

von Joachim M. (joachim_m465)


Lesenswert?

ach ja... ein scan funktioniert nur sporadisch

von Helmut -. (dc3yc)


Lesenswert?

Foto deines Aufbaus? Hast du Abblock-Cs benutzt? Welche 
Spannungsversorgung?

von Joachim M. (joachim_m465)


Lesenswert?

Die Spannungsversorgung wird mit 3,3V, zur Verfügung gestellt von poe. 
Kondensatoren habe ich nicht verwendet. Mache ich mal...

von Rainer W. (rawi)


Lesenswert?

Joachim M. schrieb:
> Jetzt habe ich mal was gelesen das bei dieser Frequenz der
> Pullup 10k betragen sollte.

Stand da auch eine stichhaltige Begründung?
2.2kΩ als Pull-Up muss funktionieren.

> Was kann ich noch tun?
Ein Oszilloskop würde dir sofort verraten, wie die Signale auf dem Bus 
aussehen. Ein Logikanalysator würde dir bei logischen Problemen mit den 
Daten helfen.

> Messgeräte die Profis nutzen, habe leider nicht zur Verfügung.
Brauchst du auch nicht. Ein kleiner, für solche Messungen ausreichender 
Logikanalysator kostet 8€, ein mini Oszi (das je nach Messbedarf 
allerdings auch schnell an seine Grenzen stoßen kann) unter 50€.

Joachim M. schrieb:
> MCP23017 habe ich schon gar nicht zum laufen bekommen.
Dann wäre es jetzt Zeit für einen I2C-Scanner und den Schaltplan.

: Bearbeitet durch User
von Joachim M. (joachim_m465)


Lesenswert?

ja, das ist wohl war. Bevor ich weiter in die Glaskugel stiere....hohle 
ich mir mal entsprechendes Analysewerkzeug. Dann müssen die Helfenden 
auch weniger mutmaßen... aber danke

von Peter N. (alv)


Lesenswert?

Rainer W. schrieb:
> Dann wäre es jetzt Zeit für einen I2C-Scanner

Apropos:
Wie funktioniert so ein I2C-Scanner auf dem Pi?

Ein selbstgebauter mit PicoMite auf dem Pico funktioniert nur teilweise:
Lese ich von jeder I2C-Adresse, melden sich einige I2C-Module.
Schreibe ich (0) auf jede I2C-Adresse, und lese dann, melden sich einige 
weitere Module, aber einige immer noch nicht.

Was muß ich anstellen, damit sich jedes I2C-Modul auf seiner Adresse 
meldet?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Werden Abblockkondensatoren jetzt als Verschwörung der 
Kondensatorindustrie abgetan oder wieso passiert es immer wieder, das 
die Leute sie nicht einbauen?
Kinners, CMOS braucht diese Kondensatoren nicht nur gegen EMI, sondern 
auch als Reservoir. Und bitte an jeden Baustein, also an den MCP genauso 
wie an den Mikrocontroller.

Peter N. schrieb:
> Was muß ich anstellen, damit sich jedes I2C-Modul auf seiner Adresse
> meldet?

Nur das ACK Bit nach der Startbedingung und Adressenanfrage abfragen. 
Stopbedingung senden und dann mit der nächsten Adresse weitermachen.

: Bearbeitet durch User
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.