インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

18.6.3.1. デバイスの初期化

次のプロセスにより、USB OTGコントローラーをUSBデバイスとしてセットアップします。

  1. 電源投入後に、USB OTGコントローラーを目的のデバイス速度に設定する必要があります。これは、Device Mode Registers (devgrp) グループのDevice Configuration Register (dcfg) にあるDevice Speed (devspd) ビットに書き込むことで行います。デバイスの速度が設定されると、コントローラーは、USBホストがUSBポートをデバイスポートとして検出するまで待機します。
  2. 外部ホストがUSBポートを検出すると、ホストはポートリセットを実行します。これにより、USBデバイス・ソフトウェアへの割り込みが生成されます。Global Registers (globgrp) グループのInterrupt (port reset) レジスターでUSB Reset (usbrst) ビットが設定されます。デバイス・ソフトウェアはその後、外部ホストからSETUPパケットを受信するデータFIFOバッファーをセットアップします。エンドポイント0はまだ有効になっていません。
  3. ポートリセットが完了すると、外部ホストに必要な動作速度が特定されます。ソフトウェアはデバイスの速度ステータスを読み出し、残りの必要なトランザクション・フィールドをすべて設定して、制御エンドポイント0を有効にします。

このプロセスが完了すると、デバイスはSOFパケットを受信します。また、USBホストによるデバイスの制御エンドポイントのセットアップに向けた準備が整っています。