Kann ich ein Dupont-Kabel mit einem in der Mitte gelöteten Widerstand als Pullup-Widerstand für I2C-Kommunikation verwenden?

Die kurze Frage : Gibt es einen Unterschied zwischen der Verwendung (auf einem Steckbrett) eines standardmäßigen 10-K-Pullup-Widerstands mit Durchgangsbohrung und der Verwendung eines modifizierten Dupont-Kabels mit einem in der Mitte gelöteten 10-K-Pullup-Widerstand, wenn eine MCU und ein Peripheriegerät mit I2C eingerichtet werden? ? Das modifizierte Dupont-Kabel funktioniert in meinem Fall nicht.

Geben Sie hier die Bildbeschreibung ein

Umgebung : Steckbrett, die Espressif ESP32 MCU als I2C-Master mit Pin Nr. 21 als SCL und Pin Nr. 17 als SDA (die internen "schwachen" +-4,7K-Pullups sind aktiviert), ein Melexis MLX90393-Magnetfeldsensor als I2C-Slave auf einem Sparkfun Breakout-Board (Produkt https://www.sparkfun.com/products/14571 ; die 10K-Pullups auf dem Breakout-Board von Sparkfun sind ebenfalls aktiviert). Siehe Bild für das Steckbrett-Setup (Fokus auf den Pullup-Widerstand).

Die Software funktioniert einwandfrei und ich erhalte 5 Sensormesswerte pro Sekunde, wenn ich einen blanken 10K-Pullup-Widerstand zwischen dem Loch neben dem SCL-Pin Nr. 21 der MCU und einem Loch auf der 3,3-V-Schiene des Steckbretts verdrahte. Dies ist ein Standardverfahren für I2C-Schemata, um den I2C-SCL standardmäßig hoch zu ziehen. Gleiches für SDA.

Ich wollte jedoch die Verkabelung auf dem Steckbrett viel einfacher machen und ein modifiziertes Dupont-Kabel für den Pullup verwenden . Also nahm ich einen 30 Zentimeter langen Dupont-Draht, schnitt ihn in der Mitte ab und lötete einen Standard-10K-Pullup-Widerstand dazwischen und legte einen Schrumpfschlauch darum. Wenn ich die Impedanz zwischen den beiden Enden des Kabels messe, beträgt sie +-10K Ohm.

Also habe ich das modifizierte Dupont-Kabel neben den SCL-Pin Nr. 21 der MCU und die 3,3-V-Schiene des Steckbretts gesteckt (anstelle der Bare-Bone-Widerstände der vorherigen Konfiguration). Jetzt funktioniert das System nicht mehr* (die I2C-Kommunikation fällt aus).

Was könnte der (elektrische?) Grund für den Ausfall sein? Ich habe kein Oszilloskop, aber ich habe einen Logikanalysator.

Danke von einem Anfänger.

Wenn Sie Dupont-Kabel sagen , beziehen Sie sich auf ein Überbrückungskabel?
@king das ist ein anderer Name für sie en.m.wikipedia.org/wiki/Jump_wire siehe auch Molex-Kabel, JST-Kabel usw.
Ich bin gespannt, wie das Schneiden eines Überbrückungsdrahts, das Einlöten eines Widerstands und das Abdecken mit Schrumpfschlauch "viel einfacher" war als das Einstecken eines Widerstands in die Platine. Können Sie Ihre Überlegungen erläutern? Gab es eine andere Motivation?
@Elliot ist weniger kurzgeschlossen, länger, sodass es auf einem überfüllten Board einfacher zu handhaben ist, flexibel ist und länger hält als das Biegen eines bloßen Widerstands. Es ist nicht völlig von den Wänden unlogisch.
@ Elliot Das ist richtig. Es wird nur während der Entwicklung verwendet, wo die Verkabelung sehr oft geändert werden muss.

Antworten (3)

Nein, im Normalfall sollte das keinen merklichen Unterschied machen.

Aber vielleicht

  • Die Dupont-Header haben keinen guten Kontakt mit Ihrem Steckbrett
  • Ihr Setup ist in gewisser Weise marginal (Frequenz zu hoch?) Und diese zusätzliche Verkabelung hat es über den Rand gestolpert
  • Sie haben einen anderen Fehler gemacht (auf dem 2. Foto scheint es, dass Sie möglicherweise ein Steckbrett haben, das eine halbe Unterbrechung in den Stromleitungen hat, aber das letzte Foto ist ein 400-Loch-BB, das ich noch nie mit Unterbrechungen gesehen habe)
Danke für die Bestätigung. a) Ich habe die Kontakte der Dupont-Header noch einmal überprüft; Ich habe auch 2 Sätze modifizierter Dupont-Kabel hergestellt und sie auf 2 Steckbrettern getestet; b) Die Frequenz beträgt 100 kHz, was für I2C nicht so hoch ist (Tests mit 10 kHz und 400 kHz zeigen das gleiche Problem).
... c) Ja, ich habe wahrscheinlich einen weiteren Fehler gemacht, in der Hoffnung, es mit dem Logikanalysator herauszufinden und zu sehen, was mit dem CLK-Signal falsch läuft. Beachten Sie, dass die 10K-Pullups auch auf dem Sensor-Breakout-Board aktiviert sind, aber anscheinend keine Wirkung haben (obwohl ich 10K zwischen dem SCL-Pin und dem VCC-Pin messen kann, wenn ich den Sensor trenne). Vielleicht sollte ich alles auf ein PCB-Perfboard löten, aber das ist eine Menge Arbeit, und das Projekt ist ehrlich gesagt nicht bereit dafür.

Ich habe einige drastische Maßnahmen ergriffen, um dem auf den Grund zu gehen; und die Einrichtung funktioniert jetzt :)

  1. Ich habe irgendwo gelesen, dass I2C hauptsächlich zum Anschließen von I2C-Geräten entwickelt wurde, die sich relativ nahe an der MCU befinden. Ich habe 30-cm-Dupont-Kabel verwendet, um die Sensorplatine (I2C-Slave) an die MCU (I2C-Master) anzuschließen. Also habe ich diese durch kürzere 10cm Dupont-Kabel ersetzt und jetzt funktioniert es einwandfrei (die externen Pullup-Widerstände werden auch nicht mehr benötigt).

  2. Ich verwende eine andere neue und andere Art von Steckbrett. Ich habe das transparente Steckbrett, das für dieses Projekt verwendet wurde, zerlegt und festgestellt, dass die Metallverbindungen von schlechter Qualität waren (obwohl ich einige davon 3 Monate lang ohne Probleme verwendet habe). Ich gehe davon aus, dass sich die Anschlüsse eines Steckbretts mit der Zeit abnutzen und ein Steckbrett bei intensiver Nutzung hin und wieder ausgetauscht werden muss.

Ich hoffe, dass diese Annahmen richtig sind und dass die Berichte auch anderen helfen werden.

Geben Sie hier die Bildbeschreibung ein

Es gibt definitiv einen Unterschied: Das eine funktioniert und das andere nicht.

Aber Spaß beiseite: Das Dupont-Kabel wird mehr Kapazität einführen. Sie erwähnen die SCL-Frequenz nicht, aber wenn die Kapazität zu hoch ist, verschlechtert sich die SCL-Anstiegszeit. Es kann sich bis zu dem Punkt verschlechtern, an dem es nicht mehr über VIH geht, an welchem ​​​​Punkt I2C nicht mehr funktioniert.

Schade, dass Sie kein Oszilloskop haben, denn das könnten Sie leicht überprüfen. Der schnellste Weg, dies zu überprüfen, besteht darin, die I2C-Frequenz auf etwas lächerlich Langsames zu senken; Wenn das funktioniert, ist die Kapazität Ihr Problem. Wenn es Ihr Problem ist, können Sie es beheben, indem Sie Ihren Pullup-Widerstand verringern, wodurch die ansteigenden Flanken bereinigt werden.

Ich habe gerade Ihre Antwort auf die andere Antwort gesehen, dass Sie bereits 10 kHz ausprobiert haben ... Ich werde meine Antwort vorerst stehen lassen, falls dort noch etwas anderes hilfreich sein könnte.