目次

last update: 2024/04

FreeRTOS用BSPパッケージ
第9章: USB-Hostインターフェース
評価ボード:Renesas RX72N Envision Kit




テストサンプル

Demo Sample Application Folder:

Application
 └ _Exclude
     ├ USBH  ..... USB Host各種クラス機能のデモサンプル
Sample説明
USBH_Printer_Startプリンタクラスドライバのデモサンプル
USBH_MTP_StartUSBホストのMTPクラスドライバの使用方法を示すデモサンプル
USBH_MSD_StartMSDクラスのデモアプリケーション(ファイルシステムが必要です)
USBH_HID_Start標準HIDキーボード・マウスデバイス用デモサンプル
USBH_FT232_StartFTDI FT232クラスドライバのデモサンプル
USBH_CreateInterfaceListUSBポートに接続されているデバイスのステータス及びデバイス情報をIOコンソールに表示します
USBH_CDC_StartUSBホストのCDC-ACMクラスドライバのデモサンプル
USBH_CCID_StartCCID通信デバイスクラスドライバのデモサンプル
USBH_BULK_StartBULK(VENDOR)クラスドライバのデモサンプル
USBH_AUDIO_SpeakerAUDIO(スピーカーデバイス)クラスドライバのデモサンプル
USBH_AUDIO_ScanDevicesUSBポートにAUDIOクラスデバイスが接続された時にデバイスのベンダ・コンフィグレーション情報を表示します
USBH_AUDIO_MicrophoneAUDIO(マイクロフォンデバイス)クラスドライバのデモサンプル

関連設定ファイル:

BSP
 |- BSP_USB.c  .......... ボード依存の初期化設定ファイル(USB-HOST)
 |
 |- Setup
     |- USBH_Config_RX72N_Renesas_RX72N_EnvisionKit.c
               .......... USB-HOSTドライバ設定ファイル

Config
 |- USBH_Conf.h  ............... コンフィグレーション設定ファイル
 |
 |- IO
 |   |- USBH_ConfigIO.c  ....... デバッグコンソールIOインターフェース設定ファイル
 |
 |- OS
     |- libFreeRT_OSLayer_RXv3_L.lib  ..... OSインターフェース設定ファイル

ビルド・動作確認方法

プロジェクト設定では「\Application\_Exclude\USBH」フォルダはビルド対象外に設定しています。

「\_Exclude\USBH」フォルダ下の動作確認を行うテストサンプルファイルをビルド対象設定の「\Application」フォルダ下にコピーします。
各テストアプリケーションの動作確認方法はテストサンプルアプリケーションのヘッダのコメント情報を参照ください。
プロジェクトを再ビルドし、RX72N Envision評価ボードに接続してデバッグセッションを開始します。
テストアプリケーションの要件に合わせてUSBホストボードにデバイスを接続してプログラムを実行します。デバッガのIOコンソールのログ画面から結果を確認します。

USBH_MSD_Start:サンプルビルド方法

USBディスクドライブインターフェースを使用しますので、以下の手順でファイルシステム(emFile)のドライバ設定をUSBディスクドライブに変更してください。

  1. 「\BSP\Setup\FS_ConfigMMC_CM_RX72N_Renesas_RX72N_EnvisionKit.c」ファイルを「ビルド対象外」に設定します。
  2. 「\BSP\Setup\_Exclude」フォルダ下の「FS_USBH_MSDConfig.c」ファイルをビルド対象設定の「\BSP\Setup」フォルダ下にコピーします。又は「FS_USBH_MSDConfig.c」ファイルのをビルド対象に設定します。

テストレポート

(MSDクラス)Sample: USBH_MSD_Start

操作手順:ファイルシステムのUSBH-MSDドライバ定義ファイル「FS_USBH_MSDConfig.c」をビルド対象に設定してプロジェクトをビルドします。プログラム起動してUSBポートにUSBディスクを挿入します。
テスト完了後に「FS_USBH_MSDConfig.c」をビルド対象外に設定します。

Debug IO Console:

0:023 MainTask - INIT: emUSB-Host Init started. Version 2.36.5
0:024 MainTask - INIT: *********************************************************************
0:025 MainTask - INIT: *                       emUSB-Host Configuration                    *
0:026 MainTask - INIT: *********************************************************************
0:027 MainTask - INIT: * External hubs are ALLOWED
0:028 MainTask - INIT: * Time before communicating with a newly connected device: 300 ms
0:029 MainTask - INIT: *********************************************************************
0:030 MainTask - INIT: Init completed
0:031 MainTask - INIT: Enumeration of devices enabled
0:032 USBH_Task - INIT: USBH_Task started
0:133 USBH_isr - INIT: USBH_ISRTask started
0:968 USBH_Task - APP: **** Device added [0]
0:969 MainTask - APP: The following device was detected:

0:970 MainTask - APP: VendorId:           0x0781
0:971 MainTask - APP: ProductId:          0x5583
0:972 MainTask - APP: VendorName:         SanDisk
0:973 MainTask - APP: ProductName:        Ultra Fit
0:974 MainTask - APP: Revision:           1.00
0:975 MainTask - APP: NumSectors:         60063744
0:976 MainTask - APP: BytesPerSector:     512
0:977 MainTask - APP: TotalSize:          29328 MByte
0:978 MainTask - APP: HighspeedCapable:   No
0:979 MainTask - APP: ConnectedToRootHub: Yes
0:980 MainTask - APP: SelfPowered:        No
0:981 MainTask - APP: Reported Imax:      224 mA
0:982 MainTask - APP: Connected to Port:  1
0:983 MainTask - APP: PortSpeed:          FullSpeed

0:984 MainTask - APP: Checking whether the volume is formatted...
1:004 MainTask - APP: Running sample on volume "msd:0:" DevIndex 0, LUN 0
1:005 MainTask - APP: Reading volume information...
1:009 MainTask - APP: **** Volume information for msd:0:
1:010 MainTask - APP:    30017184 KBytes total disk space
1:011 MainTask - APP:    21009312 KBytes available free space
1:012 MainTask - APP:    16384 bytes per cluster
1:013 MainTask - APP:    1876074 clusters available on volume
1:014 MainTask - APP:    1313082 free cluster available on volume
1:015 MainTask - APP: Creating file msd:0:\TestFile.txt...
1:067 MainTask - APP: Ok
1:068 MainTask - APP: Contents of msd:0: 
1:069 MainTask - APP: TestFile.txt       Attributes: A--- Size: 118
1:070 MainTask - APP: System Volume Information (Dir) Attributes: --HS Size: 0
1:084 MainTask - APP: Photos (Dir) Attributes: ---- Size: 0
1:085 MainTask - APP: DevTools (Dir) Attributes: ---- Size: 0
1:087 MainTask - APP: music (Dir) Attributes: ---- Size: 0
1:091 MainTask - APP: RawCap.exe       Attributes: A--- Size: 23552
1:093 MainTask - APP: **** Unmount ****

(HIDクラス)Sample: USBH_HID_Start

操作手順:プログラム起動してUSBポートにHID マウスデバイスを挿入します。マウス操作のレスポンスをログコンソールから確認します。

Debug IO Console:

0:022 MainTask - INIT: emUSB-Host Init started. Version 2.36.5
0:023 MainTask - INIT: *********************************************************************
0:024 MainTask - INIT: *                       emUSB-Host Configuration                    *
0:025 MainTask - INIT: *********************************************************************
0:026 MainTask - INIT: * External hubs are ALLOWED
0:027 MainTask - INIT: * Time before communicating with a newly connected device: 300 ms
0:028 MainTask - INIT: *********************************************************************
0:029 MainTask - INIT: Init completed
0:030 MainTask - INIT: Enumeration of devices enabled
0:031 USBH_Task - INIT: USBH_Task started
0:132 USBH_isr - INIT: USBH_ISRTask started
19:825 USBH_Task - APP: **** Device added [0]
22:251 MainTask - APP: Mouse: xRel: 2, yRel: 0, WheelRel: 0, ButtonState: 0
22:252 MainTask - APP: Mouse: xRel: 2, yRel: 0, WheelRel: 0, ButtonState: 0
22:257 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
22:294 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
22:331 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
22:332 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
22:333 MainTask - APP: Mouse: xRel: 8, yRel: 0, WheelRel: 0, ButtonState: 0
22:334 MainTask - APP: Mouse: xRel: 19, yRel: -1, WheelRel: 0, ButtonState: 0
22:335 MainTask - APP: Mouse: xRel: 23, yRel: -2, WheelRel: 0, ButtonState: 0
22:336 MainTask - APP: Mouse: xRel: 29, yRel: -4, WheelRel: 0, ButtonState: 0
22:337 MainTask - APP: Mouse: xRel: 13, yRel: -1, WheelRel: 0, ButtonState: 0
22:338 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
22:339 MainTask - APP: Mouse: xRel: 3, yRel: 0, WheelRel: 0, ButtonState: 0
22:340 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
22:351 MainTask - APP: Mouse: xRel: -10, yRel: 0, WheelRel: 0, ButtonState: 0
22:353 MainTask - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0
22:354 MainTask - APP: Mouse: xRel: -24, yRel: 9, WheelRel: 0, ButtonState: 0
22:355 MainTask - APP: Mouse: xRel: -29, yRel: 13, WheelRel: 0, ButtonState: 0
22:356 MainTask - APP: Mouse: xRel: -38, yRel: 19, WheelRel: 0, ButtonState: 0
22:357 MainTask - APP: Mouse: xRel: -30, yRel: 19, WheelRel: 0, ButtonState: 0
22:359 MainTask - APP: Mouse: xRel: -33, yRel: 19, WheelRel: 0, ButtonState: 0
22:360 MainTask - APP: Mouse: xRel: -28, yRel: 19, WheelRel: 0, ButtonState: 0
22:361 MainTask - APP: Mouse: xRel: -19, yRel: 13, WheelRel: 0, ButtonState: 0
22:362 MainTask - APP: Mouse: xRel: -12, yRel: 7, WheelRel: 0, ButtonState: 0
22:363 MainTask - APP: Mouse: xRel: -1, yRel: 1, WheelRel: 0, ButtonState: 0
22:511 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
25:572 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
25:573 MainTask - APP: Mouse: xRel: 2, yRel: 0, WheelRel: 0, ButtonState: 0
25:574 MainTask - APP: Mouse: xRel: 3, yRel: 0, WheelRel: 0, ButtonState: 0
25:575 MainTask - APP: Mouse: xRel: 2, yRel: 0, WheelRel: 0, ButtonState: 0
25:747 MainTask - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 0, ButtonState: 1
25:776 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 1
25:821 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 1
25:883 MainTask - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 1
25:884 MainTask - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 1
25:885 MainTask - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 1
25:890 MainTask - APP: Mouse: xRel: -2, yRel: 0, WheelRel: 0, ButtonState: 1
25:891 MainTask - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 0, ButtonState: 0
25:892 MainTask - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0
25:893 MainTask - APP: Mouse: xRel: -1, yRel: -1, WheelRel: 0, ButtonState: 0
25:894 MainTask - APP: Mouse: xRel: -2, yRel: -2, WheelRel: 0, ButtonState: 0
25:895 MainTask - APP: Mouse: xRel: 0, yRel: -3, WheelRel: 0, ButtonState: 0
25:896 MainTask - APP: Mouse: xRel: 0, yRel: -2, WheelRel: 0, ButtonState: 0
25:897 MainTask - APP: Mouse: xRel: 0, yRel: -2, WheelRel: 0, ButtonState: 0
25:898 MainTask - APP: Mouse: xRel: 0, yRel: -1, WheelRel: 0, ButtonState: 0
26:015 MainTask - APP: Mouse: xRel: 1, yRel: -1, WheelRel: 0, ButtonState: 0
26:016 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
26:062 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
26:411 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
26:592 MainTask - APP: Mouse: xRel: 3, yRel: 0, WheelRel: 0, ButtonState: 0
26:593 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
26:614 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
26:635 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
26:640 MainTask - APP: Mouse: xRel: 2, yRel: 0, WheelRel: 0, ButtonState: 0
26:653 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
26:658 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
26:672 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
26:861 MainTask - APP: Mouse: xRel: 0, yRel: 2, WheelRel: 0, ButtonState: 0
26:863 MainTask - APP: Mouse: xRel: 0, yRel: 5, WheelRel: 0, ButtonState: 0
26:864 MainTask - APP: Mouse: xRel: 0, yRel: 2, WheelRel: 0, ButtonState: 0
26:865 MainTask - APP: Mouse: xRel: 5, yRel: 10, WheelRel: 0, ButtonState: 0
26:867 MainTask - APP: Mouse: xRel: 0, yRel: 9, WheelRel: 0, ButtonState: 0
26:868 MainTask - APP: Mouse: xRel: 0, yRel: 4, WheelRel: 0, ButtonState: 0
26:985 MainTask - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 0
27:023 MainTask - APP: Mouse: xRel: 0, yRel: 2, WheelRel: 0, ButtonState: 0
27:024 MainTask - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 0
27:025 MainTask - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 2
27:026 MainTask - APP: Mouse: xRel: -2, yRel: 2, WheelRel: 0, ButtonState: 2
27:028 MainTask - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 2
27:029 MainTask - APP: Mouse: xRel: -1, yRel: 2, WheelRel: 0, ButtonState: 2
27:030 MainTask - APP: Mouse: xRel: -1, yRel: 4, WheelRel: 0, ButtonState: 2
27:031 MainTask - APP: Mouse: xRel: -3, yRel: 6, WheelRel: 0, ButtonState: 2
27:032 MainTask - APP: Mouse: xRel: -1, yRel: 1, WheelRel: 0, ButtonState: 2
27:033 MainTask - APP: Mouse: xRel: 0, yRel: 2, WheelRel: 0, ButtonState: 2
27:034 MainTask - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 2
27:035 MainTask - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 2
27:036 MainTask - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 2
27:037 MainTask - APP: Mouse: xRel: 0, yRel: 2, WheelRel: 0, ButtonState: 2
27:043 MainTask - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 2
27:044 MainTask - APP: Mouse: xRel: 1, yRel: 1, WheelRel: 0, ButtonState: 2
27:097 MainTask - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 0, ButtonState: 0
27:143 MainTask - APP: Mouse: xRel: 1, yRel: 1, WheelRel: 0, ButtonState: 0
27:149 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
27:163 MainTask - APP: Mouse: xRel: 2, yRel: 0, WheelRel: 0, ButtonState: 0
27:169 MainTask - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0
30:908 USBH_Task - APP: **** Device removed [0]

