目次

last update: 2024/04

RI600V4 (ITRON) RTOS用BSPパッケージ
第6章: USB-Deviceインターフェース
評価ボード:EK-RX671




テストサンプル

Demo Sample Application Folder:

Application
 └ _Exclude
     ├ USBD  .... USB Device各種クラス機能のデモサンプル
Sample説明
USB_BULK_PerformanceBULK(VENDOR)クラスを実装して通信速度を確認します
USB_CDC_EchoCDC-ACMクラスコンポーネントを実装して簡単なECHOサンプルを確認します
USB_CompositeDevice_CDC_MSDCDC + MSDのマルチファンクションデバイスを実装したデモサンプル
USB_DFU_MixedMode_StartDFUクラスコンポーネントを実装してファール転送を確認します
USB_DFU_StartDFU(Device Firmware Upgrade)クラスコンポーネントの実装方法を示すサンプル
USB_HID_AudioControlUSB HIDクラスコンポーネントをオーディオ制御デバイスとして使用します
USB_HID_Keyboard_MouseUSB HIDクラスコンポーネントでマウス+キーボードファンクションを実装します
USB_HID_MMControl多目的(複数 REPORT ID)HID デバイスの実装方法を示すサンプル
USB_HID_MouseUSB HIDクラスコンポーネントをマウスデバイスとして使用します
USB_MIDI_StartMIDI(Musical Instrument Digital Interface)クラスデバイスの実装方法を示すサンプル
USB_MSD_FS_StartMSDクラスデバイスの実装方法を示すサンプル(ファイルシステムが必要です)
USB_MTP_StartMTPクラスデバイスの実装方法を示すサンプル(ファイルシステムが必要です)
USB_Printerプリンタクラスデバイスの実装方法を示すサンプル
USB_VirtualMSD_CRCVirtualMSDクラスコンポーネントを実装したデモサンプル
USB_VirtualMSD_StartVirtualMSDクラスデバイスの実装方法を示すサンプル(VIRT0、VIRT1 MSD)
USB_Audio_Speaker_MicrophoneAUDIOクラスコンポーネントを使用してUSBマイクとスピーカーを実装します

関連設定ファイル:

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

Config
 |- USB_Conf.h  ............... コンフィグレーション設定ファイル
 |
 |- IO
 |   |- USB_ConfigIO.c  ....... デバッグコンソールIOインターフェース設定ファイル
 |
 |- OS
     |- USB_OS_uITRON_Config.c  ............ OSリソースID設定ファイル
     |- libRI600V4_OSLayer_RXv3_L.lib  ..... OSインターフェース設定ファイル

ビルド・動作確認方法

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

「\_Exclude\USBD」フォルダ下の対象テストサンプルファイルをビルド対象設定の「\Application」フォルダ下にコピーします。
各テストアプリケーションの動作確認方法はテストサンプルアプリケーションのヘッダのコメント情報を参照ください。

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

J29 USBポートのデバイスモード設定:

usbd setting

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

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

テストレポート

(PRINTERクラス)Sample: USB_Printer

操作手順:プログラム起動してUSBポートをパソコンに接続します。PC側の設定パネルからUSBデバイスが「HP-LaserJet-6P/6MP」プリンタとして認識されていることを確認します。「HP-LaserJet-6P/6MP」プリンタ設定でのページ印刷の場合は、e2StudioツールのログコンソールにPostScript命令情報が表示されます。


(HIDクラス)Sample: USB_HID_Mouse

操作手順:プログラム起動してUSBポートをパソコンに接続します。PC側の設定パネル又はデバイスマネジャウインドウからUSBマウスデバイスとして認識されていることを確認します。デモサンプルプログラムでは500ミリ秒インターバールでマウスポインターを左右移動します。


(CDCクラス)Sample: USB_CDC_Echo

操作手順:プログラム起動してUSBポートをパソコンに接続します。PC側の設定パネルからUSBデバイスがCOMポートとして認識されていることを確認します。TeraTermなどCOMポートコンソールを開いて文字入力してECHOテストを確認します。

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: EK-RX671
Base: Renesas RI600V4 RTOS
------------------------------------------------
0:021 USBD_Start
0:689 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)

