USBとCherryUSB¶
USBハードウェアがサポートされているSF32デバイスとボードでは、SiFli-SDKのドキュメントやサンプルでCherryUSBとの連携が紹介されています。対象のチップ、ボード、SDKリリースでサポートされるUSBの役割とクラスを確認し、USBを単なるハードウェア機能ではなくソフトウェアスタック全体として設計・検証してください。
USBの実装では、ファームウェア、記述子、ホストOS、電源動作、製造用ツールを含めて確認します。開発用PCで一度列挙に成功しただけでは、製品として十分とはいえません。
想定する用途¶
- USB CDCシリアル
- HIDデバイス
- MSCストレージ
- USBオーディオのマイク/スピーカー
- MTP
- SDKとボードが対応する範囲で、CDC、HID、MSC、UVC、UACの各クラスの周辺機器をUSBホストとして接続する
実装の進め方¶
- ボードに必要なUSBコネクターと電源経路があることを確認します。
- 用途に最も近いSDKのUSBサンプルを起点にします。
- Windows、macOS、Linuxでデバイスの列挙を試験します。
- サスペンド/復帰と、ケーブルを抜き差ししたときの動作を確認します。
- VID/PID、記述子、ドライバーに関する前提を記録します。
試験項目¶
- 電源投入前に接続してから起動する試験と、動作中に接続/切断する試験
- 接続中のリセット
- ホストのスリープ/復帰
- 転送中のケーブル切断
- Windows、macOS、Linuxでの列挙
- 複数クラスを有効にした場合の複合デバイス動作
- 充電専用のUSBケーブルではデータ通信できないことを、ユーザー向け資料で案内する
記述子の確認項目¶
- VID/PIDの割り当て元が明確である
- 製品名文字列が確定済み、またはバージョン管理されている
- シリアル番号の扱いが定義されている
- クラス/サブクラス/プロトコルの値が想定するホストドライバーと一致している
- ファームウェア更新後も複合インターフェースが安定している
SDKサンプル¶
SiFli-SDKの公式CherryUSBサンプル一覧では、USBデバイスとUSBホストのサンプルが分かれています。想定するUSBの役割とクラスに合うサンプルから始め、そこで確認されている記述子、電源、ホスト互換性の項目を製品実装にも引き継いでください。
表: SF32LB58x向けSiFli-SDK CherryUSBサンプル
| USBの役割 | サンプル | 用途 |
|---|---|---|
| デバイス | USBマイク | USB Audio Class 1マイク |
| デバイス | USBマイクとスピーカー | USB Audio Class 1の双方向オーディオ |
| デバイス | CDC ACM | USB通信デバイス |
| デバイス | CDC ACM UART | USB-UARTブリッジ |
| デバイス | CDC + HID + MSC | USB複合デバイス |
| デバイス | HIDマウス | USB HIDポインティングデバイス |
| デバイス | NOR Flashを使うMSC | NOR Flashをストレージに使うマスストレージデバイス |
| デバイス | RAMディスクを使うMSC | RAMをストレージに使うマスストレージデバイス |
| デバイス | 2つのRAMディスクを使うMSC | RAMを使う2つの論理ユニット |
| デバイス | SD/eMMCを使うMSC | SDカードまたはeMMCを使うマスストレージデバイス |
| デバイス | DFSとRAMディスクを使うMTP | Media Transfer Protocolデバイス |
| ホスト | CDC ACMホスト | CDC ACM周辺機器との通信 |
| ホスト | HIDホスト | HID周辺機器を接続して入力を読み取る |
| ホスト | MSCホスト | USBマスストレージ周辺機器を接続する |
| ホスト | UVC + UACホスト | USBビデオ/オーディオクラス周辺機器 |
最終更新: