目次

last update: 2024/04

embOS RTOS用BSPパッケージ
第7章: USB-Hostインターフェース
評価ボード:EK-RX671




テストサンプル

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_Renesas_EK_RX671.c
                     .......... USB-HOSTドライバ設定ファイル

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

ビルド・動作確認方法

プロジェクト設定では「\Application\_Exclude\USBH」フォルダはビルド対象外に設定しています。以下のどちらかの方法で動作確認を行うサンプルアプリケーションを選択します。

  1. 「\_Exclude\USBH」フォルダ下の対象テストサンプルファイルをビルド対象設定の「\Application」フォルダ下にコピーします。
  2. 「\_Exclude\USBH」フォルダ下の対象テストサンプルファイルのみ「ビルド対象外」の設定を解除します。

各テストアプリケーションの動作確認方法はテストサンプルアプリケーションのヘッダのコメント情報を参照ください。

プロジェクトを再ビルドし、EK-RX671評価ボードに接続してデバッグセッションを開始します。
テストアプリケーションの要件に合わせてUSBホストボードにデバイスを接続してプログラムを実行します。デバッガのIOコンソールのログ画面から結果を確認します。

USBH_MSD_Start:サンプルビルド方法

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

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

J29 USBポートのホストモード設定:

usbh setting

評価ボードのジャンパー設定でJ29 USBポートをHOSTモードに変更します。

  • J30:Jumper on pins 2-3
  • J31:Jumper on pins 1-2
  • J32:Open

テストレポート

(クラス情報の確認)Sample: USBH_CreateInterfaceList

操作手順:プログラム起動してUSBポートにUSBデバイスを挿入します。対象デバイスのクラス、Vendor情報はログウインドウから確認します。以下、LANアダプタ及びUSBディスク接続の事例です。

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: EK-RX671
RTOS: SEGGER embOS
----------------------------------------------
0:019 MainTask - INIT: emUSB-Host Init started. Version 2.36.5
0:021 MainTask - INIT: *********************************************************************
0:022 MainTask - INIT: *                       emUSB-Host Configuration                    *
0:023 MainTask - INIT: *********************************************************************
0:024 MainTask - INIT: * External hubs are ALLOWED
0:025 MainTask - INIT: * Time before communicating with a newly connected device: 300 ms
0:026 MainTask - INIT: *********************************************************************
0:027 MainTask - INIT: Init completed
0:028 MainTask - INIT: Enumeration of devices enabled
0:029 USBH_Task - INIT: USBH_Task started
0:130 USBH_isr - INIT: USBH_ISRTask started
0:969 USBH_Task - APP: **** Device added [1]

1:031 MainTask - APP: **** Device information for interface with ID 1
1:032 MainTask - APP:    Device ID: 1
1:033 MainTask - APP:    Vendor ID: 0x0B95
1:034 MainTask - APP:    Product ID: 0x7720
1:035 MainTask - APP:    BCD device version: 0x1
1:036 MainTask - APP:    Interface number: 0
1:037 MainTask - APP:    Device class: 0xFF
1:038 MainTask - APP:    Device subclass: 0xFF
1:039 MainTask - APP:    Device protocol: 0x0
1:040 MainTask - APP:    Number of open handles: 0
1:041 MainTask - APP:    Exclusive state: 0
1:042 MainTask - APP:    Speed: FullSpeed
1:047 MainTask - APP:    Manufacturer name: ASIX Elec. Corp.
1:050 MainTask - APP:    Product name: AX88x72A
1:053 MainTask - APP:    Serial number: E54DF0
1:055 MainTask - APP:    Configuration description: 0
1:057 MainTask - APP:    Interface description: 0
1:058 MainTask - APP:       connected to port 1 of controller 0
47:327 USBH_Task - APP: **** Device removed [1]

47:359 MainTask - APP: No devices found.
55:478 USBH_Task - APP: **** Device added [2]

55:560 MainTask - APP: **** Device information for interface with ID 2
55:561 MainTask - APP:    Device ID: 2
55:562 MainTask - APP:    Vendor ID: 0x090C
55:563 MainTask - APP:    Product ID: 0x1000
55:564 MainTask - APP:    BCD device version: 0x1100
55:565 MainTask - APP:    Interface number: 0
55:566 MainTask - APP:    Device class: 0x8
55:567 MainTask - APP:    Device subclass: 0x6
55:568 MainTask - APP:    Device protocol: 0x50
55:569 MainTask - APP:    Number of open handles: 0
55:570 MainTask - APP:    Exclusive state: 0
55:571 MainTask - APP:    Speed: FullSpeed
55:573 MainTask - APP:    Manufacturer name: USB
55:575 MainTask - APP:    Product name: Flash DISK
55:577 MainTask - APP:    Serial number: 1403033990013620
55:578 MainTask - APP:       connected to port 1 of controller 0
63:856 USBH_Task - APP: **** Device removed [2]

