USB-C als Stromquelle und Verhandlung mit USB 2.0 und 3.0

Ich habe eine Platine, die derzeit über einen Micro-USB verfügt, der nur für die Datenübertragung verwendet wird, und eine separate 5-V-Stromversorgungseingangsbuchse zum Einschalten des Geräts. Die maximale Stromaufnahme des Geräts beträgt 600 mA. Um die Notwendigkeit für die Eingangsbuchse zu beseitigen und nur ein Kabel zu verwenden, möchte ich die in diesem Beitrag beschriebenen Schritte befolgen , damit mein USB 2.0-Gerät sowohl die Datenübertragung als auch die Stromversorgung (5 V, 600 mA) über USB-C übernimmt Behälter.

Soweit ich weiß, umfassen die Schritte das Löten der beiden Datenpins vom Micro-USB an die Buchsenpins, das Löten der 5,1k-Pulldown-Widerstände an den CC-Pins und das Löten der 5V / GND-Pins von der Eingangsbuchse an den VBUS / GND-Pins der Steckdose zum Einschalten meines Geräts. Im Moment ist es mir egal, ob die Modifikation sperrig ist, ich kümmere mich nur um die Sicherheit.

Ich möchte dann mein neu modifiziertes Gerät an einen Laptop anschließen. Meine Fragen sind:

Wenn ich es an einen USB-C-Anschluss anschließe, funktioniert die Stromaushandlung wie erwartet? Ich verstehe, dass USB 2.0-Hosts die Aushandlung auf 500 mA begrenzen, daher möchte ich wissen, ob die Aushandlung funktioniert, da der Host mehr verarbeiten kann (900 mA), aber auf meinem Gerät läuft nur USB 2.0?

Angenommen, ich verwende einen handelsüblichen USB-C-zu-USB-A-Adapter, um mein modifiziertes Gerät an einen klassischen USB-A-Anschluss an meinem Laptop anzuschließen. Ich erwarte, dass sich die Antwort nicht ändert, wenn der Anschluss auf USB 3.0 läuft? Und wenn der Anschluss nur über USB 2.0 verfügt, schaltet sich mein Gerät grundsätzlich nicht ein, da die Aushandlung bei 500 mA stoppt?

Ich bin neu in Verhandlungen, jede Hilfe wird sehr geschätzt!

Antworten (2)

Wenn Sie Ihr Gerät anschließen, bilden der Pull-up-Widerstand Rp auf der Hostseite und der Pull-down-Widerstand Rd auf der Geräteseite einen Widerstandsteiler.

Seite 9 in AN5225

Der Rd-Widerstand beträgt, wie Sie bereits erwähnt haben, 5,1 K, aber der Rp variiert je nach Leistungsfähigkeit des Hosts. Sie können die Spannung an den cc-Pins überwachen, und nachdem Sie sichergestellt haben, dass der Host ausreichend Strom liefern kann, aktivieren Sie die stromfordernde Schaltung.

AN5225 von ST spricht mehr über das Problem.

Geben Sie hier die Bildbeschreibung ein

Danke für Ihre Antwort. Meine Frage bezieht sich eher auf die Stromaushandlung als auf die Überprüfung, ob der Host die Stromanforderungen bewältigen kann. Ich bin mir nicht sicher, ob ich verstehe, auf welcher Ebene diese Machtverhandlungen stattfinden und wie sie funktionieren. Ich suche online nach Ressourcen, um dies besser zu verstehen, aber ich kann sie nicht finden. Grundsätzlich verfügt mein Gerät über Treiber, die mithilfe der libusb-Bibliothek implementiert wurden, und ich möchte sicherstellen, dass die Aushandlung sicher ist, wenn das modifizierte Gerät an USB 2.0 oder 3.0 angeschlossen wird.

Wenn Sie nur 5 V 600 mA und USB2.0-Datenraten benötigen, können Sie ein einfaches Schema verwenden, z. B.:

Geben Sie hier die Bildbeschreibung ein

5.1k-Pulldown-Widerstände ermöglichen Ihrem Gerät, bis zu 3 A vom Host zu ziehen, wenn der Host dazu in der Lage ist .

In Bezug auf Ihren Bedarf an über 500 mA ist es eine gute Idee, USB_CCx-Leitungen mit dem ADC Ihrer MCU zu messen, um Ihre Hostfähigkeiten sicher zu kennen. Um zu verstehen, welche Spannung Sie von den Pins lesen möchten, können Sie sich auf den in der vorherigen Antwort erwähnten App-Hinweis von ST beziehen.

Wenn Ihre MCU diesen Teil der Aufgabe nicht bewältigen kann, schauen Sie sich CC-Konfigurations-ICs an (lassen Sie Injoinic IP2721 nur als Referenz, nicht sicher, ob es die aktuelle Fähigkeit des Hosts steuert).