Werde ich Probleme haben, wenn ich versuche, eine I2C-Kommunikation zwischen 2 µC herzustellen, die von zwei verschiedenen Quellen gespeist werden?
Beide µC laufen auf 3,3 V, aber diese Spannung wird von einem anderen Regler (LM317) bereitgestellt. Genaue 3,3 V sind aufgrund der Widerstandstoleranz nicht garantiert. Da beide Regler die gleiche Masse haben, gibt es keine große Spannungslücke zwischen den µCs.
Ich bin mir ziemlich sicher, dass es funktionieren wird, aber ich hätte gerne die Bestätigung der EE-Community.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Ja, es wird funktionieren, auch wenn zwischen den beiden Reglern eine kleine Spannungslücke besteht. Diese Lücke muss jedoch kleiner als 0,7 V sein , um zu verhindern, dass die innere Schutzdiode leitet und den Chip im Laufe der Zeit (wenig) beschädigt. Die Versorgung muss genau sein, um ein Anhängen zu verhindern. Zur Konfiguration des LM317-Reglers sollte ein Widerstand mit niedrigem Toleranzwert verwendet werden.
Beim Hochfahren werden nicht beide µC gleichzeitig mit Strom versorgt. Die Busleitung wird schließlich vor beiden µC (über R1 und R2) mit Strom versorgt. Dies sollte jedoch aufgrund des geringen Stromflusses (dank des hohen Pull-up-Widerstandswerts) keinen Schaden anrichten.
Danke an JimmyB, glen_geek und Janka, die mir im Kommentar geholfen haben.
Ja, was Sie vorschlagen, funktioniert, solange die Pullups auf die niedrigere der beiden Versorgungsspannungen gehen. Natürlich muss dieses Angebot eine gewisse Marge über der garantierten Mindestobergrenze für IIC liegen. Ich weiß nicht mehr, was das ist, aber 3 V sind in Ordnung.
Denken Sie an den maximalen Senkenstrom, um eine Leitung niedrig zu halten. Das sind 3 mA, wenn ich mich recht erinnere (Ihre Aufgabe zu überprüfen). Das heißt, bei 3 V Versorgung dürfen die Pullups nicht kleiner als 1 kΩ sein.
Wenn Sie nachschlagen, wie I2C tatsächlich funktioniert, werden Sie schnell feststellen, dass es nicht so schwierig ist, es mit mehreren Spannungspegeln zu verwenden. Bis das Delta zu groß wird (z. B.: 1,8 V und 5 V)
Alles, was I2C tun kann, ist, die Leitung nach unten zu ziehen. Dafür braucht man die Pullup-Widerstände.
Wenn Sie dies wissen, können Sie den niedrigsten Spannungspegel als Pull-up verwenden und dann sicherstellen, dass die MCU mit höherer Spannung dies als logisch hoch mit genügend Spielraum erkennt. Für diesen Spielraum müssen Sie sich die Buskapazität und die erforderlichen Timings ansehen.
Das Gegenteil ist auch möglich, aber wie @M.Ferru erklärte, müssen Sie unter der Schwelle der internen Schutzdioden bleiben. Diese Methode wird nicht empfohlen.
Eugen Sch.
M.Ferru
Eugen Sch.
Janka
M.Ferru
glen_geek
M.Ferru
JimmyB
M.Ferru
JimmyB
M.Ferru
glen_geek