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.
- 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.
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)