Project_OKI’s diary

エンジニアの勉強ブログ

STM32マイコン37(CubeIDE:USBの設定内容)

STM32マイコン37(CubeIDE:USBの設定内容)

1.本日の内容

 (1) CubeIDEのUSBの設定内容について記載する。

 

  使用マイコン

 

・目次

 

2.内容

(1) USBの設定
Class For FS IP
Disable USB無効(使用しない場合に選択)
Audio Device Class オーディオデバイス(スピーカーやマイクなど)を使用するためのクラス。
Communication Device Class (Virtual Port Com) 仮想COMポートで、シリアル通信を行うためのクラス。
Download Firmware Update Class(DFU) ファームウェアの書き換えなどを行うためのクラス。
Human Interface Device Class (HID) ユーザーインターフェースバイス(キーボード、マウス、ゲームコントローラなど)を使用するためのクラス。
Custom Human Interface Device Class カスタムのユーザーインターフェースバイスを使用するためのクラス。
Mass Storage Class フラッシュドライブやハードディスク、USBメモリなどのストレージデバイスを模倣するためのクラス。

 

 (a) FS (Full-Speed):

  ・USB 2.0規格における通信速度の一つ

  ・最大で480 Mbps(メガビット/秒)のデータ転送が可能。

  ・この速度は、一般的なオフィス用途や一般的なデバイス(例: キーボード、マウス、プリンターなど)に適している。

 

 (b) HS (High-Speed):

  ・USB 2.0規格における通信速度の一つ

  ・最大で12 Mbpsのデータ転送が可能。

  ・高速データ転送が必要な場合に使用。

  ・ビデオカメラや一部のストレージデバイスなど、データ転送がより速い速度を必要とする場合に使用されている。

 

 (c) IP(Intellectual Property):知的財産

  ・IPコアと呼ばれる。

  ・プログラムでいう所のライブラリ

  ・必要な処理の全てを自分で実装する変わりに利用できる。

  ・ここでは、USBホスト機能を実装するのに利用できるということ。

 

(2) CubeIDEの設定
・USB_OTG_FS設定


 ・Full Speed 12MBit/s:

  USBデバイスがフルスピードモードで動作することを指定。

  フルスピードはUSB 2.0の速度で、データ転送速度が12Mbps(メガビット/秒)

 

 ・Low Power (低電力):
  Disabled (無効): USBデバイスは低電力モードで動作しない。

         通常の動作モードで電力を消費する。

  Enabled (有効): USBデバイスが低電力モードに入ることを許可。

         省電力モードで動作する。

         これはバッテリ駆動のデバイスに適している。

 

 ・Link Power Management (リンク電力管理):
   Disabled (無効): リンクレベルでの電力管理が無効。

         デバイスは通常の電力状態を維持する。
  Enabled (有効): リンクレベルでの電力管理が有効。

         リンクがアイドル状態の場合、省電力モードに入ることがある。

         省電力モードでは、リンクが再度アクティブになるまで待機。

 

 ・Battery Charging (バッテリー充電):
  Disabled (無効): バッテリーの充電機能が無効。

         USBデバイスはバッテリーを充電しないようになる。

  Enabled (有効): バッテリー充電機能が有効。

         バッテリーの充電をサポート、USBデバイスから充電可能とする。

 

・Audio Device Class

 クラス: マイク、スピーカー、ヘッドセットなどのオーディオデバイスをUSBで使用するためのクラス。

・USBD_MAX_NUM_INTERFACES    

 USBデバイスがサポートする最大インターフェースの数。

 1~256で設定

 

・USBD_MAX_NUM_CONFIGURATION    

 USBデバイスがサポートする最大設定

 (コンフィギュレーション)の数。

 1~256で設定

 

・USBD_MAX_STR_DESC_SIZ    

USBデバイスで使用される文字列記述子(String Descriptor)の最大サイズ。

 1~64Kbyteで設定


・USBD_SELF_POWERED

