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?