目次

last update: 2025/01

OSレス環境用BSPパッケージ
第5章: USB-Deviceインターフェース
評価ボード:AP-RX65N-0A




テストサンプル

Demo Sample Application Folder:

Application
 └ _Exclude
     ├ USBD  .... USB Device各種クラス機能のデモサンプル
Sample説明
USB_BULK_PerformanceBULK(VENDOR)クラスを実装して通信速度を確認します
USB_CDC_EchoCDC-ACMクラスコンポーネントを実装して簡単なECHOサンプルを確認します
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)

関連設定ファイル:

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

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

ハードウエア設定

「AP-RX65N-0A」評価ボードはUSB HOSTコネクタ(CN10)及びUSBファンクションコネクタ(CN7)は実装されていますが、HOSTとデバイスファンクション機能は同時に使用できません。USBドライバプログラムから「PC1」I/Oポート設定でUSB機能をFunction モードに設定します。
ボード上のJP5、JSW5スイッチを出荷時設定の状態(JSW5:ON側、JP5:短絡)で使用します。

JSW5 SW「ON」側に設定(USB0ポート機能を PC1で設定する)
JP5短絡(USB機能 Host / Functionの切り替えを PC1で制御)
PC1 設定USB機能
0 (Low)Function・デバイスモードに設定(USBコネクタ:CN7 micro B)
1 (High)Hostモードに設定(USBコネクタ:CN10)

ビルド・動作確認方法

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

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

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

プロジェクトを再ビルドし、AP-RX65N-0A評価ボードに接続してデバッグセッションを開始します。
テストアプリケーションの要件に合わせて「CN7」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-RX65N-0A (RX65N RXv2 @120MHz)
Base: Baremetal (No RTOS)
------------------------------------------------
0:002 USBD_Start
19:947 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)

パソコン側:

CDC-Echo

(MSDクラス)Sample: USB_MSD_FS_Start

操作手順:

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

MSD

(VirtualMSDクラス)Sample: USB_VirtualMSD_Start / USB_VirtualMSD_CRC

操作手順:

  1. 「CN7」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-RX65N-0A (RX65N RXv2 @120MHz)
Base: Baremetal (No RTOS)
------------------------------------------------
0:002 USBD_Start
6:261 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)
6:804 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4096
6:806 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4608
6:808 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5120
6:810 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5632
6:812 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6144
6:814 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6656
6:816 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7168
6:818 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7680
6:820 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8192
6:914 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8704
6:916 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9216
6:918 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9728
6:920 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10240
6:922 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10752
6:924 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11264
6:926 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11776
6:928 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12288
7:023 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12800
7:025 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13312
7:027 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13824
7:029 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14336
7:031 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14848
7:033 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15360
7:035 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15872
7:095 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
7:133 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
7:135 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
7:137 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
7:139 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
7:141 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
7:143 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
7:145 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
7:152 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
7:154 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
7:242 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
7:244 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
7:246 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
7:248 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
7:250 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
7:252 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
7:268 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
7:270 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
7:351 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
7:353 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
7:355 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
7:357 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
7:359 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
7:361 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
7:375 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
7:377 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
7:459 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
7:461 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
7:463 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
7:465 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
7:467 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
7:469 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
7:510 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
7:512 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
7:514 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
7:570 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
7:572 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
7:574 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
7:576 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
7:578 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
7:636 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4096
7:638 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 4608
7:640 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5120
7:680 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 5632
7:682 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6144
7:684 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 6656
7:686 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7168
7:688 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 7680
7:690 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8192
7:692 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 8704
7:694 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9216
7:717 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 9728
7:719 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10240
7:721 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 10752
7:723 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11264
7:725 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 11776
7:727 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12288
7:729 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 12800
7:731 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13312
7:790 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 13824
7:792 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14336
7:794 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 14848
7:796 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15360
7:798 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 15872
7:804 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
7:806 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
7:808 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
7:810 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
7:899 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
7:901 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
7:903 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
7:905 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
7:912 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
7:914 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
7:916 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
7:918 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
8:008 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
8:010 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
8:012 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
8:014 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
8:037 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
8:039 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
8:041 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
8:043 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
8:118 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
8:120 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
8:122 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
8:124 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
8:148 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
8:150 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
8:152 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
8:154 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
8:156 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
8:227 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
8:229 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
8:231 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584
8:241 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 0
8:243 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 512
8:245 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1024
8:247 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 1536
8:249 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2048
8:335 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 2560
8:337 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3072
8:339 VMSD_APP: _cbOnWrite(): File 'SYSTEM~1   ', Offset 3584

(MTPクラス)Sample: USB_MTP_Start

操作手順:

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

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: AP-RX65N-0A (RX65N RXv2 @120MHz)
Base: Baremetal (No RTOS)
------------------------------------------------
Low-level format
0:096 USBD_Start
0:769 Renesas USB: 512 bytes unused EP buffer RAM (USB_ENDPOINT_BUFFER_POOL_SIZE)
前の章

HTTPクライアント、JSONパーサー

次の章

MODBUS通信