目次

last update: 2025/03

embOS RTOS + 各種ミドルウェアサンプル
第7章: USB-Deviceインターフェース
評価ボード:AP-RX72N-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_RX72N.c  ...... USB-Deviceドライバ設定ファイル

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

ハードウエア設定

「AP-RX72N-0A」評価ボードはUSB HOSTコネクタ(CN6)及びUSBファンクションコネクタ(CN5)は実装されていますが、HOSTとデバイスファンクション機能は同時に使用できません。

ビルド・動作確認方法

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

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

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

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


テストレポート

(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-RX72N-0A (RX72N RXv3 @240MHz)
RTOS: SEGGER embOS
------------------------------------------------
0:002 USBD_Start
0:534 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_RX72N.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(USB_VirtualMSD_Start):

SEGGER Software Evaluation Sample
Eval Board: AP-RX72N-0A (RX72N RXv3 @240MHz)
RTOS: SEGGER embOS
------------------------------------------------
0:002 USBD_Start
0:525 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)
0:685 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4096
0:687 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4608
0:689 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5120
0:691 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5632
0:693 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6144
0:695 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6656
0:697 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7168
0:699 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7680
0:701 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8192
0:702 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8704
0:704 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9216
0:706 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9728
0:708 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10240
0:710 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10752
0:712 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11264
0:713 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11776
0:715 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12288
0:717 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12800
0:719 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13312
0:721 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13824
0:723 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14336
0:725 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14848
0:727 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15360
0:729 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15872
0:731 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
0:733 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
0:735 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
0:737 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
0:739 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
0:741 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
0:743 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
0:744 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
0:747 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
0:749 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
0:750 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
0:752 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
0:754 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
0:756 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
0:757 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
0:759 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
0:775 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
0:777 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
0:779 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
0:781 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
0:783 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
0:785 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
0:787 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
0:789 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
0:879 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4096
0:881 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4608
0:883 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5120
0:885 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5632
0:887 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6144
0:889 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6656
0:891 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7168
0:893 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7680
0:894 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8192
0:896 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8704
0:898 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9216
0:899 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9728
0:901 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10240
0:903 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10752
0:905 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11264
0:906 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11776
0:908 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12288
0:910 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12800
0:911 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13312
0:913 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13824
0:915 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14336
0:917 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14848
0:918 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15360
0:920 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15872
0:922 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
0:923 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
0:925 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
0:927 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
0:929 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
0:931 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
0:932 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
0:934 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
0:936 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
0:938 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
0:940 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
0:942 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
0:943 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
0:945 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
0:947 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
0:949 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
0:951 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
0:953 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
0:955 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
0:956 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
0:958 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
0:960 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
0:962 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
0:964 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
0:966 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
0:967 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
0:968 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
0:970 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
0:972 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
0:974 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
0:975 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
0:977 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
0:983 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
0:984 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
0:986 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
0:988 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
0:990 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
0:992 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
0:994 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
0:996 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
1:001 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
1:003 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
1:005 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
1:008 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
1:009 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
1:012 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
1:014 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
1:016 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
1:019 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
1:021 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
1:023 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
1:024 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
1:026 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
1:028 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
1:030 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
1:031 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584

(MTPクラス)Sample: USB_MTP_Start

操作手順:

  1. 「FS_ConfigMMC_RX_RX72N.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-RX72N-0A (RX72N RXv3 @240MHz)
RTOS: SEGGER embOS
------------------------------------------------
0:051 USBD_Start
0:595 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-RX72N-0A (RX72N RXv3 @240MHz)
RTOS: SEGGER embOS
------------------------------------------------
0:002 USBD_Start
0:525 Renesas USB: 380 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)
1:552 Received 99 silent samples and 0 audible samples so far.
2:553 Received 200 silent samples and 0 audible samples so far.
3:554 Received 300 silent samples and 0 audible samples so far.
4:555 Received 400 silent samples and 0 audible samples so far.
5:556 Received 500 silent samples and 0 audible samples so far.
6:557 Received 600 silent samples and 0 audible samples so far.
7:558 Received 700 silent samples and 0 audible samples so far.
8:559 Received 800 silent samples and 0 audible samples so far.
9:560 Received 900 silent samples and 0 audible samples so far.
10:561 Received 1000 silent samples and 0 audible samples so far.
11:562 Received 1100 silent samples and 0 audible samples so far.
12:563 Received 1201 silent samples and 0 audible samples so far.
13:564 Received 1301 silent samples and 0 audible samples so far.
前の章

USB-Hostインターフェース

次の章

MODBUS通信