Forum: Mikrocontroller und Digitale Elektronik USB C dual role port für firmware updates


von Manfred K. (manuskel)


Lesenswert?

Ich baue ein Gerät mit USB-C, das als USB-Host fungiert, aber für 
Firmware-Updates muss es als USB-Gerät an einen PC angeschlossen werden.
Das Gerät hat keine Batterie und sollte während der Firmware-Updates von 
seiner normalen Stromquelle getrennt und über den PC mit Strom versorgt 
werden.
Meiner Meinung nach schließt dies ICs wie den WUSB3801 aus.
Es wäre ok, vor dem Einstecken einen Schalter zu drücken, um den 
Bootloader-Modus zu aktivieren (ähnlich wie beim rp2040).

Mein Problem ist, dass ich nicht weiß, wie ich zwischen den 
5,1k-Widerständen zu GND (für das Gerät) und den 22k-Widerständen zu VCC 
(für den Host) an CC1/CC2 umschalten kann.
Die einzige Idee die ich hatte war jeden 5,1k-Widerstand mit einem 
depletion mode p-channel Mosfet und jeden 22k-Widerstand mit einem 
enhancement mode n-channel Mosfet zu verbinden.
Dann lässt die MCU entweder die 5,1k-Widerstände „angeschlossen“ oder 
„verbindet“ die 22k-Widerstände, je nachdem, ob der Schalter für den 
Bootloaders gedrückt wird.

Könnte das funktionieren, oder gibt es Alternativen wie fertige ICs, die 
unter diesen Umständen funktionieren?

von Frank K. (fchk)


Lesenswert?

Suche mal nach STM32 AN5225 "Introduction to USB Type-C® Power Delivery 
for STM32 MCUs and MPUs" und schau Dir Seite 21 an.

Diese Apllication Note ist generisch genug, um auch für andere 
Prozessorfamilien nützlich zu sein.

Einige Familien (z.B. STM32U5) haben auch SUpport für das Digitale PD 
Protokoll über CC1 und CC2.

fchk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.