パソコン側:

CDC-Echo

(MSDクラス)Sample: USB_MSD_FS_Start / USB_CompositeDevice_CDC_MSD

操作手順:

  1. 「FS_ConfigMMC_CM_EK_RX671.c」ファイルをビルド対象に設定して、プログラムをビルドして実行します。
  2. J29 USBポートをパソコンに接続して、USBデバイスがパソコン側にUSBドライブ(ラベル:FWUPDATE)として認識されていることを確認します。
  3. USBドライブの「Readme.txt」ファイルをテキストエディタで開いて内容(デモ用文字列)を確認します。
  4. USBドライブのファイル操作(新規ファイル作成・読み書きアクセス)を確認します。
MSD

(VirtualMSDクラス)Sample: USB_VirtualMSD_Start / USB_VirtualMSD_CRC

操作手順:

  1. J29 USBポートをパソコンに接続して、プログラムを実行します。
  2. パソコン側に2つのUSB MSDドライブ(ラベル:VIRT0、VIRT1)がマウントされていることを確認します。
  3. Virtual Diskドライブの「Readme.txt」ファイル(Read-Only)をテキストエディタで開いて内容(デモ用文字列)を確認します。
Vistual MSD

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: EK-RX671
Base: Renesas RI600V4 RTOS
------------------------------------------------
0:021 USBD_Start
0:672 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)
0:790 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4096
0:800 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4608
0:810 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5120
0:821 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5632
0:831 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6144
0:888 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6656
0:898 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7168
0:909 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7680
0:919 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8192
0:930 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8704
0:940 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9216
0:950 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9728
0:961 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10240
1:008 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10752
1:018 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11264
1:029 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11776
1:039 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12288
1:114 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12800
1:124 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13312
1:134 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13824
1:145 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14336
1:219 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14848
1:229 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15360
1:240 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15872
1:250 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
1:323 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
1:333 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
1:343 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
1:354 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
1:443 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
1:453 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
1:464 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
1:475 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
1:548 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
1:558 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
1:569 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
1:579 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
1:654 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
1:664 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
1:674 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
1:709 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
1:758 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
1:768 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
1:779 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
1:789 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
1:799 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
1:887 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
1:897 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
1:995 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4096
2:006 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4608
2:017 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5120
2:027 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5632
2:037 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6144
2:112 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6656
2:122 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7168
2:133 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7680
2:143 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8192
2:216 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8704
2:226 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9216
2:237 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9728
2:247 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10240
2:321 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10752
2:332 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11264
2:342 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11776
2:353 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12288
2:443 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12800
2:453 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13312
2:464 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13824
2:474 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14336
2:548 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14848
2:559 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15360
2:569 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15872
2:580 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
2:653 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
2:663 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
2:673 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
2:684 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
2:757 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
2:767 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
2:777 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
2:788 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
2:798 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
2:886 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
2:897 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
2:907 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
2:917 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
2:933 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
2:943 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
2:958 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
2:968 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
2:989 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
3:000 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
3:010 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
3:020 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
3:094 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
3:105 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
3:115 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
3:125 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
3:199 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
3:210 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
3:220 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
3:230 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
3:304 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
3:315 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
3:326 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
3:336 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
3:423 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
3:434 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
3:444 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
3:454 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
3:465 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
3:538 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
3:553 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
3:563 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
3:573 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
3:642 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
3:653 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
3:663 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
3:674 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
3:747 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
3:758 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
3:768 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
3:778 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
3:866 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
3:876 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
3:887 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
3:897 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
3:931 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584

(MTPクラス)Sample: USB_MTP_Start

操作手順:

  1. 「FS_ConfigMMC_CM_EK_RX671.c」ファイルをビルド対象に設定して、プログラムをビルドして実行します。
  2. J29 USBポートをパソコンに接続して、USBデバイスがパソコン側にMTPボリュームとして認識されていることを確認します。
  3. USB MTPドライブの「Readme.txt」ファイル(Read-Only)をテキストエディタで開いて内容(デモ用文字列)を確認します。
MSD

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: EK-RX671
Base: Renesas RI600V4 RTOS
------------------------------------------------
Low-level format
1:484 USBD_Start
2:149 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)

(AUDIOクラス)Sample: USB_Audio_Speaker_Microphone

操作手順:

  1. J29 USBポートをパソコンに接続して、プログラムを実行します。
  2. J29 USBポートをパソコンに接続して、USBデバイスがパソコン側にAudio Headsetとして認識されていることを確認します。
  3. パソコンのサウンドマネジャを起動して、マイク(記録)デバイスにemUSBのAudio Controlを選択します。マイク(記録)デバイスを再生デバイスにループしますと、PCスピーカーに「It Simply Works」の音声が再生されます。
  4. 再生デバイスにemUSBのAudio Controlを選択してAudioプレィヤで音声を再生しますと、評価ボード側にWAV式の音声データファイルが作成されます。
Audio Class

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: EK-RX671
Base: Renesas RI600V4 RTOS
------------------------------------------------
0:759 USBD_Start
1:405 Renesas USB: 380 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)
1:418 Received event: 0xA2 (0 bytes).
1:424 USB_AUDIO_PLAYBACK_STOP
1:429 Received event: 0xA4 (0 bytes).
1:435 USB_AUDIO_RECORD_STOP
1:457 Received event: 0x81 (1 bytes).
1:463 Received event: 0x81 (2 bytes).
1:518 Received event: 0x82 (2 bytes).
1:524 Received event: 0x83 (2 bytes).
1:530 Received event: 0x84 (2 bytes).
1:536 Received event: 0x81 (1 bytes).
1:542 Received event: 0x81 (2 bytes).
1:548 Received event: 0x82 (2 bytes).
1:635 Received event: 0x83 (2 bytes).
1:641 Received event: 0x84 (2 bytes).
1:647 Received event: 0xA2 (0 bytes).
1:653 USB_AUDIO_PLAYBACK_STOP
1:658 Received event: 0xA4 (0 bytes).
1:664 USB_AUDIO_RECORD_STOP
1:815 Received event: 0x1 (2 bytes).
1:820 Received set volume (0xFEB6) request for Unit 6.
53:703 Received event: 0xA3 (0 bytes).
53:709 USB_AUDIO_RECORD_START
53:715 Received event: 0x1 (3 bytes).
95:907 Received event: 0xA4 (0 bytes).
95:913 USB_AUDIO_RECORD_STOP
108:861 Received event: 0xA1 (0 bytes).
108:868 USB_AUDIO_PLAYBACK_START
108:874 Received event: 0x1 (3 bytes).
108:880 Speaker sample frequency set to 48000 Hz, 16 bit.
108:925 Created new wave file (\audio0.wav) [Sample Frequency: 48000 Hz, Bit resolution: 16 bit].
109:119 Written 0x8000 bytes in 0 usec
109:298 Written 0x8000 bytes in 0 usec
109:471 Written 0x8000 bytes in 0 usec
109:646 Written 0x8000 bytes in 0 usec
109:822 Written 0x8000 bytes in 0 usec
109:998 Written 0x8000 bytes in 0 usec
110:004 Received event: 0xA2 (0 bytes).
110:010 USB_AUDIO_PLAYBACK_STOP
110:058 Received event: 0xA1 (0 bytes).
110:064 USB_AUDIO_PLAYBACK_START
110:070 Received event: 0x1 (3 bytes).
110:076 Speaker sample frequency set to 48000 Hz, 16 bit.
110:253 Written 0x8000 bytes in 0 usec
110:432 Written 0x8000 bytes in 0 usec
110:605 Written 0x8000 bytes in 0 usec
110:780 Written 0x8000 bytes in 0 usec
110:956 Written 0x8000 bytes in 0 usec
111:132 Written 0x8000 bytes in 0 usec
111:312 Written 0x8000 bytes in 0 usec
111:492 Written 0x8000 bytes in 0 usec
111:628 Received event: 0xA2 (0 bytes).
111:634 USB_AUDIO_PLAYBACK_STOP
112:738 Closed file \audio0.wav, 486188 bytes

前の章

セキュリティ機能の評価

次の章

USB-Hostインターフェース