(FTD UARTクラス)Sample: USBH_FT232_Start

操作手順:プログラム起動してUSBポートにFTD UARTチップセットのUSB-UART変換アダプタデバイスを挿入します。UARTポートをパソコンに接続してTeraTermなど起動してCOMポートコンソールを開きます。COMポートコンソールから文字を入力してログコンソールからECHOレスポンスを確認します。

Debug IO Console:

0:966 USBH_Task - APP: **** Device added [0]
1:036 MainTask - APP: Vendor  Id = 0x0403
1:037 MainTask - APP: Product Id = 0x6001
1:038 MainTask - APP: bcdDevice  = 0x0400
29:174 MainTask - APP: Received: "E"
29:616 MainTask - APP: Received: "C"
29:835 MainTask - APP: Received: "H"
29:958 MainTask - APP: Received: "O"
32:095 MainTask - APP: Received: "T"
32:521 MainTask - APP: Received: "e"
32:884 MainTask - APP: Received: "s"
33:023 MainTask - APP: Received: "t"

(AUDIOクラス)Sample: USBH_AUDIO_Speaker

操作手順:プログラム起動してUSBポートにAUDIO SPEAKERデバイスを挿入します。スピーカーから音声「It simply works」を確認します。

Debug IO Console:

1563:617 USBH_Task - APP: **** AUDIO Interface added [0]
1563:618 USBH_Task - APP: **** AUDIO Interface added [1]
1563:619 USBH_Task - APP: **** AUDIO Interface added [2]
1563:634 MainTask - APP: AUDIO device:
1563:635 MainTask - APP:   Vendor 0B0E, Product 0420, Version 1.0
1563:637 MainTask - APP:   Prod. : Jabra SPEAK 510 USB
1563:638 MainTask - APP:   Found streaming OUT, Channels=2, Frame=2, Resolution=16
1563:639 MainTask - APP:   Sampling Frequencies:
1563:640 MainTask - APP:       8000 Hz
1563:641 MainTask - APP:      16000 Hz
1563:642 MainTask - APP:      48000 Hz
1563:643 MainTask - APP: Configure Audio device...
1563:644 MainTask - APP: SetAltInterface to 1
1563:646 MainTask - APP: SetSampleFreq to 48000 Hz
1563:651 MainTask - APP: Feature unit 2, Source 1
1563:652 MainTask - APP:   Unmute Unit 2, control 0
1563:656 MainTask - APP:   Get volume unit 2, control 0
1563:665 MainTask - APP:     Volume[0] = 800, FFFFDC00, 800, 400
1563:666 MainTask - APP:   Set volume to 30 % (E933)
1563:687 MainTask - APP:     Volume control not supported
1563:688 MainTask - APP: Feature unit 5, Source 4
1563:689 MainTask - APP:   Unmute Unit 5, control 0
1563:691 MainTask - APP:   Get volume unit 5, control 0
1563:696 MainTask - APP:     Volume[0] = 900, FFFFF400, 900, 300
1563:697 MainTask - APP:   Set volume to 30 % (FA4C)
1563:704 MainTask - APP: Open streaming channel
1563:705 MainTask - APP: Playing ....
1566:189 MainTask - APP: End
前の章

FAT32 ファイルシステム