Ich verstehe, dass in I2C-, SCL- und SDA-Leitungen Pull-up-Widerstände verwendet werden und die Pin-Treiber Open-Collector-NPN-Geräte sind, die Pins gegen Masse treiben können. Dies gibt I2C den Vorteil, dass der gleiche Bus jetzt mit mehreren Slaves geteilt werden kann, und selbst wenn zwei oder mehr Slaves versehentlich versuchen, den Bus gleichzeitig zu betreiben, wird das System nicht beschädigt.
Dies kann aber auch mit PNP-Open-Drain-Treibern und Pull-Down-Widerständen auf SDA- und SCL-Leitungen erfolgen. Dinge wie Clock-Stretching und Multi-Master-Arbitration können auch damit erreicht werden.
Hat die aktuelle Implementierung des I2C-Protokolls Vorteile gegenüber der oben vorgeschlagenen alternativen Implementierung?
Antworten:
Elektrisch ist dies sinnvoll, da Masse die einzige gemeinsame Verbindung für alle Geräte an einem IIC-Bus ist. Dies ist eine weitaus geringere Einschränkung, als zu erzwingen, dass Strom die gemeinsame Verbindung für alle IIC-Geräte ist, wie dies erforderlich wäre, wenn die Leitungen über Pulldowns hoch und niedrig getrieben würden.
Beachten Sie, dass nicht alle IIC-Geräte aus demselben Netz oder derselben Spannung gespeist werden müssen. Dies wäre nicht der Fall, wenn beide Busleitungen auf die einzige gemeinsame Netzspannung geschaltet werden müssten.
quelle
In der guten alten Zeit waren TTL-Fahrer viel besser darin, ein Signal herunterzuziehen, als es hochzuziehen. Daher wurden Protokolle wie I2C, aber auch Interrupt-Leitungen, Reset und andere unter Verwendung eines Pull-Ups mit verteiltem Pull-Down implementiert.
quelle
Es ist einfacher, Masse als gemeinsame Referenz für Subsysteme zu verwenden, die unterschiedliche Versorgungsspannungen aufweisen können. Wenn Sie PNP-Transistoren zum Hochziehen auf eine Versorgungsspannung verwenden, müssten alle Subsysteme an die gleiche Versorgung angeschlossen werden.
quelle
Gute Antworten gibt es hier zuhauf, aber es gibt auch einen anderen Grund.
Wenn sich der Ruhezustand des Busses auf Masse befindet, kann nicht festgestellt werden, ob der Bus angeschlossen ist oder nur im Weltraum hängt.
Es ist normal, dass sich das Pullup auf dem Master-Gerät befindet. Sklaven haben normalerweise keine Klimmzüge. Dies liegt daran, dass der Pulldown-Strom, der erforderlich wäre, um einen niedrigen Pegel zu aktivieren, mit der Anzahl der an den Bus angeschlossenen Geräte zunehmen würde.
Wenn ein Slave an den Bus angeschlossen ist, kann er erkennen, dass die Leitung hochgezogen ist (vorausgesetzt, sie wird nicht verwendet) und weiß, dass der Bus tatsächlich vorhanden und leise ist. Dies wäre bei einem mit Masse vorgespannten Bus nicht der Fall.
quelle
Wenn ich die Frage richtig verstehe, ist ein Aspekt:
Zuallererst sollten Sie beachten, dass Sie keine Bipolartransistoren (NPN, PNP) verwenden, sondern MOSFETs (die in vier verschiedenen Varianten existieren).
Geräte, die die " Pull-up and NPN " -Variante verwenden, verwenden einen n-Kanal-Anreicherungs- MOSFET. Da die Source dieses MOSFET mit Masse verbunden ist, ist die Gate-Source-Spannung (Steuerung des Stromflusses) gleich der Spannung zwischen Gate und Masse. So kann der MOSFET mit einer Spannung zwischen 0 und Vdd angesteuert werden.
Es gibt drei Möglichkeiten, die Variante " Pull-Down und PNP " zu implementieren :
Verwendung eines p-Kanal- Anreicherungs-MOSFET
Auf einem NMOS- oder CMOS-IC benötigen p-Kanal-MOSFETs mit vergleichbaren Eigenschaften (Widerstand usw.) mehr Platz als n-Kanal-MOSFETs.
In der Mikroelektronik ist Platz Geld, so dass p-Kanal-MOSFETs nach Möglichkeit vermieden werden.
Verwendung eines n-Kanal-Anreicherungs- MOSFET
Dies würde erfordern, dass der Ausgang der den Transistor ansteuernden Logikschaltung eine "LOW" -Spannung der Versorgungsspannung (z. B. +5 V) und eine "HIGH" -Spannung über der Versorgungsspannung (z. B. +10 V) aufweist, wenn der Rest der Schaltung versorgt wird mit + 5V).
Der Grund: Die Source-Masse-Spannung beträgt Vdd, wenn der MOSFET leitet. Die Gate-Source-Spannung muss positiv sein, damit die Spannung zwischen Gate und Masse noch höher ist.
Sie benötigen zwei Spannungsversorgungen - und eine Schaltung, die den Ausgang der Logikschaltung von 0 ... + 5V auf + 5V ... + 10V ... verschiebt.
Verwendung eines n-Kanal-Depletion- MOSFET
Zu dieser Lösung kann ich leider nicht viel sagen. Auf einigen Google-Seiten wurde jedoch festgestellt, dass die Herstellung von Depletion-MOSFETs schwieriger ist als die von Enhancement-MOSFETs, weshalb diese vermieden werden.
Ich weiß von der Leistungselektronik (nicht von der Mikroelektronik), dass die oben beschriebene Variante mit zwei Leistungsversorgungen den MOSFETs mit geringer Leistungsaufnahme sogar vorgezogen wird. (Aber ich kann dir nicht sagen warum.)
BEARBEITEN Mit n-Kanal-Depletion-MOSFETs benötigen Sie wahrscheinlich eine negative Spannung (z. B. -5 V), sodass Sie auch zwei Versorgungsspannungen benötigen ...
quelle
Es gibt auch einen weiteren zusätzlichen Vorteil, wenn gemeinsame Erdungs- und Pull-up-Datenleitungen vorhanden sind (gegenüber gemeinsamen VCC und Pull-down-Leitungen):
Selbst wenn die ursprüngliche Absicht darin bestand, Geräte auf derselben Leiterplatte nur mit einer Spannweite von wenigen Zoll anzuschließen, war dies erfolgreich genug, so dass es jetzt nicht ungewöhnlich ist, dass die Leitungen einige Meter lang sind und "Geräte" angeschlossen werden, bei denen es sich um Computer oder etwas Ähnliches handeln könnte Komplexität, bei der einige Geräte über eine eigene Stromquelle verfügen (von unterschiedlicher Qualität, wenn Sie beispielsweise einen Netzstecker mit einer Batterie anschließen). Es ist besser, wenn die Verbindung "zumindest gut" funktioniert, auch unter nicht idealen und nicht den Spezifikationen entsprechenden Bedingungen.
Und viele derartig angeschlossene Geräte können irgendwie auch über andere Mittel verbunden sein, dann nur über I2C-Kommunikation. Wenn Sie Geräte miteinander verbinden, verbinden Sie sie in der Regel mit
common ground
- manchmal im Rahmen anderer Funktionen, manchmal nur, weil sie auf einem Metallgehäuse montiert sind und die Geräte auch mit dem Gehäuse (oder mit einem herkömmlichen Kühler oder ähnlichem) geerdet sind abgeschirmtes Kabel mit innenliegendem geerdetem Schirm - der auch die Erdung verbindet.Wenn Sie auch direkt Stromleitungen (VCC) von solchen Geräten anschließen, werden Sie Probleme bekommen, wenn diese Leitungen natürlich auf unterschiedlicher Spannung liegen würden (sicher, es kann hier und da 5V stehen, aber abhängig von der Konstruktion und den Teiletoleranzen der Stromquellen kann auch 4,9 V oder 5,2 V betragen oder sich sogar ändern, wenn es batteriebetrieben ist und manchmal einige Motoren laufen, wodurch die Leistung mit der Zeit abnimmt und ansteigt.
In einem solchen Fall liegt effektiv ein Kurzschluss zwischen den Stromquellen eines Teils von Volt vor. Abhängig von den Stromquellen (und dem Widerstand der Wege) können relativ hohe Ströme fließen, was nicht nur zu Energieverschwendung und Wärmeanstieg führt, sondern möglicherweise sogar zu Schäden ( oder Verkürzung der Lebensdauer) einiger dieser Quellen. Welches ist nicht gut.
Gemeinsame Erdung und Pull-Ups vermeiden solche Probleme - Masse ist Masse und Pull-Up-Widerstände ermöglichen nur sehr kleine Querströme, auch wenn sich die VCC stark von den Geräten unterscheidet.
quelle
Sie müssen nicht so viel Strom durch den Chip schicken, wenn er hochgezogen wird.
Da der Chip nichts steuert, wird lediglich ein Kurzschluss erstellt, um den Bus auf 0 zu setzen, und ein offener, um ihn auf 1 zu setzen.
Wenn es heruntergezogen wäre, müssten Sie Strom durch den Chip schicken, um den Bus auf 1 zu fahren. Wenn der Bus zufällig einen Kurzschluss aufweist, ist dies möglicherweise eine Menge Strom, den Sie durch diesen Chip fahren, um zu versuchen, ihn zu drücken bis zu 1.
Haftungsausschluss: Ich bin zu diesem Zeitpunkt ein ziemlich mieser EE.
quelle