last update: 2024/04
Demo Sample Application Folder:
Application └ _Exclude ├ USBH ..... USB Host各種クラス機能のデモサンプル
Sample | 説明 |
---|---|
USBH_Printer_Start | プリンタクラスドライバのデモサンプル |
USBH_MTP_Start | USBホストのMTPクラスドライバの使用方法を示すデモサンプル |
USBH_MSD_Start | MSDクラスのデモアプリケーション(ファイルシステムが必要です) |
USBH_HID_Start | 標準HIDキーボード・マウスデバイス用デモサンプル |
USBH_FT232_Start | FTDI FT232クラスドライバのデモサンプル |
USBH_CreateInterfaceList | USBポートに接続されているデバイスのステータス及びデバイス情報をIOコンソールに表示します |
USBH_CDC_Start | USBホストのCDC-ACMクラスドライバのデモサンプル |
USBH_CCID_Start | CCID通信デバイスクラスドライバのデモサンプル |
USBH_BULK_Start | BULK(VENDOR)クラスドライバのデモサンプル |
USBH_AUDIO_Speaker | AUDIO(スピーカーデバイス)クラスドライバのデモサンプル |
USBH_AUDIO_ScanDevices | USBポートにAUDIOクラスデバイスが接続された時にデバイスのベンダ・コンフィグレーション情報を表示します |
USBH_AUDIO_Microphone | AUDIO(マイクロフォンデバイス)クラスドライバのデモサンプル |
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 |- libFreeRT_OSLayer_RXv3_L.lib ..... OSインターフェース設定ファイル
プロジェクト設定では「\Application\_Exclude\USBH」フォルダはビルド対象外に設定しています。
「\_Exclude\USBH」フォルダ下の対象テストサンプルファイルをビルド対象設定の「\Application」フォルダ下にコピーします。
各テストアプリケーションの動作確認方法はテストサンプルアプリケーションのヘッダのコメント情報を参照ください。
プロジェクトを再ビルドし、EK-RX671評価ボードに接続してデバッグセッションを開始します。
テストアプリケーションの要件に合わせてUSBホストボードにデバイスを接続してプログラムを実行します。デバッガのIOコンソールのログ画面から結果を確認します。
USBディスクドライブインターフェースを使用しますので、以下の手順でファイルシステム(emFile)のドライバ設定をUSBディスクドライブに変更してください。
評価ボードのジャンパー設定でJ29 USBポートをHOSTモードに変更します。
操作手順:プログラム起動してUSBポートにUSBデバイスを挿入します。対象デバイスのクラス、Vendor情報はログウインドウから確認します。以下、LANアダプタ及びUSBディスク接続の事例です。
Debug IO Console:
SEGGER Software Evaluation Sample Eval Board: EK-RX671 Base: FreeRTOS V10.0.0 ------------------------------------------------ 0:020 MAIN_TASK - INIT: emUSB-Host Init started. Version 2.36.6 0:022 MAIN_TASK - INIT: ********************************************************************* 0:023 MAIN_TASK - INIT: * emUSB-Host Configuration * 0:024 MAIN_TASK - INIT: ********************************************************************* 0:025 MAIN_TASK - INIT: * External hubs are ALLOWED 0:026 MAIN_TASK - INIT: * Time before communicating with a newly connected device: 300 ms 0:027 MAIN_TASK - INIT: ********************************************************************* 0:028 MAIN_TASK - INIT: Init completed 0:029 MAIN_TASK - INIT: Enumeration of devices enabled 0:030 USBH_TASK - INIT: USBH_Task started 0:031 USBH_Isr - INIT: USBH_ISRTask started 18:563 USBH_TASK - APP: **** Device added [1] 18:632 MAIN_TASK - APP: **** Device information for interface with ID 1 18:633 MAIN_TASK - APP: Device ID: 1 18:634 MAIN_TASK - APP: Vendor ID: 0x0B95 18:635 MAIN_TASK - APP: Product ID: 0x1790 18:636 MAIN_TASK - APP: BCD device version: 0x200 18:637 MAIN_TASK - APP: Interface number: 0 18:638 MAIN_TASK - APP: Device class: 0xFF 18:639 MAIN_TASK - APP: Device subclass: 0xFF 18:640 MAIN_TASK - APP: Device protocol: 0x0 18:641 MAIN_TASK - APP: Number of open handles: 0 18:643 MAIN_TASK - APP: Exclusive state: 0 18:644 MAIN_TASK - APP: Speed: FullSpeed 18:657 MAIN_TASK - APP: Manufacturer name: ASIX 18:672 MAIN_TASK - APP: Product name: AX88179A 18:689 MAIN_TASK - APP: Serial number: 04AB18FE506C 18:709 MAIN_TASK - APP: Interface description: Network_Interface 18:710 MAIN_TASK - APP: connected to port 1 of controller 0 159:181 USBH_TASK - APP: **** Device removed [1] 159:211 MAIN_TASK - APP: No devices found. 164:257 USBH_TASK - APP: **** Device added [2] 164:312 MAIN_TASK - APP: **** Device information for interface with ID 2 164:313 MAIN_TASK - APP: Device ID: 2 164:314 MAIN_TASK - APP: Vendor ID: 0x090C 164:315 MAIN_TASK - APP: Product ID: 0x1000 164:316 MAIN_TASK - APP: BCD device version: 0x1100 164:317 MAIN_TASK - APP: Interface number: 0 164:318 MAIN_TASK - APP: Device class: 0x8 164:319 MAIN_TASK - APP: Device subclass: 0x6 164:320 MAIN_TASK - APP: Device protocol: 0x50 164:321 MAIN_TASK - APP: Number of open handles: 0 164:322 MAIN_TASK - APP: Exclusive state: 0 164:323 MAIN_TASK - APP: Speed: FullSpeed 164:325 MAIN_TASK - APP: Manufacturer name: USB 164:327 MAIN_TASK - APP: Product name: Flash DISK 164:329 MAIN_TASK - APP: Serial number: 1403033990013620 164:330 MAIN_TASK - APP: connected to port 1 of controller 0
操作手順:ファイルシステムのUSBH-MSDドライバ定義ファイル「FS_USBH_MSDConfig.c」をビルド対象に設定してプロジェクトをビルドします。プログラム起動してUSBポートにUSBディスクを挿入します。
テスト完了後に「FS_USBH_MSDConfig.c」をビルド対象外に設定します。
Debug IO Console:
SEGGER Software Evaluation Sample Eval Board: EK-RX671 Base: FreeRTOS V10.0.0 ------------------------------------------------ 0:020 MAIN_TASK - INIT: emUSB-Host Init started. Version 2.36.6 0:022 MAIN_TASK - INIT: ********************************************************************* 0:023 MAIN_TASK - INIT: * emUSB-Host Configuration * 0:024 MAIN_TASK - INIT: ********************************************************************* 0:025 MAIN_TASK - INIT: * External hubs are ALLOWED 0:026 MAIN_TASK - INIT: * Time before communicating with a newly connected device: 300 ms 0:027 MAIN_TASK - INIT: ********************************************************************* 0:028 MAIN_TASK - INIT: Init completed 0:029 MAIN_TASK - INIT: Enumeration of devices enabled 0:030 USBH_TASK - INIT: USBH_Task started 0:031 USBH_Isr - INIT: USBH_ISRTask started 0:948 USBH_TASK - APP: **** Device added [0] 0:949 MAIN_TASK - APP: The following device was detected: 0:950 MAIN_TASK - APP: VendorId: 0x0411 0:951 MAIN_TASK - APP: ProductId: 0x023A 0:952 MAIN_TASK - APP: VendorName: BUFFALO 0:953 MAIN_TASK - APP: ProductName: USB Flash Disk 0:954 MAIN_TASK - APP: Revision: 1.00 0:955 MAIN_TASK - APP: NumSectors: 60566016 0:956 MAIN_TASK - APP: BytesPerSector: 512 0:957 MAIN_TASK - APP: TotalSize: 29573 MByte 0:958 MAIN_TASK - APP: HighspeedCapable: No 0:959 MAIN_TASK - APP: ConnectedToRootHub: Yes 0:960 MAIN_TASK - APP: SelfPowered: No 0:961 MAIN_TASK - APP: Reported Imax: 150 mA 0:962 MAIN_TASK - APP: Connected to Port: 1 0:963 MAIN_TASK - APP: PortSpeed: FullSpeed 0:964 MAIN_TASK - APP: Checking whether the volume is formatted... 2:383 MAIN_TASK - APP: Running sample on volume "msd:0:" DevIndex 0, LUN 0 2:384 MAIN_TASK - APP: Reading volume information... 2:385 MAIN_TASK - APP: **** Volume information for msd:0: 2:386 MAIN_TASK - APP: 30270720 KBytes total disk space 2:387 MAIN_TASK - APP: 30181248 KBytes available free space 2:388 MAIN_TASK - APP: 32768 bytes per cluster 2:389 MAIN_TASK - APP: 945960 clusters available on volume 2:390 MAIN_TASK - APP: 943164 free cluster available on volume 2:391 MAIN_TASK - APP: Creating file msd:0:\TestFile.txt... 2:408 MAIN_TASK - APP: Ok 2:409 MAIN_TASK - APP: Contents of msd:0: 2:410 MAIN_TASK - APP: Attributes: A--- Size: 0 2:411 MAIN_TASK - APP: TestFile.txt Attributes: A--- Size: 200 2:412 MAIN_TASK - APP: Firmware.old (Dir) Attributes: ---- Size: 0 2:413 MAIN_TASK - APP: Firmware (Dir) Attributes: ---- Size: 0 2:414 MAIN_TASK - APP: **** Unmount ****
操作手順:プログラム起動してUSBポートにHID マウスデバイスを挿入します。マウス操作のレスポンスをログコンソールから確認します。
Debug IO Console:
SEGGER Software Evaluation Sample Eval Board: EK-RX671 Base: FreeRTOS V10.0.0 ------------------------------------------------ 0:020 MAIN_TASK - INIT: emUSB-Host Init started. Version 2.36.6 0:022 MAIN_TASK - INIT: ********************************************************************* 0:023 MAIN_TASK - INIT: * emUSB-Host Configuration * 0:024 MAIN_TASK - INIT: ********************************************************************* 0:025 MAIN_TASK - INIT: * External hubs are ALLOWED 0:026 MAIN_TASK - INIT: * Time before communicating with a newly connected device: 300 ms 0:027 MAIN_TASK - INIT: ********************************************************************* 0:028 MAIN_TASK - INIT: Init completed 0:029 MAIN_TASK - INIT: Enumeration of devices enabled 0:030 USBH_TASK - INIT: USBH_Task started 0:031 USBH_Isr - INIT: USBH_ISRTask started 21:063 USBH_TASK - APP: **** Device added [0] 21:178 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0 21:179 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0 21:217 MAIN_TASK - APP: Mouse: xRel: -2, yRel: 0, WheelRel: 0, ButtonState: 0 21:398 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 1, WheelRel: 0, ButtonState: 0 21:399 MAIN_TASK - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0 21:400 MAIN_TASK - APP: Mouse: xRel: 5, yRel: 7, WheelRel: 0, ButtonState: 0 22:381 MAIN_TASK - APP: Mouse: xRel: -17, yRel: -13, WheelRel: 0, ButtonState: 0 22:383 MAIN_TASK - APP: Mouse: xRel: -4, yRel: -8, WheelRel: 0, ButtonState: 0 22:384 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0 22:385 MAIN_TASK - APP: Mouse: xRel: -12, yRel: 1, WheelRel: 0, ButtonState: 0 22:387 MAIN_TASK - APP: Mouse: xRel: -2, yRel: 0, WheelRel: 0, ButtonState: 0 22:608 MAIN_TASK - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 0 22:609 MAIN_TASK - APP: Mouse: xRel: 0, yRel: 1, WheelRel: 0, ButtonState: 0 22:610 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 3, WheelRel: 0, ButtonState: 0 22:612 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0 22:613 MAIN_TASK - APP: Mouse: xRel: 2, yRel: 0, WheelRel: 0, ButtonState: 0 22:659 MAIN_TASK - APP: Mouse: xRel: 1, yRel: -1, WheelRel: 0, ButtonState: 0 22:660 MAIN_TASK - APP: Mouse: xRel: 0, yRel: -1, WheelRel: 0, ButtonState: 0 22:765 MAIN_TASK - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 1, ButtonState: 0 23:123 MAIN_TASK - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 0, ButtonState: 2 23:233 MAIN_TASK - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 0, ButtonState: 0 23:375 MAIN_TASK - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 0, ButtonState: 2 23:437 MAIN_TASK - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 0, ButtonState: 0 23:787 MAIN_TASK - APP: Mouse: xRel: 0, yRel: -1, WheelRel: 0, ButtonState: 0 23:809 MAIN_TASK - APP: Mouse: xRel: 0, yRel: -1, WheelRel: 0, ButtonState: 0 23:815 MAIN_TASK - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0 23:853 MAIN_TASK - APP: Mouse: xRel: 2, yRel: 0, WheelRel: 0, ButtonState: 0 23:854 MAIN_TASK - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0 23:855 MAIN_TASK - APP: Mouse: xRel: 1, yRel: -1, WheelRel: 0, ButtonState: 0 23:856 MAIN_TASK - APP: Mouse: xRel: 3, yRel: -1, WheelRel: 0, ButtonState: 0 23:857 MAIN_TASK - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0 23:858 MAIN_TASK - APP: Mouse: xRel: 1, yRel: -1, WheelRel: 0, ButtonState: 0 23:864 MAIN_TASK - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 0, ButtonState: 1 23:974 MAIN_TASK - APP: Mouse: xRel: 0, yRel: 0, WheelRel: 0, ButtonState: 0 23:988 MAIN_TASK - APP: Mouse: xRel: 1, yRel: -7, WheelRel: 0, ButtonState: 0 23:989 MAIN_TASK - APP: Mouse: xRel: 1, yRel: -1, WheelRel: 0, ButtonState: 0 23:990 MAIN_TASK - APP: Mouse: xRel: 2, yRel: -4, WheelRel: 0, ButtonState: 0 23:992 MAIN_TASK - APP: Mouse: xRel: 2, yRel: -5, WheelRel: 0, ButtonState: 0 23:993 MAIN_TASK - APP: Mouse: xRel: 3, yRel: -4, WheelRel: 0, ButtonState: 0 24:391 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0 24:392 MAIN_TASK - APP: Mouse: xRel: 1, yRel: 6, WheelRel: 0, ButtonState: 0 24:393 MAIN_TASK - APP: Mouse: xRel: 1, yRel: 1, WheelRel: 0, ButtonState: 0 24:395 MAIN_TASK - APP: Mouse: xRel: 3, yRel: 6, WheelRel: 0, ButtonState: 0 24:396 MAIN_TASK - APP: Mouse: xRel: 1, yRel: 0, WheelRel: 0, ButtonState: 0 24:397 MAIN_TASK - APP: Mouse: xRel: -5, yRel: 3, WheelRel: 0, ButtonState: 0 24:398 MAIN_TASK - APP: Mouse: xRel: -2, yRel: 1, WheelRel: 0, ButtonState: 0 24:442 MAIN_TASK - APP: Mouse: xRel: -2, yRel: 0, WheelRel: 0, ButtonState: 0 24:464 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 1, WheelRel: 0, ButtonState: 0 24:465 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0 24:466 MAIN_TASK - APP: Mouse: xRel: -4, yRel: 0, WheelRel: 0, ButtonState: 0 24:468 MAIN_TASK - APP: Mouse: xRel: -3, yRel: 4, WheelRel: 0, ButtonState: 0 24:469 MAIN_TASK - APP: Mouse: xRel: -3, yRel: 1, WheelRel: 0, ButtonState: 0 24:470 MAIN_TASK - APP: Mouse: xRel: -4, yRel: 3, WheelRel: 0, ButtonState: 0 24:471 MAIN_TASK - APP: Mouse: xRel: -2, yRel: 0, WheelRel: 0, ButtonState: 0 24:472 MAIN_TASK - APP: Mouse: xRel: -39, yRel: 18, WheelRel: 0, ButtonState: 0 24:474 MAIN_TASK - APP: Mouse: xRel: -7, yRel: 4, WheelRel: 0, ButtonState: 0 24:475 MAIN_TASK - APP: Mouse: xRel: -4, yRel: 2, WheelRel: 0, ButtonState: 0 24:476 MAIN_TASK - APP: Mouse: xRel: -60, yRel: 22, WheelRel: 0, ButtonState: 0 24:477 MAIN_TASK - APP: Mouse: xRel: -7, yRel: 1, WheelRel: 0, ButtonState: 0 24:478 MAIN_TASK - APP: Mouse: xRel: -3, yRel: 2, WheelRel: 0, ButtonState: 0 24:479 MAIN_TASK - APP: Mouse: xRel: -2, yRel: 0, WheelRel: 0, ButtonState: 0 25:373 MAIN_TASK - APP: Mouse: xRel: -2, yRel: 1, WheelRel: 0, ButtonState: 0 25:411 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0 25:412 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 1, WheelRel: 0, ButtonState: 0 25:413 MAIN_TASK - APP: Mouse: xRel: -1, yRel: 0, WheelRel: 0, ButtonState: 0 25:618 MAIN_TASK - APP: Mouse: xRel: -2, yRel: 1, WheelRel: 0, ButtonState: 0 26:353 USBH_TASK - *** Warning *** HID: _SubmitInBuffer: SubmitUrb USBH_STATUS_DEVICE_REMOVED 26:354 USBH_TASK - APP: **** Device removed [0]
操作手順:プログラム起動してUSBポートにFTD UARTチップセットのUSB-UART変換アダプタデバイスを挿入します。UARTポートをパソコンに接続してTeraTermなど起動してCOMポートコンソールを開きます。COMポートコンソールから文字を入力してログコンソールからECHOレスポンスを確認します。
Debug IO Console:
SEGGER Software Evaluation Sample Eval Board: EK-RX671 Base: FreeRTOS V10.0.0 ------------------------------------------------ 0:020 MAIN_TASK - INIT: emUSB-Host Init started. Version 2.36.6 0:022 MAIN_TASK - INIT: ********************************************************************* 0:023 MAIN_TASK - INIT: * emUSB-Host Configuration * 0:024 MAIN_TASK - INIT: ********************************************************************* 0:025 MAIN_TASK - INIT: * External hubs are ALLOWED 0:026 MAIN_TASK - INIT: * Time before communicating with a newly connected device: 300 ms 0:027 MAIN_TASK - INIT: ********************************************************************* 0:028 MAIN_TASK - INIT: Init completed 0:029 MAIN_TASK - INIT: Enumeration of devices enabled 0:030 USBH_TASK - INIT: USBH_Task started 0:031 USBH_Isr - INIT: USBH_ISRTask started 13:546 USBH_TASK - APP: **** Device added [0] 13:634 MAIN_TASK - APP: Vendor Id = 0x0403 13:635 MAIN_TASK - APP: Product Id = 0x6001 13:636 MAIN_TASK - APP: bcdDevice = 0x0400 107:940 MAIN_TASK - APP: Received: "F" 108:095 MAIN_TASK - APP: Received: "T" 109:097 MAIN_TASK - APP: Received: "D" 115:072 MAIN_TASK - APP: Received: "-" 115:435 MAIN_TASK - APP: Received: "T" 115:734 MAIN_TASK - APP: Received: "e" 115:952 MAIN_TASK - APP: Received: "s" 116:107 MAIN_TASK - APP: Received: "t"
操作手順:AUDIO SPEAKERデバイスを挿入してプログラムを実行します。スピーカーから音声「It simply works」を確認します。
Debug IO Console:
SEGGER Software Evaluation Sample Eval Board: EK-RX671 Base: FreeRTOS V10.0.0 ------------------------------------------------ 0:020 MAIN_TASK - INIT: emUSB-Host Init started. Version 2.36.6 0:022 MAIN_TASK - INIT: ********************************************************************* 0:023 MAIN_TASK - INIT: * emUSB-Host Configuration * 0:024 MAIN_TASK - INIT: ********************************************************************* 0:025 MAIN_TASK - INIT: * External hubs are ALLOWED 0:026 MAIN_TASK - INIT: * Time before communicating with a newly connected device: 300 ms 0:027 MAIN_TASK - INIT: ********************************************************************* 0:028 MAIN_TASK - INIT: Init completed 0:029 MAIN_TASK - INIT: Enumeration of devices enabled 0:030 USBH_TASK - INIT: USBH_Task started 0:031 USBH_Isr - INIT: USBH_ISRTask started 1:244 USBH_TASK - APP: **** AUDIO Interface added [0] 1:245 USBH_TASK - APP: **** AUDIO Interface added [1] 1:246 USBH_TASK - APP: **** AUDIO Interface added [2] 1:282 MAIN_TASK - APP: AUDIO device: 1:283 MAIN_TASK - APP: Vendor 0B0E, Product 0420, Version 1.0 1:285 MAIN_TASK - APP: Prod. : Jabra SPEAK 510 USB 1:286 MAIN_TASK - APP: Found streaming OUT, Channels=2, Frame=2, Resolution=16 1:287 MAIN_TASK - APP: Sampling Frequencies: 1:288 MAIN_TASK - APP: 8000 Hz 1:289 MAIN_TASK - APP: 16000 Hz 1:290 MAIN_TASK - APP: 48000 Hz 1:291 MAIN_TASK - APP: Configure Audio device... 1:292 MAIN_TASK - APP: SetAltInterface to 1 1:294 MAIN_TASK - APP: SetSampleFreq to 48000 Hz 1:298 MAIN_TASK - APP: Feature unit 2, Source 1 1:299 MAIN_TASK - APP: Unmute Unit 2, control 0 1:303 MAIN_TASK - APP: Get volume unit 2, control 0 1:309 MAIN_TASK - APP: Volume[0] = FFFFE800, FFFFDC00, 800, 400 1:310 MAIN_TASK - APP: Set volume to 30 % (E933) 1:318 MAIN_TASK - APP: Feature unit 5, Source 4 1:319 MAIN_TASK - APP: Unmute Unit 5, control 0 1:322 MAIN_TASK - APP: Get volume unit 5, control 0 1:328 MAIN_TASK - APP: Volume[0] = FFFFFA00, FFFFF400, 900, 300 1:329 MAIN_TASK - APP: Set volume to 30 % (FA4C) 1:337 MAIN_TASK - APP: Open streaming channel 1:339 MAIN_TASK - APP: Playing .... 3:824 MAIN_TASK - APP: End
USB-Deviceインターフェース