Sniffer für USB-Power-Delivery

Das Open-Source-Board "Debubo" analysiert USB-Power-Delivery-Kommunikation und liest Boot-Logs sowie weitere Debug-Informationen von USB-Geräten aus.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Man sieht das Board von vorn. Links und rechts sind zwei USB-C-Kabel angeschlossen.

(Bild: Sebastian Krzyszkowiak)

Lesezeit: 2 Min.
Von
  • Daniel Schwabe

Auf Basis des ARM-Mikrocontrollers STM32G071CB – einem Cortex-M0+Mikrocontroller – von STMicroelectronics hat Maker Sebastian Krzyszkowiak einen Sniffer für USB Power Delivery mit einigen Zusatzfunktionen gebaut – das Debubo-Board. USB Power Delivery (kurz USB-PD) ist ein Protokoll, mit dem ein kompatibles Ladegerät und ein kompatibles Endgerät miteinander austauschen, welche Spannungen und maximalen Ströme während des Ladevorgangs verwendet werden sollen.

Krzyszkowiaks Debubo verfügt über zwei USB-C-Ports, sodass man ihn zwischen zwei Geräte stecken kann, um deren Kommunikation zu analysieren. Das ist beispielsweise dann hilfreich, wenn man etwas über die Daten von schlecht dokumentierten Endgeräten oder Netzteilen herausfinden möchte oder um zu überprüfen, ob die Konfiguration bei einem eigenen Projekt richtig funktioniert.

Debubo gibt die Daten über die serielle Schnittstelle in der Konsole aus, wenn das Board per USB an einen Computer angeschlossen wird. Die Umsetzung Seriell-zu-USB erfolgt durch den CH342-IC des Boards.

Die Ausgabe des Gerätes erfolgt über die Konsole an einem PC.

(Bild: Sebastian Krzyszkowiak)

Diese Daten können aber nicht nur abgefangen und ausgegeben werden. Mit dem Debubo-Board kann man auch gesendete Daten zurückhalten, verändern oder sogar neue einspeisen. Zudem erlaubt das Board, auf potenzielle Debug-Konsolen von Geräten zuzugreifen. Hierfür dient ebenfalls der CH342-Chip von Nanjing Qinheng Microelectronics, der über UART den Zugang zu den Sideband-Use-Pins von USB-C-Geräten gewährt. Diese Pins unterstützen erweiterte USB-C-Funktionen, wie beispielsweise die Übertragung von DisplayPort-Signalen. Ob eine solche Debug-Konsole vorhanden ist und wie umfangreich sie ausfällt, variiert je nach Gerät.
Beispiele für Geräte mit entsprechenden Debug-Konsolen sind etwa ältere Chrome-Geräte wie Chromebooks, die über solch eine Schnittstelle erreichbar sind, oder auch das Linux-Smartphone Librem 5.

Auf der GitLab-Seite des Debubo-Projekts findet man Gerber-Dateien und Stücklisten für das Board. Debubo gibt es nicht fertig zu kaufen. Interessenten müssen die Platine beim PCB-Hersteller ordern und selbst bestücken.

Für diejenigen, die nun das Debugging-Fieber packt, empfehlen wir als Lektüre unseren Artikel zum Debuggen von AVR-Programmen.

(das)