AN1524 USBサンプルプログラム解説

アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
AP-RX64M-0A (RX64M CPU BOARD)
USB サンプルプログラム解説
第1版 2015年03月06日
1.概要
1.1 概要
本アプリケーションノートでは、弊社の Web サイトにて公開している AP-RX64M-0A のサンプルプログラムのうち
「\Sample\ap_rx64m_0a_usb_sample_cs」以下にある「USB サンプルプログラム」について説明します。
AP-RX64M-0A の「Ether サンプルプログラム」につきましては、弊社 Web サイトで公開中のアプリケーションノート「AN1525
AN1525 Ether
サンプルプログラム解説」を参照してください。
サンプルプログラム解説
サンプルプログラム
動作内容
AP-RX64M-0A USB サンプルプログラム
・USB ホスト ファイル書き込み
・USB ファンクション 仮想シリアル通信
・シリアル通信
・タイマ割り込み
・CAN 通信
1.2 接続概要
「サンプルプログラム」の動作を確認する上で必要な CPU ボードとホスト PC 間の接続例を以下に示します。
詳細な接続に関しては後述の「3.動作内容」を参照してください。
安定化電源など
DC+5V
電源ハーネス
(付属)
USB メモリ
USB ケーブル
APAP-RX64M
RX64M64M-0A
ホスト PC
PC-RS-04
シリアルクロスケーブル
CAN デバイス
PC-CAN-02
1
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
1.3 本サンプルプログラムについて
本サンプルプログラムは、ルネサスエレクトロニクス株式会社提供のミドルウェア及びドライバを AP-RX64M-0A に
移植しています。
各ミドルウェア及びドライバの詳細については、以下の資料を参照してください。
入手につきましては、ルネサス社ウェブサイトの下記のページにて、各検索キーを入力し、検索を行ってください。
なお、検索にて、資料が見つからない場合、検索キーの末尾 4 桁(バージョン番号)を削除していただき、再度、検索を行っ
てください。
ルネサス エレクトロニクス社 RX64M アプリケーションノート-サンプルコード
http://japan.renesas.com/products/mpumcu/rx/rx600/rx64m/app_notes.jsp
● BSP
・資料名
RX Family Board Support Package Module Using Firmware Integration Technology
検索キー:R01AN1685EU0250
● USB(ホスト(HMSC)/ファンクション(PCDC))
・資料名
Renesas USB MCU USB Basic Host and Peripheral Driver Firmware Integration Technology
検索キー:R01AN2025JJ0110
USB Host Mass Storage Class Driver(HMSC) Using Firmware Integration Technology Modules
検索キー:R01AN2237JJ0110
USB Peripheral Communications Devices Class Driver (PCDC) Using Firmware Integration Technology Modules
検索キー:R01AN2238JJ0110
● FAT ファイルシステム
・資料名
RX ファミリ M3S-TFAT-Tiny メモリドライバインタフェースモジュール Firmware Integration Technology
検索キー:R20AN0335JJ0101
RX ファミリ オープンソース FAT ファイルシステム M3S-TFAT-Tiny モジュール Firmware Integration Technology
検索キー:R20AN0038JJ0301
● CMT
・資料名
RX Family CMT Module Using Firmware Integration Technology
検索キー:R01AN1856EU0240
● SCI
・資料名
RX Family RX64M SCI Multi-Mode Module Using Firmware Integration Technology
検索キー:R01AN2132EU0100
● BYTEQ
・資料名
RX Family BYTEQ Module Using Firmware Integration Technology
検索キー:R01AN1683EU0120
(※)資料をダウンロードする際にはルネサスエレクトロニクス株式会社の MYRENESAS への登録が必要となります。
2
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
2.サンプルプログラムの構成
2.1 フォルダ構成
サンプルプログラムは下記のようなフォルダ構成になっています。
\Sample
\ap_rx64m_0a_usb_sample_cs
\src
\r_bsp
\board
\rskrx64m
\mcu
\all
\rx64m
\ r_byteq
\src
\ r_cmt_rx
\src
\ r_sci_rx64m
\src
\ r_tfat_driver_rx
\src
\ r_tfat_rx
\lib
\ r_usb_basic
\src
\ r_usb_hmsc
\src
\ r_usb_pcdc
\src
\ app
\ r_config
\DefaultBuild
\COM_Class
\Data
\ap_rx64m_0a_ether_sample_cs
AP-RX64M-0A サンプルプログラムフォルダ
USB サンプルプログラムフォルダ
ソースフォルダ
BSP フォルダ
ボードフォルダ
RSKRX64M 用フォルダ
MCU フォルダ
MCU 共通フォルダ
RX64M フォルダ
BYTEQ モジュールフォルダ
BYTEQ モジュールソースフォルダ
CMT モジュールフォルダ
CMT モジュールソースフォルダ
SCI モジュールフォルダ
SCI モジュールソースフォルダ
M3S-TFAT-Tiny メモリドライバインタフェースモジュールフォルダ
M3S-TFAT-Tiny メモリドライバインタフェースモジュールソースフォルダ
M3S-TFAT-Tiny FAT ファイルシステムモジュールフォルダ
M3S-TFAT-Tiny FAT ファイルシステムモジュールライブラリフォルダ
USB 基本ファームウェアフォルダ
USB 基本ファームウェアソースフォルダ
USB ホスト マスストレージクラスドライバフォルダ
USB ホスト マスストレージクラスドライバソースフォルダ
USB ファンクション 仮想シリアルドライバフォルダ
USB ファンクション 仮想シリアルドライバソースフォルダ
USB アプリケーションフォルダ
各モジュールの設定ファイルフォルダ
ワークフォルダ
USB COM クラス
dpinst 用ファイルフォルダ
Ether サンプルプログラムフォルダ
(※ Ether サンプルプログラムに関してはアプリケーションノート
「AN1525
サンプルプログラム解説」を参照してください)
AN1525 Ether サンプルプログラム解説
3
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
2.2 ファイルの構成
本サンプルプログラムは以下のファイルで構成されています。
本章では、サンプルプログラムの作成にあたって追加したファイルについてのみ記述し、ミドルウェア・ドライバ等の
既存のファイルに関しては説明を省略してあります。
<\Sample\ap_rx64m_0a_usb_sample_cs\>
ap_rx64m_0a_usb_sample_cs.mtpj
・・・
CubeSuite+用プロジェクトファイル
AP_RX64M_0A.c
・・・
メイン処理
can.c
・・・
CAN 処理
sci.c
・・・
シリアル通信処理
can.h
・・・
CAN 処理ヘッダファイル
common.h
・・・
共通ヘッダファイル
sci.h
・・・
シリアル通信処理ヘッダファイル
vect.h
・・・
割り込みベクタテーブルヘッダファイル
<\Sample\ap_rx64m_0a_usb_sample_cs\src>
<\Sample\ap_rx64m_0a_usb_sample_cs\src\app>
r_usb_apl.c
・・・
USB Host/Peripheral ドライバの初期化、実行処理
r_usb_hmsc_apl_mult.c
・・・
USB Host MSC ドライバ、実行処理
r_usb_hmsc_defep_mult.c
・・・
USB Host MSC ドライバで使用するパイプ定義
r_usb_pcdc_apl.c
・・・
USB Peripheral CDC Class ドライバ実行処理
r_usb_pcdc_descriptor.c
・・・
USB Peripheral CDC Class で使用するディスクリプタの定義
r_usb_pcdc_echo_apl.c
・・・
USB Peripheral エコーバック処理
<\Sample\ap_rx64m_0a_usb_sample_cs\src\app\inc>
r_usb_apl.h
・・・
USB Host/Peripheral ドライバ初期化、実行処理ヘッダファ
イル
r_usb_hmsc_apl_mult.h
・・・
USB Host MSC ドライバ、実行処理ヘッダファイル
r_usb_pcdc_apl.h
・・・
USB Peripheral エコーバック処理ヘッダファイル
4
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
3.動作説明
3.1 サンプルプログラムの動作
本サンプルプログラムは下記の動作を行ないます。
● USB ホスト
USB ホストに USB メモリを接続すると、USB メモリにテキストファイルを書き込みます。
※ USB ホスト動作については後述の「3.4 USB ホスト動作」を参照してください。
● USB ファンクション
USB ファンクションを PC に接続すると、仮想 COM ポートとしてホスト PC の OS に認識され
USB シリアルポートとして動作しエコーバックを行います。
※ USB ファンクション動作については後述の「3.5 USB ファンクション動作」を参照してください。
● シリアル通信
SCI6 でエコーバックを行ないます。(送受信割り込み使用)
SCI6 から受信をした値を、そのまま SCI6 へ送信します。
シリアルの設定は、38400bps、ビット長 8、パリティなし、ストップビット 1、フロー制御なしです。
動作確認は、ホスト PC 上のターミナルソフト(ハイパーターミナル等)を使用して下さい。
● タイマ割り込み
LD2(緑の LED)を 1000msec 間隔で点滅させます。(CMT 割り込み使用)
また、CN1 の出力端子から方形波を出力します。
周期とピン番号は Table 「3.1-1 サンプルプログラム周期・ピン番号表」を参照してください。
● CAN 通信
CAN でエコーバックを行います。以下の設定で、受信したデータをそのまま送信します。
CAN の設定は、送信 ID:B’10101010101、受信 ID:B’10101010100、スタンダードフォーマット、
データフレーム、データ長 1 バイト、
通信速度 500kbps(TSEG1 = 6(7Tq), TSEG2 = 3(4Tq), SJW = 0(1Tq), BRP = 9)です。
CN1 方形波出力端子一覧
コネクタ
CN1
ピン番号
ピン名
周期
備考
41
PC0
10msec
CMT 使用
42
PC1
10msec
CMT 使用
43
PC2
20msec
CMT 使用
44
PC3
20msec
CMT 使用
Table 3.13.1-1 サンプルプログラム周期・ピン番号表
5
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
3.2 メモリマップ
H’0000 0000
H’0000 0000
H’0000 1000
内蔵 RAM
512K バイト
H’0007 FFFF
H’0008 0000
予約
周辺 I/O レジスタ
H’000F FFFF
H’0010 0000
H’0010 7FFF
H’007F DFFF
H’007F E000
H’007F FFFF
H’0080 0000
SI
内蔵 ROM 32K バイト
(データフラッシュ)
未使用
(未使用)
予約
H’007F 7FFF
H’007F 8FFF
H’007F 9000
R
SU
H’0010 8000
H’007F 8000
ワークエリア
B_1
R_1
B_2
R_2
B
FCU RAM 領域
予約
周辺 I/O レジスタ
予約
H’00FF 7FFF
H’0080 0000
ECC-RAM 領域
H’00DF FFFF
H’00E0 0000
H’00FF FFFF
H’0800 0000
H’09FF FFFF
H’0A00 0000
外部アドレス空間
(CS 空間)
H’0800 0000
SDRAM
16MByte
(未使用)
SDRAM
空間
イメージ
H’0FFF FFFF
H’1000 0000
予約
H’FEFF DFFF
H’FEFF E000
H’FEFF FFFF
H’FFC0 0000
内蔵 ROM
(FCU ファーム)
H’FF00 0000
予約
H’FF7F 7FFF
H’FF7F 8000
H’FF7F FFFF
H’FF80 0000
H’FFBF FFFF
H’FFC0 0000
C_1
C_2
C
C$DSEC
C$BSEC
C$VECT
D_1
内蔵 ROM
(ユーザブート)
D_2
予約
内蔵 ROM
(プログラム ROM)
2M バイト
H’FFFF FF80
H’FFFF FFFC
H’FFFF FFFF
D
P
W_1
W_2
W
L
(未使用)
EXCEPTVECT
RESETVECT
Fig 3.2-1 ネットワーク通信 + USB ホストサンプルプログラムメモリマップ
6
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
3.3 サンプルプログラムのダウンロード
サンプルプログラムを CPU ボード上で実行するためには、ビルドしたサンプルプログラムの実行ファイルを CPU ボードに
ダウンロードする必要があります。
サンプルプログラムのビルド方法および CPU ボードにサンプルプログラムをダウンロードする方法については、
アプリケーションノート「AN
AN1526
AN1526 RX 開発環境の使用方法(
開発環境の使用方法(CubeSuite+、
CubeSuite+、Renesas Flash Programmer)
Programmer)」に詳細な手順が記さ
れていますので、
参照してください。
3.4 USB ホスト動作
本サンプルプログラムはルネサスエレクトロニクス株式会社提供の FAT ファイルシステムドライバを移植しており、
FAT12、FAT16、FAT32 にそれぞれ対応しています。
USB ホストサンプルでは FAT ファイルシステムを利用して、USB メモリにテキストファイルの書き込みを行います。
USB ホストサンプルを動作させる際には以下の手順に従い、USB デバイス接続時の動作を確認してください。
① CPU ボードに電源を投入し、サンプルプログラムを起動します。
② CPU ボードの USB ホストポート(CN7B)に USB メモリを挿入します。
③ USB メモリを挿入すると、USB メモリにテキストファイルが書き込まれます。
④ PC に USB メモリを挿入し、USB メモリのルートディレクトリに「HMSCDEMO.TXT」という名前のテキストファイルが作成
されていることを確認してください。
⑤ 「hmscdemo.txt」を開き、「a」が 512 バイト書き込まれていることを確認してください。
⑥ 以上で USB デバイス接続時の動作確認は終了です。
3.5 USB ファンクション動作
以下の手順に従い、USB 仮想シリアルの動作を確認してください。
USB ファンクションの動作確認は、あらかじめ USB 仮想シリアルドライバを PC にインストールしておく必要があります。
USB 仮想シリアルドライバのインストール方法につきましては、「AN178 USB 仮想シリアルドライバ インストールガイド」を
参照してください。
① USB ケーブルを使い CPU ボードの USB ファンクションポート(CN6)とホスト PC の USB ポートを接続します。
② CPU ボードに電源を投入し、サンプルプログラムを動作させます。
③ ホスト PC 上でターミナルソフト(ハイパーターミナルなど)を起動し、COM ポートの設定を行います。
その際使用する COM ポートは、「AN178 USB 仮想シリアルドライバ インストールガイド」内で確認した仮想 COM ポートを
選択してください。
COM ポートを以下の設定に変更します。
ボーレート
38400bps
ビット長
8bit
パリティ
なし
ストップビット
1bit
フロー制御
なし
④ ターミナルソフトを接続しますと下記のメッセージが、CPU ボードから定期的に送信されます。
PCDC. Virtual serial COM port. Type characters into terminal.
The target will receive the characters over USB CDC, then copy them to a USB transmit buffer to be echoed back over USB.
7
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
⑤ PC 側から何か送信しますと、
「Echo mode.」と表示され、その後、④のメッセージは、送信されなくなります。
⑥ ターミナルソフトを用いて CPU ボードと通信を行い、エコーバック動作を確認してください。
⑦ 以上で USB 仮想シリアルの動作確認は終了です。
8
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
4.開発環境使用時の各設定値
開発環境を使用する際の、AP-RX64M-0A 固有の設定を以下に示します。
表内の「項目番号」はアプリケーションノート「AN1513
AN1513 RX 開発環境の使用方法
開発環境の使用方法(
使用方法(CubeSuite+)
CubeSuite+)」内で示されている
項目番号を示していますので、対応したそれぞれの設定値を参照してください。
ビルド・動作確認方法
項目名
項目番号
設定値
出力フォルダ
2-2
\Sample\ap_rx64m_0a_usb_sample_cs\DefaultBuild
モトローラファイル名
2-3
\Sample\ap_rx64m_0a_usb_sample_cs\DefaultBuild\ap_rx64m_0a_usb_sample_cs.mot
アブソリュートファイル名
2-4
\Sample\ap_rx64m_0a_usb_sample_cs\DefaultBuild\ap_rx64m_0a_usb_sample_cs.abs
マップファイル
2-5
\Sample\ap_rx64m_0a_usb_sample_cs\DefaultBuild\ap_rx64m_0a_usb_sample_cs.map
Renesas Flash Programmer を使用した Flash 書き込み方法
項目番号
設定値
ボード設定(Flash 書き込み)
3-1
Fig 4-1 を参照
デバイス名
3-2
RX Generic BOOT Device
Flash に書き込むファイル
3-3
\Sample\ap_rx64m_0a_usb_sample_cs\DefaultBuild\ap_rx64m_0a_usb_sample_cs.mot
ボード設定(動作)
3-4
Fig 4-2 を参照
JSW1
H-L
USB
JSW5
JSW3
H-L
L-H
MD
JSW3
SCI SEL
JSW2
EMLE
PU - PD
PU
PU-PD
PC7
JSW1
SCI6 - SCI1
SW2
項目名
SCI0 - SCI1
H-L
FUNC - HOST
JSW1
JSW2
JSW3
SW2
USB
PD
L
L
SCI1
不問
H-L
H-L
Fig 4-2 サンプルプログラム動作時のボード設定
9
USB
JSW5
JSW3
H-L
EMLE
MD
L-H
JSW1
JSW3
SCI6 - SCI1
SW2
JSW2
JSW2
PU - PD
PU
PU-PD
PC7
JSW1
SCI SEL
Fig 4-1 Flash 書き込み時のボード設定
FUNC - HOST
JSW1
JSW2
JSW3
SW2
USB
PD
H
L
SCI6
FUNC
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
設定値
ボード設定
4-1
Fig 4-3 を参照
JTAG クロック
4-10
3.094(MHz)
EXTAL クロック
4-11
24(MHz)
JSW1
JSW3
H-L
JSW3
H-L
MD
L-H
JSW2
JSW2
EMLE
PU - PD
PU
PU-PD
PC7
JSW1
H-L
Fig 4-3 E1 エミュレータデバッグ時のボード設定
10
USB
JSW5
項目番号
SCI SEL
項目名
SCI6 - SCI1
SW2
E1 エミュレータを使用したデバッグ方法
FUNC - HOST
JSW1
JSW2
JSW3
SW2
USB
PU
H
H
SCI6
FUNC
アプリケーションノート
ALPHA PROJECT Co.,LTD.
AN1524
ご注意
・本文書の著作権は株式会社アルファプロジェクトが保有します。
・本文書の内容を無断で転載することは一切禁止します。
・本文書に記載されているサンプルプログラムの著作権は株式会社アルファプロジェクトが保有します。
・本サンプルプログラムで使用されているミドルウェア及びドライバの著作権はルネサスエレクトロニクス株式会社が保有します。
・本文書に記載されている内容およびサンプルプログラムについての技術サポートは一切受け付けておりません。
・本文書の内容およびサンプルプログラムに基づき、アプリケーションを運用した結果、万一損害が発生しても、弊社では一切責任を負
いませんのでご了承下さい。
・本文書の内容については、万全を期して作成いたしましたが、万一ご不審な点、誤りなどお気付きの点がありましたら弊社までご連絡
下さい。
・本文書の内容は、将来予告なしに変更されることがあります。
商標について
・RX は、ルネサスエレクトロニクス株式会社の登録商標、商標または商品名称です。
・CubeSuite+はルネサスエレクトロニクス株式会社の登録商標、商標または商品名称です。
・Peripheral Driver Generator はルネサスエレクトロニクス株式会社の登録商標、商標または商品名称です。
・Windows®の正式名称は Microsoft®Windows®Operating System です。
Microsoft、Windows、Windows NT は、米国 Microsoft Corporation.の米国およびその他の国における商標または登録商標です。
Windows®8、Windows®7、Windows®Vista、Windows®XP は、米国 Microsoft Corporation.の商品名称です。
本文書では下記のように省略して記載している場合がございます。ご了承ください。
Windows®8 は Windows 8 もしくは Win8
Windows®7 は Windows 7 もしくは Win7
Windows®Vista は Windows Vista もしくは WinVista
Windows®XP は Windows XP もしくは WinXP
・その他の会社名、製品名は、各社の登録商標または商標です。
ALPHA PROJECT Co.,LTD.
株式会社アルファプロジェクト
〒431-3114
静岡県浜松市東区積志町 834
http://www.apnet.co.jp
E-MAIL : [email protected]
11