コンテンツにスキップ

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ホストとして接続する

実装の進め方

  1. ボードに必要なUSBコネクターと電源経路があることを確認します。
  2. 用途に最も近いSDKのUSBサンプルを起点にします。
  3. Windows、macOS、Linuxでデバイスの列挙を試験します。
  4. サスペンド/復帰と、ケーブルを抜き差ししたときの動作を確認します。
  5. 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ビデオ/オーディオクラス周辺機器

最終更新: