Pullup-Widerstände vom Breakout-Board entfernen

Ich verwende VL53L0X-Breakout-Boards zur Abstandsmessung auf I2C, jeweils mit eingebautem Level-Shifter und Pull-up-Widerständen (10kΩ, wie gemessen). Da ich viele davon an einen einzigen Bus anschließe (5 und mehr), muss ich die Pull-up-Widerstände entfernen, um den Gesamtwiderstand über einem kritischen Wert zu halten, etwa 1,63 kΩ für 5 V, wie hier erklärt, damit i2c niedrig ist . Die Pegelspannung geht nicht über 0,4 V.

Ich bin mir nicht sicher, ob ich den Widerstand auf der Platine richtig identifiziere und wie ich ihn entfernen kann. Es ist ein billiges Board von ebay, also natürlich keine Schaltpläne und so weiter. Das Board sieht so aus: [![board front][1]][1] [![board back][2]][2]

Dies ist ein besseres Bild von der Rückseite von Amazon: [![hier Bildbeschreibung eingeben][3]][3]

Durch Messen von Widerständen konnte ich den Widerstand als den einen "103" (nicht EDI- bearbeitet; danke) in der Mitte identifizieren, der ein 4-Wege-Widerstand ist. Es scheint mehr Dinge miteinander zu verbinden, also denke ich, wenn ich es vollständig entferne, wird das Board nicht mehr funktionieren. Ist es "von Hand" machbar (ich habe diese feine Spitze zum Löten, aber nicht viel Erfahrung mit Miniaturlöten)?

Ich freue mich über jeden Hinweis, ich habe Zahlenkenntnisse, das ist neu für mich :)

Das mit "103" (nicht "EDI") gekennzeichnete 8-adrige Gerät ist wahrscheinlich ein Widerstandspaket mit vier 10K-Widerständen (10.000 Ohm) (Wertcode ist "103"). Unten links auf dem zweiten Foto befinden sich zwei einzelne 10K-Widerstände.
EDI bearbeitet, danke :)) Die beiden linken gehen zu X- und G-Pins, die Klimmzüge befinden sich zwischen SCL-VIN und SDA-VIN.
Sie sollten wirklich in der Lage sein, selbst zu sehen, dass diese Bilder unscharf sind.
Soweit ich sehe, hat VL53L0X eine statische, nicht programmierbare I2C-Adresse. Sie können nicht mehr als einen Bus anschließen.
@oldfart die Adresse ist perfekt programmierbar, nur nicht persistent. Mit dem XSHUT-Pin holt man sie einzeln nach oben und programmiert die Adresse neu.
@OlinLathrop Ich habe ein besseres von Amazon hochgeladen. Die PCB-Leiterbahnen sind aber gut sichtbar und diejenigen, die i2c fließend beherrschen, werden kein Problem haben zu erkennen, wie die Komponenten zusammenpassen.
Ich betreibe nicht 7 Sensoren auf einem Bus … Meinst du „jetzt“?

Antworten (2)

Ist es [möglich, die I2C-Pull-up-Widerstände] "von Hand" zu entfernen (ich habe diese feine Spitze zum Löten, aber nicht viel Erfahrung mit Miniaturlöten)?

Ich glaube, ich habe den Schaltplan für Ihr Board nachgebaut (mit dem Board in meinen Händen wäre es einfacher) - und dann habe ich online einen Schaltplan für ein ähnliches (wenn auch nicht identisches) Breakout-Board wie Ihres gefunden, das zu meinem passt Analyse.

Ich bin also ziemlich zuversichtlich, aber Sie haben das Board in Ihren Händen und ich nicht, also überprüfen Sie bitte meine Annahmen.

Die schlechte Nachricht ist, dass Ihr Board, wie Sie wissen, nicht dafür ausgelegt ist, eine einfache Trennung der I2C-Pullups zu ermöglichen. Obwohl es einfach ist, den Pullup von SDA zu trennen, ist es für SCL etwas schwieriger. Mein Ansatz erfordert ein scharfes Skalpell, um Spuren zu schneiden, und ein kleiner Überbrückungsdraht muss hinzugefügt werden.

Ich habe bei einem der vielen Ebay-Verkäufer ein etwas fokussierteres Foto Ihres Boards gefunden , daher habe ich die Änderungen dort markiert:

VL53L0X-Breakout-Board mit Modifikationen zum Trennen von I2C-Pullups

Es gibt eine Reihe von Möglichkeiten, Ihre Anforderungen zu erfüllen. Ich gehe davon aus, dass Sie minimale Änderungen an den Breakout-Boards vornehmen möchten.

  • Blick auf die vertikale grüne Linie 4: Ich glaube, die beiden 10k-Widerstände im Widerstandspaket links von dieser Linie haben beide ihre oberen Anschlüsse an die 3,3 V des 3-poligen Reglers direkt darüber auf der Platine. Stellen Sie sich diese als "interne I2C-Klimmzüge" vor. Sie wollen diese nicht trennen.

  • Die beiden 10k-Widerstände im Widerstandspaket auf der rechten Seite der grünen Linie 4haben beide ihre oberen Verbindungen zum externen VINPin. Stellen Sie sich diese als "externe I2C-Klimmzüge" vor, und das sind diejenigen, die Sie trennen möchten.

  • Obwohl bisher auf keinem der Fotos leicht zu erkennen, fand ich ein weiteres Foto dieses Breakout-Boards, das zeigte, dass das 6-polige SOT323-Gehäusegerät die Bestnote hatte 702. Das passt dazu, dass das Gehäuse ein dualer N-Kanal-MOSFET ist (ähnlich wie zwei 2N7002-MOSFETs in einem Gehäuse). Beispielsweise ist das GSM7002T ein solches Gerät und hat den Top-Code 702:

GSM7002T Dual-N-Kanal-MOSFET-Pinbelegung

Unter der Voraussetzung, dass die wenigen kritischen Parameter (insbesondere Vgs) geeignet sind, könnten an dieser Stelle auch andere Dual-N-Kanal-MOSFET-Bausteine ​​verwendet werden, daher gehe ich davon aus, dass es eine Vielzahl anderer Bestnoten für diese Bauteile gibt, die auf den verschiedenen Breakout-Boards verwendet werden. Der Zweck dieses Geräts ist ein typischer Pegelwechsler (Pegelübersetzer) für die beiden I2C-Signale, da es laut VL53L0X-Datenblatt nicht direkt an einen I2C-Bus angeschlossen werden sollte, der auf etwas über 3,5 V hochgezogen wird, z ein 5V I2C-Bus.

  • Um die "externen I2C-Pullups" zu trennen, müssen Sie:
    • Schneiden Sie die Schiene an der Stelle ab 1, an der der externe Pull-up von getrennt wird SDA.
    • Schneiden Sie die Schiene an der Stelle ab 2, an der der externe Pull-up von getrennt wird SCL.
    • Löten Sie einen isolierten Überbrückungsdraht, wie für die Verbindung gezeigt 3, zwischen dem Drain D1des dualen N-Kanal-MOSFET und dem Stiftloch des SCL-Headers.

Dann können Sie zu jedem der beiden I2C-Signale einen geeigneten Pull-up-Widerstand hinzufügen, passend für den gesamten I2C-Bus. Job erledigt!


Später fand ich heraus, dass Pololu ein VL53L0X-Breakout-Board herstellte und sie lieferten ein schematisches Diagramm:

Schaltplan des Breakout-Boards Pololu VL53L0X

Dieses Schema zeigt schön die Verwendung der N-Kanal-MOSFETs als Pegelwechsler. Es ist nicht ganz genau für Ihr Board, aber die Unterschiede sind ziemlich gering, z.

  • Die Header-Pinbelegung ist offensichtlich anders.

  • Ihr Board hat wahrscheinlich einen 3,3-V-Regler (dies basiert auf den Top-Codes, die ich in verschiedenen anderen Ebay-Angeboten gesehen habe - ich kann den Top-Code des Reglers auf Ihren Fotos nicht lesen); Das Pololu-Board hat einen 2,8-V-Regler.

  • Anstelle diskreter Widerstände auf der Pololu-Platine werden 4 Widerstände durch das Widerstandspaket auf Ihrer Platine ersetzt.

  • Das Pololu-Board hat 47k Pull-Ups an XSHUTund GPIO1und 1k Serienwiderstände in beiden Signalen; Ihr Board hat 10k Pull-Ups und keine Vorwiderstände.

Aus einem schnellen Vergleich:

  • Pololu R1 = 4. Widerstand von links in Ihrem 10k-Widerstandspaket
  • Pololu R2 = 3. Widerstand von links in Ihrem 10k-Widerstandspaket
  • Pololu R3 = 2. Widerstand von links in Ihrem 10k-Widerstandspaket
  • Pololu R4 = Widerstand ganz links in Ihrem 10k-Widerstandspaket
  • Pololu R5 & R6 = separate 10k-Widerstände in der Nähe der XSHUTund GPIO1Header-Pin-Löcher auf Ihrem Board.

Ich habe keine Verbindung zu Pololu, aber ihre Dokumentation liegt immer weit über den nahezu null Informationen von Ebay-, Ali Express- und Amazon-Verkäufern usw., daher war ich ein glücklicher Käufer ihrer Produkte.