USBデバイスが自己電力供給(セルフパワード)モードで動作する場合に設定されるフラグ。

 Enable/Disableで設定。

 Enable時、セルフパワーモードで動作。


・USBD_DEBUG_LEVEL

USBデバッグメッセージの表示レベルを設定するためのパラメータ。デバッグメッセージはUSB通信に関する情報を提供し、デバッグ目的で使用される。

 0~3で設定。

 0:デバックメッセージなし

 1:ユーザーメッセージのみ表示

 2:ユーザーメッセージ+エラーメッセージを表示

 3:全てのメッセージを表示

 

・USBD_AUDIO_FREQ 

USBオーディオバイスでサポートされるオーディオサンプリング周波数(Hz単位)。

 250~48Kサンプリングで設定

 

VPC

・USB CDC Rx Buffer Size    

 USB CDCデバイスが受信(データを受け取る)用に確保するバッファのサイズ。

 受信データの最大予想サイズに基づいて設定

 

・USB CDC Tx Buffer Size    

 USB CDCデバイスが送信(データを送信する)用に確保するバッファのサイズ。    

 送信データの最大予想サイズに基づいて設定

 

・転送サイズの設定について

  受信および送信データの最大サイズに基づいて、バッファサイズを設定する。

 データがこのサイズを超える場合、バッファオーバーフローが発生する可能性がある。


・データ転送レート

 データが高い速度で送信される場合、バッファのサイズを増やすことで、一時的なデータの貯蔵を確保。できる。

 データの一時的な遅延やデータの損失を防ぐことができる。


・データ転送の頻度

 データの送信や受信の頻度に応じて、バッファサイズを設定する。

 頻繁なデータ転送がある場合は、大きなバッファが必要。


・利用可能なメモリ

 デバイスのメモリ制約に留意する必要がある。

 バッファサイズは、デバイスの利用可能なメモリ容量に合わせて調整する必要がある。

 

 

・DFU

・USBD_DFU_MAX_ITF_NUM    
 USB Device Firmware Upgrade(DFU)インターフェースの最大数。
 通常、1つのDFUインターフェースが十分。

 必要に応じて増減させることができる。

 

・USBD_DFU_XFER_SIZE    
 DFUデータ転送のバッファーサイズの指定。

 DFUデータの転送に使用されるバッファーのサイズ

 

・USBD_DFU_APP_DEFAULT_ADD    
 DFUアプリケーションのデフォルトのアドレスの指定。

 DFUアップデートの際に、新しいファームウェアが配置されるアドレスを指定する。  

 これはターゲットデバイスのメモリマップに依存する。

 

・USBD_DFU_MEDIA Interface    

 DFUメディアインターフェース

 ファームウェアのアップデートを実行するためのインターフェースを指定する。

 USB経由でDFUアップデートをサポートするために使用される。

 

・HID

・HID_FS_BINTERVAL

 USB HIDデバイスがホストコンピューターにデータを送信する頻度を示すパラメータ。

 HIDデバイスがデータを送信する間隔を指定する。(ミリ秒単位)

 

・Custom Huma Interface Device Class

 

 ・CUSTOM_HID_FS_BINTERVAL    
 カスタムHIDエンドポイントの転送周期を設定するための定数。単位:フレーム

 ・USBD_CUSTOM_HID_REPORT_DESC_SIZE    
  カスタムHIDデバイスのレポート記述子サイズをバイト単位で指定する定数。

 ・USBD_CUSTOMHID_OUTREPORT_BUF_SIZE    
  カスタムHIDデバイスのOUTレポートのバッファサイズ。単位:バイト

 

・Mass Storage Class

 

 ・MSC_MEDIA_PACKET(Media I/O buffe)

   マスストレージクラスで、メディアデータの送受信を行うバッファーサイズの設定

  512~32kbyteで設定。

 

 USBに関する設定参考資料:

 ・UM1734:STM32Cube USB device library

 

3.関連記事

関連記事一覧:
 
組み込みC言語
 
STM32のデータシートなど: