Ich möchte meinen Mikrocontroller (dsPIC33E) über USB mit einem PC verbinden. Da der jeweilige Mikrocontroller keine eingebaute Hardware für das USB-Protokoll hat, muss ich einen externen Chip (z. B. TUSB1106PWR oder MAX3454EEUD+) verwenden, dh einen USB-Transceiver, den ich an einen UART-Port des Mikrocontrollers anschließen möchte.
Der Mikrocontroller hat eine eigene isolierte Stromversorgung (3,3-5 V), und was ich wissen möchte, ist, muss ich den Datenbus über Optokoppler isolieren?
Bei der Stromversorgung gibt es aus meiner Sicht drei Möglichkeiten:
Ergänzung zur Ausgangsfrage:
Nehmen wir an, ein Mikrocontroller hat seine eigene (isolierte) Stromversorgung, und dieselbe Stromversorgung wird zur Versorgung des USB-Transceivers verwendet. Jetzt hat der PC eine eigene (möglicherweise isolierte) Stromversorgung. Ich habe genau so eine Situation.
Ich werde jetzt eine Reihe von Fragen schreiben, ich entschuldige mich, wenn ich die Fragen zu stark vereinfacht habe. Einfach ja oder nein genügt bei einem Bezug auf eine Frage:
Q1. Wenn die beiden Massen nicht miteinander verbunden sind, liegt zwischen den beiden Massen keine Spannung an, da kein Bezugspunkt vorhanden ist - richtig?
Q2. Wenn wir die beiden Gründe miteinander verknüpfen, wird dies zu einem Bezugspunkt für das gesamte System. Wenn beide Versorgungen isoliert sind oder zumindest eine davon, dann gibt es keine Spannungsdifferenz zwischen den beiden Erdungen. Wenn wir sie miteinander verbinden, würden wir einfach auf diese beiden Gründe verweisen - richtig?
Q3. Wenn die beiden Netzteile nicht isoliert sind und beide an das Wechselstromnetz angeschlossen sind, kann etwas wirklich Schlimmes passieren, da die beiden Erdungen ein unterschiedliches Potenzial haben können und beide auf N bezogen sind. Wenn wir die beiden verbinden "Masse" zusammen, aufgrund der Spannungsdifferenz fließt Strom vom höheren zum niedrigeren Potential, und je nach Spannungsdifferenz kann etwas verbrannt werden - richtig?
Q4. Da D+ und D- von der PC-Seite kommen, wäre der USB-Transceiver nicht in der Lage, Spannungspegel auf D+ und D- darzustellen, wenn wir die beiden Erdungen nicht miteinander verbinden, da es keinen Referenzpunkt gibt - richtig?
Q5. Wenn der USB-Transceiver in einem differentiellen Modus arbeitet (er sucht nach der Spannungsdifferenz zwischen D+ und D-), müssen wir überhaupt nicht auf die Masse des PCs verweisen, dh wir müssen die beiden Masse nicht miteinander verbinden - richtig ?
Sie müssen sich nicht isolieren. Wenn Sie dies nicht tun, müssen Sie die Masse der Stromkreise zusammenbinden, wenn Sie die separate Stromversorgung verwenden.
Das heißt, während Sie Ihre Entwicklung vorantreiben, könnten Sie es einfach vermasseln und böse Dinge tun. Ich empfehle die Verwendung eines USB-Hubs, bis Sie wissen, dass alles perfekt ist. Auf diese Weise zerstören Fehler eher Ihren Hub als den USB-Anschluss oder das Motherboard Ihres Computers.
Sie können entweder die externe Stromversorgung verwenden oder den USB-Bus verwenden, um sich mit Strom zu versorgen, je nachdem, wie viel Strom Sie benötigen.
Sie könnten auch überlegen, warum Sie das Projekt überhaupt durchführen. Wenn es sehr wichtig ist, dass Sie einen sehr ruhigen Boden haben, können Sie sich für eine Isolierung entscheiden. Einfach isolieren und einen ruhigen Boden garantieren sind natürlich zwei verschiedene Dinge.
Der Mikrocontroller hat eine eigene isolierte Stromversorgung (3,3-5 V), und was ich wissen möchte, ist, muss ich den Datenbus über Optokoppler isolieren?
Du kannst nicht. Der USB-Datenbus ist bidirektional und für einen typischen Optokoppler ohnehin viel zu schnell. Es gibt einige USB-Isolatoren (z. B. ADUM4160 , LTM2884 ), aber sie sind ziemlich ungewöhnlich, teuer und schwierig zu handhaben.
Aber wahrscheinlich brauchst du das nicht. Sofern Sie nicht etwas sehr Ungewöhnliches tun, besteht im Allgemeinen keine Notwendigkeit, USB-Geräte zu isolieren. Verbinden Sie die D+/D- und GND-Leitungen direkt durch und versorgen Sie den Mikrocontroller entweder über USB +5V oder über eine separate 5V-Versorgung.
scld
Mark Gulin
scld
Mark Gulin
Nick Alexejew