Wow, super, vielen Dank! Ich werde versuchen, Ihnen Bescheid zu geben. Für Pololu (und Adafruit) stimme ich zu, dass es gut ist, sie durch den Kauf ihrer Produkte zu unterstützen, für die überlegene Qualität der Dokumente, des Supports und der Herstellung; In diesem Fall ist es jedoch ihr Formfaktor, der für das Gerät, das ich bauen möchte, zu groß ist.
Ich habe jetzt die Widerstände auf der Platine gemessen und erhalte "Nullen" zwischen SCL-D1 und SDA-D2 sowie zwischen VIN und der oberen rechten Hälfte des Widerstandspakets. Warum sollte der SCL-D1-Jumper hinzugefügt werden? Auch aus den Pololu-Schaltplänen sollte es ausreichen, die Spuren von R1/R2 vor Q2A/Q1A zu schneiden, da SCL-Q1A- und SDA-Q1B-Spuren bereits vorhanden sein müssen?
" Ich erhalte "Nullen" zwischen SCL-D1 und SDA-D2 ... Meinst du 0 Ω oder Leerlauf?
@Transistor: 0Ω (plus etwas Messrauschen und Spurenwiderstand).
@eudoxos - " Warum sollte der SCL-D1-Jumper hinzugefügt werden? " Weil sonst nach dem Abschneiden an Punkt 2keine Verbindung von D1 besteht. " Es sollte ausreichen, die Spuren von R1/R2 vor Q2A/Q1A zu schneiden ". Das ist effektiv das, was ich auf Ihrem Board vorschlage (je nachdem, was Sie mit "vorher" meinen). Die Herausforderung auf Ihrem Board besteht darin, dass sich Ihre "R1 & R2" in diesem Widerstandspaket befinden. " SCL-Q1A- und SDA-Q1B-Spuren müssen bereits vorhanden sein " Ja, das sind sie, aber aufgrund des eingeschränkten physischen Zugangs zum einfacheren Schneiden 2trennt mein vorgeschlagener Schnitt den SCL-Q1A (D1) -Pfad und muss der Jumper hinzugefügt werden.

Basierend auf der hervorragenden Antwort von @SamGibson (und seinem Kommentar mit Vorschlag) wurde mir klar, dass die VIN-Spur nur zur Versorgung des Spannungsreglers und dieser beiden Pullup-Widerstände verwendet wird. So könnte ich die Spur an Stelle 5 ( nachdem VIN zum Regler geht) und 1 (der SCL und SDA durch 2x10k-Widerstand rechts vom 4er-Pack voneinander trennt) abschneiden; der Rest des Boards ist verbrauchsreguliert 2.8. Zum Schneiden ist Mikrobohrer sehr gut, besser als Stanley-Messer. Ich betreibe jetzt 7 Sensoren an einem Bus ohne Probleme. Funktioniert perfekt.

Brettschnitt 5 Schaltpläne

Steckbrett mit 7 vl53l0x Sensoren und OLED

Ich bin froh, dass die Modifikation für Sie funktioniert :-) Es gibt jedoch einen Grund, warum ich es absichtlich nicht vorgeschlagen habe - es lässt SDA und SCL über 20 k miteinander verbunden, dh über die beiden rechten 10 k-Widerstände im Widerstandspaket. Messen Sie es und Sie werden sehen, dass ich richtig liege. Dies führt zu einem Übersprechen zwischen den beiden Signalen und kann zu Problemen führen (ich habe es gesehen). Wenn Sie wirklich an der Stelle schneiden möchten 5, müssen Sie zur Vermeidung des Übersprechens auch die Spur schneiden, die die oberen Pads der beiden rechten Widerstände verbindet. Allerdings dachte ich, das wäre schwieriger als mein Vorschlag. Es liegt an Ihnen :-)
@SamGibson: Du hast Recht, sie haben SDA und SCL 20k zwischen sich :)) Wenn ich sowohl bei (5) als auch bei (1) schneide, ist das in Ordnung? Ich suche nach einer Lösung ohne Überbrückungsdrähte, es ist schwieriger, sie hinzuzufügen.
" Wenn ich sowohl bei (5) als auch bei (1) schneide, ist das in Ordnung? " Ja, das sieht nach einem guten Plan aus - es ist einfacher als mein Vorschlag (der einen Jumper verwendet), solange die Leute an Punkt schneiden können 5( Wenn Sie nur eine Klinge verwenden, dachte ich, der begrenzte Platz dort würde das schwierig machen, aber mit Ihrem Mikrobohrer ist dann das Schneiden eine Option, wie Sie es getan haben). 5Können Sie dieses "Cut at and 1" als Update in Ihre Antwort einfügen ? Danach ist es für mich in Ordnung, wenn Sie meine Antwort "ablehnen" und Ihre akzeptieren möchten, da Ihre Lösung die einfachere Lösung für Leute ist, die an Punkt schneiden können 5. +1 :-)
@SamGibson Ich habe getan, was Sie gesagt haben, obwohl Sie moralisch alle Lösungspunkte erhalten sollten. Nochmals vielen Dank.