目次

last update: 2024/09

embOS RTOS用BSPパッケージ
第5章: USB-Deviceインターフェース
評価ボード:AP-RX651-0A




テストサンプル

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

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

ビルド・動作確認方法

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

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

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

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

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

評価ボードの「JSW5」DIPスイッチを「FUNC」に設定でUSB機能をDEVICEモードに変更します。

JSW5 SWUSB機能
HOSTUSBホスト機能
FUNCUSBデバイス・ファンクション機能

テストレポート

(PRINTERクラス)Sample: USB_Printer

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

USBD Printer

(HIDクラス)Sample: USB_HID_Mouse

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


(HIDクラス)Sample: USB_HID_AudioControl

操作手順:プログラム起動してUSBポートをパソコンに接続します。デモサンプルプログラムでは1.5秒インターバールでパソコンの音声ボリューム設定を「ボリュームアップ → ボリュームダウン → MUTE」順で変更します。

USB Audio sample

(CDCクラス)Sample: USB_CDC_Echo

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

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: AP-RX651-0A (RX651 RXv2 @96MHz)
RTOS: SEGGER embOS
------------------------------------------------
0:002 USBD_Start
0:500 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)

パソコン側:

CDC-Echo

(MSDクラス)Sample: USB_CompositeDevice_CDC_MSD

操作手順:

  1. 「FS_ConfigMMC_RX_RX651.c」ファイルをビルド対象に設定して、プログラムをビルドして実行します。
  2. 「CN5」USB(micro-B)ポートをパソコンに接続して、USBデバイスがパソコン側にUSBドライブ(ラベル:FWUPDATE)+CDCポートとして認識されていることを確認します。
  3. TeraTermなどCOMポートコンソールを開いて文字入力してECHOテストを確認します。
  4. USBドライブのファイル操作(新規ファイル作成・読み書きアクセス)を確認します。
MSD+CDC

(VirtualMSDクラス)Sample: USB_VirtualMSD_Start / USB_VirtualMSD_CRC

操作手順:

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

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: AP-RX651-0A (RX651 RXv2 @96MHz)
RTOS: SEGGER embOS
------------------------------------------------
0:002 USBD_Start
4:798 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)
4:938 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4096
4:940 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4608
4:942 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5120
4:944 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5632
4:946 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6144
4:948 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6656
4:950 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7168
4:952 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7680
4:954 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8192
4:956 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8704
4:958 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9216
4:960 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9728
4:962 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10240
4:964 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10752
4:966 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11264
4:968 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11776
4:970 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12288
4:972 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12800
4:974 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13312
4:976 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13824
4:978 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14336
4:980 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14848
4:982 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15360
4:984 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15872
4:987 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
4:989 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
4:991 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
4:993 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
4:995 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
4:997 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
4:999 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:001 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
5:004 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
5:006 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
5:007 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
5:009 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
5:010 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
5:012 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
5:014 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:016 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
5:039 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
5:041 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
5:043 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
5:045 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
5:047 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
5:049 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
5:050 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:051 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
5:146 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4096
5:147 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4608
5:148 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5120
5:149 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5632
5:150 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6144
5:151 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6656
5:152 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7168
5:153 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7680
5:155 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8192
5:156 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8704
5:157 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9216
5:159 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9728
5:161 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10240
5:163 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10752
5:165 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11264
5:167 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11776
5:169 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12288
5:171 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12800
5:173 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13312
5:175 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13824
5:177 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14336
5:179 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14848
5:181 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15360
5:183 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15872
5:185 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
5:187 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
5:189 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
5:191 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
5:193 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
5:194 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
5:196 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:198 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
5:200 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
5:201 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
5:202 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
5:203 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
5:205 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
5:207 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
5:209 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:211 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
5:213 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
5:215 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
5:217 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
5:219 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
5:221 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
5:223 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
5:225 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:227 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
5:230 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
5:232 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
5:234 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
5:236 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
5:238 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
5:240 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
5:241 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:242 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
5:244 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
5:245 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
5:247 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
5:248 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
5:250 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
5:252 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
5:254 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:256 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
5:264 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
5:266 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
5:268 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
5:270 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
5:272 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
5:274 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
5:276 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:278 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
5:281 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
5:283 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
5:285 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
5:287 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
5:289 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
5:291 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
5:293 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
5:295 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584

(MTPクラス)Sample: USB_MTP_Start

操作手順:

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

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: AP-RX651-0A (RX651 RXv2 @96MHz)
RTOS: SEGGER embOS
------------------------------------------------
Low-level format
0:094 USBD_Start
0:619 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)

(AUDIOクラス)Sample: USB_Audio_Speaker_Microphone_SmallFootprint

操作手順:

  1. 「CN5」USB(micro-B)ポートをパソコンに接続して、プログラムを実行します。
  2. USBデバイスがパソコン側にAudio Headsetとして認識されていることを確認します。
  3. パソコンのサウンドマネジャを起動して、マイク(記録)デバイスにemUSBのAudio Controlを選択します。マイク(記録)デバイスを再生デバイスにループしますと、PCスピーカーにベルチャイムの音声が再生されます。
Audio Class

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: AP-RX651-0A (RX651 RXv2 @96MHz)
RTOS: SEGGER embOS
------------------------------------------------
0:101 USBD_Start
0:648 Renesas USB: 380 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)
1:652 Received 100 silent samples and 0 audible samples so far.
2:653 Received 200 silent samples and 0 audible samples so far.
3:654 Received 301 silent samples and 0 audible samples so far.
4:655 Received 401 silent samples and 0 audible samples so far.
5:656 Received 501 silent samples and 0 audible samples so far.
6:657 Received 601 silent samples and 0 audible samples so far.
7:658 Received 701 silent samples and 0 audible samples so far.
8:659 Received 801 silent samples and 0 audible samples so far.
9:660 Received 901 silent samples and 0 audible samples so far.
10:661 Received 1001 silent samples and 0 audible samples so far.
11:662 Received 1101 silent samples and 0 audible samples so far.
12:663 Received 1201 silent samples and 0 audible samples so far.
13:664 Received 1302 silent samples and 0 audible samples so far.
14:665 Received 1402 silent samples and 0 audible samples so far.
15:666 Received 1502 silent samples and 0 audible samples so far.
16:667 Received 1602 silent samples and 0 audible samples so far.
17:668 Received 1702 silent samples and 0 audible samples so far.
18:669 Received 1802 silent samples and 0 audible samples so far.
19:670 Received 1902 silent samples and 0 audible samples so far.
20:671 Received 2002 silent samples and 0 audible samples so far.
21:672 Received 2102 silent samples and 0 audible samples so far.
22:673 Received 2202 silent samples and 0 audible samples so far.
23:674 Received 2303 silent samples and 0 audible samples so far.
24:675 Received 2403 silent samples and 0 audible samples so far.
25:676 Received 2503 silent samples and 0 audible samples so far.
26:677 Received 2603 silent samples and 0 audible samples so far.
27:678 Received 2703 silent samples and 0 audible samples so far.
28:679 Received 2803 silent samples and 0 audible samples so far.
29:680 Received 2903 silent samples and 0 audible samples so far.
30:681 Received 3003 silent samples and 0 audible samples so far.
31:682 Received 3103 silent samples and 0 audible samples so far.
32:683 Received 3203 silent samples and 0 audible samples so far.
33:684 Received 3304 silent samples and 0 audible samples so far.
34:685 Received 3404 silent samples and 0 audible samples so far.
前の章

USB-Hostインターフェース

次の章

MODBUS通信(RS232経由)