BEARBEITEN: Dies wurde mehrmals wiederholt, also ganz oben: Ja, es ist bekannt, dass es keinen "Standard" für I2C-Inter-Device-Anschlüsse gibt, aber diese Community kann mit Sicherheit eine Liste von "Leitpunkten" formulieren Solche Verbindungen basieren auf dem Signalverhalten, der Rauschminimierung und der Risikominderung aufgrund falscher Verbindungen.
Nach meinem Verständnis hat NXP den I2C-Standard definiert, ohne eine Pinbelegung für I2C-Steckverbinder anzugeben. Die einzige Anleitung von NXP scheint zu sein, eine Erdung und / oder Vss zwischen SDA und SCL zu platzieren, wenn Vss / Gnd über die Verbindung übertragen werden.
Durch den Kauf von verschiedenen I2C-Modulen habe ich eine Vielzahl von I2C-Pinbelegungen und ein bisschen mehr Zeit, um die verschiedenen kleinen Bändchen-Kabel-Umschalt-Shims nachzuverfolgen, die ich für sie herstellen musste.
z.B
- Mono-OLED-Modul: SCL, SDA, GND, 5V (offensichtlich nicht ideal, da Takt und Daten nebeneinander liegen.
- Sensor Shield für Arduino: SDA, SCL, GND, 5V (wieder nicht ideal, plus SCL / SDA-Switch)
- Farb-LCD-Modul: SCL, GND, 5 V, SDA (Yay!)
- No-Name-I2C-Repeater: SCL, 5V, GND, SDA
Meine Frage lautet also :
Gibt es eine endgültige / maßgebliche Richtlinie für die Pin-Out-Sequenz des I2C-4-Pin-Steckers, bei der sowohl Vss als auch GND vom Host zum Gerät übertragen werden sollen?
Ist dies nicht der Fall, gibt es ein Verzeichnis der I2C-Module / -Geräte, in dem die Pinbelegung aufgeführt ist, die sie jeweils übernommen haben, auch wenn diese unvollständig ist?
Klarstellung: Suchen Sie nach Richtlinien wie "Vss näher an SCL bringen, weil ..." anstatt nach einem definierten Standard, den es eindeutig nicht gibt.
quelle
Antworten:
Ich habe vor kurzem meine eigenen so weit wie I2C-Anschlüsse gehen. Der Stecker selbst ist nicht sehr wichtig, im Moment verwende ich nur 100mil Pitch Header (normalerweise weiblich an Bord, es ist also nicht so pokey, wenn nicht verbunden), aber jeder 4plus Pin-Stecker wird ausreichen. Zusätzlich benutze ich den P82B715von TI als I2C-Bus-Extender. Dies überwindet die Kapazitätsprobleme, die mit langen I2C-Drop-Off-Boards verbunden sind, für die I2C ursprünglich nicht vorgesehen war. Ich habe viele verschiedene Kombinationen ausprobiert, wie in den Beispielen, die Sie angegeben haben, und ich habe absolut keinen Unterschied in der Leistung bemerkt. Ich glaube, das liegt daran, dass I2C relativ langsam ist und Interferenzen zwischen SDA und SCL kein großes Problem darstellen. Grundsätzlich ist die Anstiegszeit für Spannungen (wenn Störungen auftreten) auf dem Bus viel geringer als eine Bitlänge. Das ist vielleicht nicht das, was Sie hören möchten, aber es bietet mehr Möglichkeiten. Persönlich habe ich mich für [VCC, SDA, GND, SCL] entschieden, um einfach auf diesen Chip zu geroutet zu werden und auch immun gegen eine Verwechslung von VCC und GND zu sein, wenn ich sie rückwärts einstecke.
quelle
Als der I2C-Bus (Inter-Integrated Circuit) zum ersten Mal eingerichtet wurde, sollte er nur Chips auf einer einzigen Leiterplattenbaugruppe verbinden. Es war nie vorgesehen, Kabel zum Verbinden mehrerer Platinen miteinander zu verwenden, und daher wurden keine Steckverbinder für diesen Zweck definiert.
Die einzigen "Standard" -I2C-basierten externen Schnittstellen, die mir bekannt sind, sind der kurzlebige ACCESS.bus zum Anschließen von Benutzeroberflächengeräten an Computer und der VESA-Anzeigedatenkanal zum Abrufen von Monitorinformationen über VGA-, DVI- und HDMI-Anschlüsse.
quelle
Keine Standardbelegung, kein Standardstecker. Der I2C-Standard ist für solche Dinge nicht wirklich geeignet. Es wird auf Busebene angegeben, nicht auf Geräteebene. Wenn Sie beispielsweise ein I2C-Gerät anschließen möchten, wissen Sie anhand des Standards, ob sich die Pullups auf dem Host oder auf dem Gerät befinden? Viele andere Dinge, die Sie auch nicht wissen, wie z. B. wo Ihre Kabelkapazitäten sind, was Vcc sein muss ...
Tatsächlich gibt es sogar I2C-Geräte, die zusätzliche Leitungen für Interrupts und andere einfache alte digitale E / A benötigen. Wie fügt man diese zum Standard hinzu, wenn man sich nicht einig ist, wie viele Pins man benötigt?
Fazit: Wenn Sie Portabilität und Stabilität in Ihren Interconnects suchen, sind I2C und SPI nicht das, wonach Sie suchen müssen.
quelle
Viele Menschen verwenden eine Art Stecker, um I²C-Signale und Strom zwischen zwei Leiterplatten zu übertragen. Beispielsweise,
Einige allgemeine Tipps zum Übertragen von I²C-Signalen über größere Entfernungen:
ps: Ich sehe, dass Wikipedia: I²C Circuit Interconnection mit dieser Frage verknüpft ist.
quelle
Während es keine I²C-Pinbelegung oder Steckernorm gibt, gibt es eine ganze Reihe von I²C-Einsatzorten, die standardisiert sind. Einige, die mir in den Sinn kommen, sind Speichermodule (DIMM, SO-DIMM), Videoanschlüsse ( DDC in DVI , VGA ) und SM-Bus (ja, ihre Webseite sieht aus wie etwas, das Mitte der 90er Jahre von einem Kind gemacht wurde). Insbesondere der SM-Bus-Anschluss ist verschlüsselt und enthält nur I²C und Strom. SM-Bus unterliegt jedoch zusätzlichen Einschränkungen, sodass technisch nicht jedes I²C-Gerät an einen tatsächlichen SM-Bus angeschlossen werden sollte. Es gibt auch ein paar weitere proprietäre Stecker, wie z. B. Lego NXT-Sensoren.
quelle
Es gibt keinen Standard.
Es gibt keine gängige Praxis.
Fragen zur Entscheidung, was zu tun ist:
quelle
Wie üblich für jeden Post, der fragt, warum etwas [nt] standardisiert ist:
Von XKCD
quelle