Ich denke an einen relativ billigen und einfachen Schutz gegen USB-Verpolung/Verpolung. Im Moment denke ich über P-Kanal-MOSFET nach, wobei der Drain zur USB-Buchse gerichtet ist. Ich habe gehört, dass TVS-Dioden neben dem ESD-Schutz auch eine Verpolung verhindern können, aber ich könnte sie nicht genau auswählen. Die Pins D+ und D- sind über Widerstände mit dem STM-Mikrocontroller verbunden.
Da es sich um einen MOSFET vom Typ P handelt, bewirkt das niedrige Gate, dass der Transistor vom Drain zur Source leitet. Ich sage voraus, dass das MOSFET-Gate hoch ist und der MOSFET abschaltet, wenn der USB-Stecker umgekehrt eingesteckt wird, wodurch eine Beschädigung der Empfangsschaltung verhindert wird.
Aber das sind nur meine bescheidenen theoretischen Überlegungen, und ich möchte fragen, ob ich hier nicht einen logischen Fehler gemacht habe oder ob aus praktischer Sicht etwas nicht in Ordnung ist.
Es sieht so aus, als ob der FET vor Verpolung schützt, aber es wird nicht benötigt, da ein USB-Kabel keine falsche Polarität haben kann.
Ich möchte auch darauf hinweisen, dass das Binden des D + -Pins über einen Widerstand direkt an 3,3 V der MCU nicht ermöglicht, zu steuern, wann sie zum Aufzählen bereit ist. Je nachdem, was das MCU-Programm tut, kann es möglicherweise nicht aufzählen, wenn dies nicht der Fall ist sofort bereit mit dem USB-Peripheriegerät beim Booten.
Eine andere Sache ist, dass Sie durch Erden des ID-Pins signalisieren, dass dieses Gerät ein OTG-Master und kein USB-Gerät ist, sodass das nicht funktioniert.
Außerdem ist die Steckerabschirmung direkt mit Masse verbunden, was möglicherweise auch nicht das ist, was Sie wollen.
usb_lld_connect_bus()
und usb_lld_disconnect_bus()
in ersetzen board.h
.
Jon
Kyle B