63:879 MainTask - APP: No devices found.

(MSDクラス)Sample: USBH_MSD_Start

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

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: EK-RX671
RTOS: SEGGER embOS
----------------------------------------------
0:019 MainTask - INIT: emUSB-Host Init started. Version 2.36.5
0:021 MainTask - INIT: *********************************************************************
0:022 MainTask - INIT: *                       emUSB-Host Configuration                    *
0:023 MainTask - INIT: *********************************************************************
0:024 MainTask - INIT: * External hubs are ALLOWED
0:025 MainTask - INIT: * Time before communicating with a newly connected device: 300 ms
0:026 MainTask - INIT: *********************************************************************
0:027 MainTask - INIT: Init completed
0:028 MainTask - INIT: Enumeration of devices enabled
0:029 USBH_Task - INIT: USBH_Task started
0:130 USBH_isr - INIT: USBH_ISRTask started
0:965 USBH_Task - APP: **** Device added [0]
0:966 MainTask - APP: The following device was detected:

0:967 MainTask - APP: VendorId:           0x0411
0:968 MainTask - APP: ProductId:          0x023A
0:969 MainTask - APP: VendorName:         BUFFALO 
0:970 MainTask - APP: ProductName:        USB Flash Disk  
0:971 MainTask - APP: Revision:           1.00
0:972 MainTask - APP: NumSectors:         60566016
0:973 MainTask - APP: BytesPerSector:     512
0:975 MainTask - APP: TotalSize:          29573 MByte
0:976 MainTask - APP: HighspeedCapable:   No
0:977 MainTask - APP: ConnectedToRootHub: Yes
0:978 MainTask - APP: SelfPowered:        No
0:979 MainTask - APP: Reported Imax:      150 mA
0:980 MainTask - APP: Connected to Port:  1
0:981 MainTask - APP: PortSpeed:          FullSpeed

0:982 MainTask - APP: Checking whether the volume is formatted...
2:433 MainTask - APP: Running sample on volume "msd:0:" DevIndex 0, LUN 0
2:434 MainTask - APP: Reading volume information...
2:435 MainTask - APP: **** Volume information for msd:0:
2:436 MainTask - APP:    30270720 KBytes total disk space
2:437 MainTask - APP:    30181248 KBytes available free space
2:438 MainTask - APP:    32768 bytes per cluster
2:439 MainTask - APP:    945960 clusters available on volume
2:440 MainTask - APP:    943164 free cluster available on volume
2:441 MainTask - APP: Creating file msd:0:\TestFile.txt...
2:457 MainTask - APP: Ok
2:458 MainTask - APP: Contents of msd:0: 
2:459 MainTask - APP:        Attributes: A--- Size: 0
2:460 MainTask - APP: TestFile.txt       Attributes: A--- Size: 239
2:461 MainTask - APP: Firmware.old (Dir) Attributes: ---- Size: 0
2:462 MainTask - APP: Firmware (Dir) Attributes: ---- Size: 0
2:463 MainTask - APP: **** Unmount ****

(HIDクラス)Sample: USBH_HID_Start

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

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: EK-RX671
RTOS: SEGGER embOS
----------------------------------------------
0:019 MainTask - INIT: emUSB-Host Init started. Version 2.36.5
0:021 MainTask - INIT: *********************************************************************
0:022 MainTask - INIT: *                       emUSB-Host Configuration                    *
0:023 MainTask - INIT: *********************************************************************
0:024 MainTask - INIT: * External hubs are ALLOWED
0:025 MainTask - INIT: * Time before communicating with a newly connected device: 300 ms
0:026 MainTask - INIT: *********************************************************************
0:027 MainTask - INIT: Init completed
0:028 MainTask - INIT: Enumeration of devices enabled
0:029 USBH_Task - INIT: USBH_Task started
0:130 USBH_isr - INIT: USBH_ISRTask started
80:336 USBH_Task - APP: **** Device added [0]
80:357 USBH_Task - APP: **** Device added [1]
88:709 MainTask - APP: Keyboard:  Key Spacebar                  - pressed
88:756 MainTask - APP: Keyboard:  Key Spacebar                  - released
94:673 MainTask - APP: Keyboard:  Key e/E                       - pressed
94:719 MainTask - APP: Keyboard:  Key e/E                       - released
94:806 MainTask - APP: Keyboard:  Key m/M                       - pressed
94:885 MainTask - APP: Keyboard:  Key m/M                       - released
95:491 MainTask - APP: Keyboard:  Key LeftShift                 - pressed
95:746 MainTask - APP: Keyboard:  Key u/U                       - pressed
95:785 MainTask - APP: Keyboard:  Key u/U                       - released
95:816 MainTask - APP: Keyboard:  Key s/S                       - pressed
95:895 MainTask - APP: Keyboard:  Key s/S                       - released
96:110 MainTask - APP: Keyboard:  Key b/B                       - pressed
96:189 MainTask - APP: Keyboard:  Key b/B                       - released
96:341 MainTask - APP: Keyboard:  Key LeftShift                 - released
104:074 MainTask - APP: Keyboard:  Key Return (ENTER)            - pressed
104:120 MainTask - APP: Keyboard:  Key Return (ENTER)            - released
116:756 MainTask - APP: Keyboard:  Key 1/!                       - pressed
116:882 MainTask - APP: Keyboard:  Key 1/!                       - released
116:883 MainTask - APP: Keyboard:  Key 2/@                       - pressed
116:969 MainTask - APP: Keyboard:  Key 2/@                       - released
124:703 MainTask - APP: Keyboard:  Key 3/#                       - pressed
124:734 MainTask - APP: Keyboard:  Key 3/#                       - released
125:012 MainTask - APP: Keyboard:  Key 4/$                       - pressed
125:013 MainTask - APP: Keyboard:  Key 4/$                       - released
130:850 USBH_Task - *** Warning *** HID: _SubmitInBuffer: SubmitUrb USBH_STATUS_DEVICE_REMOVED
130:851 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:

6:223 USBH_Task - APP: **** Device added [0]
6:233 MainTask - APP: Vendor  Id = 0x0403
6:234 MainTask - APP: Product Id = 0x6001
6:235 MainTask - APP: bcdDevice  = 0x0400
58:543 MainTask - APP: Received: "F"
58:730 MainTask - APP: Received: "T"
61:443 MainTask - APP: Received: "2"
61:982 MainTask - APP: Received: "3"
62:393 MainTask - APP: Received: "2"
64:387 MainTask - APP: Received: "C"
64:829 MainTask - APP: Received: "l"
64:968 MainTask - APP: Received: "a"
65:315 MainTask - APP: Received: "s"
65:486 MainTask - APP: Received: "s"
66:393 MainTask - APP: Received: "T"
66:559 MainTask - APP: Received: "e"
66:806 MainTask - APP: Received: "s"
66:898 MainTask - APP: Received: "t"

(AUDIOクラス)Sample: USBH_AUDIO_ScanDevices

操作手順:USB AUDIOデバイス(スピーカー・ヘッドセットなど)を挿入してプログラムを実行します。ログコンソールからAUDIOデバイスの情報を確認します。

Debug IO Console:

32:791 USBH_Task - APP: **** AUDIO Interface added [0]
32:792 USBH_Task - APP: **** AUDIO Interface added [1]
32:793 USBH_Task - APP: **** AUDIO Interface added [2]
32:832 MainTask - APP: AUDIO control interface found (DevId 1):
32:834 MainTask - APP:   Vendor 2D0B, Product 0002, Version 1.0
32:835 MainTask - APP:   Serial: 00000000
32:849 MainTask - APP:   Manuf.: IPD Korea
32:869 MainTask - APP:   Prod. : IPD USB Headset
32:870 MainTask - APP:   Input terminal 1
32:871 MainTask - APP:     Terminal type 402
32:872 MainTask - APP:   Output terminal 3, Source 2
32:873 MainTask - APP:     Terminal type 101
32:874 MainTask - APP:   Input terminal 4
32:875 MainTask - APP:     Terminal type 101
32:876 MainTask - APP:   Output terminal 6, Source 5
32:877 MainTask - APP:     Terminal type 402
32:878 MainTask - APP:   Input terminal 10
32:879 MainTask - APP:     Terminal type 201
32:880 MainTask - APP:   Feature Unit 2, Source 1
32:881 MainTask - APP:     Control channel 0, mask = 43
32:886 MainTask - APP:       Volume: Cur = 0, Min = FFFFE200, Max = 500, Res = 100
32:887 MainTask - APP:     Control channel 1, mask = 0
32:888 MainTask - APP:     Control channel 2, mask = 0
32:889 MainTask - APP:   Feature Unit 5, Source 12
32:890 MainTask - APP:     Control channel 0, mask = 1
32:891 MainTask - APP:     Control channel 1, mask = 2
32:897 MainTask - APP:       Volume: Cur = 500, Min = FFFFCE00, Max = 500, Res = 100
32:898 MainTask - APP:     Control channel 2, mask = 2
32:903 MainTask - APP:       Volume: Cur = 500, Min = FFFFCE00, Max = 500, Res = 100
32:904 MainTask - APP:   Feature Unit 11, Source 10
32:905 MainTask - APP:     Control channel 0, mask = 3
32:910 MainTask - APP:       Volume: Cur = 3B3, Min = 0, Max = 1000, Res = 1
32:911 MainTask - APP:     Control channel 1, mask = 0
32:912 MainTask - APP:     Control channel 2, mask = 0
32:913 MainTask - APP:   Mixer Unit 12
32:914 MainTask - APP:     Input 1 = source unit 4
32:915 MainTask - APP:     Input 2 = source unit 11
32:916 MainTask - APP:     Output channels 2, wChannelConfig = 3
32:917 MainTask - APP:     Control mask[0] = 00
32:918 MainTask - APP: AUDIO streaming interface found (DevId 1):
32:919 MainTask - APP:   Found streaming IN EP on AltSetting 1
32:920 MainTask - APP:     Terminal Link 3
32:921 MainTask - APP:     Channels=2, Frame=2, Resolution=16
32:922 MainTask - APP:   Sampling Frequencies:
32:923 MainTask - APP:       8000 Hz
32:924 MainTask - APP:      16000 Hz
32:925 MainTask - APP:      24000 Hz
32:926 MainTask - APP:      32000 Hz
32:927 MainTask - APP:      44100 Hz
32:928 MainTask - APP:      48000 Hz
32:929 MainTask - APP: AUDIO streaming interface found (DevId 1):
32:930 MainTask - APP:   Found streaming OUT EP on AltSetting 1
32:931 MainTask - APP:     Terminal Link 4
32:932 MainTask - APP:     Channels=2, Frame=2, Resolution=16
32:933 MainTask - APP:   Sampling Frequencies:
32:934 MainTask - APP:       8000 Hz
32:935 MainTask - APP:      16000 Hz
32:936 MainTask - APP:      24000 Hz
32:937 MainTask - APP:      32000 Hz
32:938 MainTask - APP:      44100 Hz
32:939 MainTask - APP:      48000 Hz

(AUDIOクラス)Sample: USBH_AUDIO_Speaker

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

Debug IO Console:

0:969 USBH_Task - APP: **** AUDIO Interface added [0]
0:970 USBH_Task - APP: **** AUDIO Interface added [1]
0:971 USBH_Task - APP: **** AUDIO Interface added [2]
0:982 MainTask - APP: AUDIO device:
0:983 MainTask - APP:   Vendor 0B0E, Product 0420, Version 1.0
0:985 MainTask - APP:   Prod. : Jabra SPEAK 510 USB
0:986 MainTask - APP:   Found streaming OUT, Channels=2, Frame=2, Resolution=16
0:987 MainTask - APP:   Sampling Frequencies:
0:988 MainTask - APP:       8000 Hz
0:989 MainTask - APP:      16000 Hz
0:990 MainTask - APP:      48000 Hz
0:991 MainTask - APP: Configure Audio device...
0:992 MainTask - APP: SetAltInterface to 1
0:994 MainTask - APP: SetSampleFreq to 48000 Hz
0:999 MainTask - APP: Feature unit 2, Source 1
1:000 MainTask - APP:   Unmute Unit 2, control 0
1:004 MainTask - APP:   Get volume unit 2, control 0
1:009 MainTask - APP:     Volume[0] = FFFFE800, FFFFDC00, 800, 400
1:010 MainTask - APP:   Set volume to 30 % (E933)
1:016 MainTask - APP: Feature unit 5, Source 4
1:017 MainTask - APP:   Unmute Unit 5, control 0
1:019 MainTask - APP:   Get volume unit 5, control 0
1:024 MainTask - APP:     Volume[0] = FFFFFA00, FFFFF400, 900, 300
1:025 MainTask - APP:   Set volume to 30 % (FA4C)
1:032 MainTask - APP: Open streaming channel
1:033 MainTask - APP: Playing ....
3:517 MainTask - APP: End
前の章

セキュリティ機能の評価

次の章

TCP/IP-Over-USB通信