USB und CherryUSB¶
Bei SF32-Geräten und Boards mit unterstützter USB-Hardware zeigen die SiFli-SDK-Dokumentation und Beispiele die Integration mit CherryUSB. Prüfen Sie die vom konkreten Chip, Board und SDK-Release unterstützten USB-Rollen und -Klassen, und betrachten Sie USB als vollständigen Software-Stack statt nur als Hardwarefunktion.
Bei USB müssen Firmware, Deskriptoren, Host-Betriebssysteme, Energieverhalten und Produktionswerkzeuge gemeinsam berücksichtigt werden. Wird ein Gerät auf dem Entwicklungs-Laptop einmal erfolgreich enumeriert, ist die Arbeit noch nicht abgeschlossen.
Anwendungsfälle¶
- Serielle Kommunikation über USB CDC.
- HID-Geräte.
- MSC-Speicher.
- USB-Audio: Mikrofon/Lautsprecher.
- MTP.
- USB-Host-Unterstützung für CDC-, HID-, MSC-, UVC- und UAC-Peripheriegeräte, sofern SDK und Board dies unterstützen.
Praktischer Arbeitsablauf¶
- Prüfen Sie, ob das Board den benötigten USB-Anschluss und den passenden Versorgungspfad bereitstellt.
- Beginnen Sie mit dem SDK-USB-Beispiel, das dem Anwendungsfall am nächsten kommt.
- Testen Sie die USB-Enumeration unter Windows, macOS und Linux.
- Prüfen Sie Suspend/Resume sowie das Verhalten nach erneutem Anschließen des Kabels.
- Dokumentieren Sie VID/PID, Deskriptoren und Anforderungen an Host-Treiber.
Was zu testen ist¶
- Vor dem Einschalten anschließen; im laufenden Betrieb ein- und ausstecken.
- Zurücksetzen bei bestehender Verbindung.
- Ruhezustand und Reaktivierung des Hosts.
- Kabeltrennung während der Übertragung.
- USB-Enumeration unter Windows, macOS und Linux.
- Verhalten von Composite-Geräten, falls mehrere Klassen aktiviert sind.
- Benutzer darauf hinweisen, dass reine Ladekabel keine Datenkommunikation unterstützen.
Deskriptor-Checkliste¶
- Die VID/PID-Zuordnung ist eindeutig geklärt.
- Der Produktstring ist final oder versioniert.
- Das Verhalten der Seriennummer ist definiert.
- Class-/Subclass-/Protocol-Werte passen zum vorgesehenen Host-Treiber.
- Composite-Schnittstellen bleiben über Firmware-Updates hinweg stabil.
SDK-Beispiele¶
Der offizielle SiFli-SDK-CherryUSB-Beispielindex führt Beispiele für USB-Geräte und USB-Hosts getrennt auf. Beginnen Sie mit dem Beispiel, das zur vorgesehenen USB-Rolle und -Klasse passt, und übernehmen Sie dessen Prüfungen zu Deskriptoren, Stromversorgung und Host-Kompatibilität in die Produktimplementierung.
| USB-Rolle | Beispiel | Ausgangspunkt |
|---|---|---|
| Gerät | USB-Mikrofon | USB-Audio-Class-1-Mikrofon |
| Gerät | USB-Mikrofon und -Lautsprecher | Bidirektionales Audio nach USB Audio Class 1 |
| Gerät | CDC ACM | USB-Kommunikationsgerät |
| Gerät | CDC ACM UART | USB-UART-Brücke |
| Gerät | CDC + HID + MSC | Zusammengesetztes USB-Gerät |
| Gerät | HID-Maus | USB-HID-Zeigegerät |
| Gerät | MSC mit NOR-Flash | Massenspeicher mit NOR-Flash als Speicher |
| Gerät | MSC mit RAM-Disk | Massenspeicher mit RAM als Speicher |
| Gerät | MSC mit zwei RAM-Disks | Zwei logische Einheiten mit RAM als Speicher |
| Gerät | MSC mit SD/eMMC | Massenspeicher mit SD-Karte oder eMMC als Speicher |
| Gerät | MTP mit DFS und RAM-Disk | Media-Transfer-Protocol-Gerät |
| Host | CDC-ACM-Host | Kommunikation mit einem CDC-ACM-Gerät |
| Host | HID-Host | HID-Gerät anschließen und Eingaben auslesen |
| Host | MSC-Host | USB-Massenspeicher anschließen |
| Host | UVC + UAC Host | USB-Geräte der Video- und Audio-Klasse |
Zuletzt aktualisiert: