目次
1.概要 ... 2
1.1 概要 ... 2
1.2 接続概要 ... 3
1.3 本サンプルプログラムについて ... 4
1.4 開発環境について ... 5
2.サンプルプログラムの構成 ... 6
2.1 フォルダ構成 ... 6
2.2 ファイルの構成 ... 7
3.動作説明 ... 9
3.1 サンプルプログラムの動作 ... 9
3.2 メモリマップ ... 10
3.3 フラッシュ書き込みツールの準備 ... 11
3.4 BT-RL-01 出荷時ファームウェアの準備 ... 11
3.5 BT-RL-01 出荷時ファームウェアの書き込み ... 11
3.6 サンプルプログラムのビルド/ダウンロード ... 12
3.7 AP-RX111-0A(BLE スレーブ)と AP-RX111-0A(BLE マスタ) ... 13
3.8 AP-RX111-0A(BLE スレーブ)と iOS デバイス(BLE マスタ) ... 16
4.開発環境使用時の各設定値 ... 21
BT-RL-01
1.概要
1.1 概要
BT-RL-01 は、ルネサスエレクトロニクス製、RL78/G1D モジュールを搭載した、 Bluetooth Low Energy(以下、BLE と表記)シングルモードに対応した CPU ボードです。 BT-RL-01 は、自身がホストマイコンとして動作する「エンベデッド構成」と、 別途外部のホスト CPU の制御によって動作する「モデム構成」の 2 種類の構成で使用することができます。 本アプリケーションノートでは、弊社の Web サイトにて公開している BT-RL-01 のサンプルプログラムのうち 「モデム構成 サンプルプログラム」について説明します。 BT-RL-01 の「エンベデッド構成 サンプルプログラム」につきましては、弊社 Web サイトで公開中の アプリケーションノート「AN1701 エンベデッド構成 サンプルプログラム解説」を参照してください。 本サンプルプログラムは、外部のホスト CPU として、「AP-RX111-0A」を使用します。 本サンプルプログラムは、AP-RX111-0A 用のもので、BT-RL-01 用のものではありません。 BT-RL-01 には、弊社より出荷する際にデフォルトで書き込まれているファームウェアを使用します。 なおこのファームウェアは、ルネサスエレクトロニクスのホームページより入手することが可能です。 入手については、「3.4 BT-RL-01 出荷時ファームウェアの準備」を参照してください。 サンプルプログラム 動作内容 AP-RX111-0A モデム構成 サンプルプログラム ・BLE スレーブ ・BLE マスタ ・シリアル通信 本サンプルプログラムは、ホスト PC のターミナルソフト上からの設定で BLE マスタ/スレーブ動作を切り替えることが 可能です。ただし、プログラム実行中に切り替えることはできません。
1.2 接続概要
本サンプルプログラムの接続概要図を以下に示します。 AP-RX111-0A と BT-RL-01 は直に(ケーブル等を使用せず)接続することができます。 AP-RX111-0A から、シリアル通信によりコマンドを送信することで、BT-RL-01 の BLE 機能を制御します。 サンプルプログラムは BLE マスタ/スレーブ動作が用意してあり(サンプルプログラム起動時に選択可能)、 お互いに通信を行うことができます。更に、サンプルプログラムの BLE スレーブ動作は、iOS デバイス(BLE マスタ)と通信を行うこともできます。 ※iOS デバイスの BLE マスタ動作には、Punch Through 社の「LightBlue」というアプリを使用します。 「LightBlue」は App Store にて無料で入手できます。
安定化電源など DC+3.3V 電源ハーネス PC-USB-04 ホスト PC 安定化電源など DC+3.3V 電源ハーネス AP-RX111-0A (BLE スレーブ)
Bluetooth Low Energy PC-USB-04 ホスト PC 安定化電源などDC+3.3V 電源ハーネス AP-RX111-0A (BLE マスタ) PC-USB-04 ホスト PC BT-RL-01 BT-RL-01
1.3 本サンプルプログラムについて
本サンプルプログラムは、ルネサスエレクトロニクス提供のミドルウェア及びドライバを AP-RX111-0A に 移植しています。各ミドルウェア及びドライバの詳細については、以下の資料を参照してください。 入手につきましては、同社ウェブサイトの下記のページに移動し、ドキュメントを選択して、ドキュメントタイプの アプリケーションノートにチェックを入れて、各ドキュメントを検索してください。 RX111 https://www.renesas.com/ja-jp/products/microcontrollers-microprocessors/rx/rx100/rx111.html ● BSP ・資料名RX ファミリ ボードサポートパッケージモジュール Firmware Integration Technology ● BYTEQ
・資料名
RX ファミリ バイト型キューバッファ(BYTEQ)モジュール Firmware Integration Technology ● CMT
・資料名
RX ファミリ CMT モジュール Firmware Integration Technology ● GPIO
・資料名
RX ファミリ GPIO モジュール Firmware Integration Technology ● MPC
・資料名
RX ファミリ MPC モジュール Firmware Integration Technology ● S12AD
・資料名
RX Family ADC Module Using Firmware Integration Technology ● SCI
・資料名
RX ファミリ SCI モジュール Firmware Integration Technology RL78/G1D
https://www.renesas.com/ja-jp/products/microcontrollers-microprocessors/rl78/rl78g1x/rl78g1d.html
● APP ・資料名
Bluetooth® Low Energy プロトコルスタック RX113 ホストサンプルアプリケーション ● VUART
本サンプルプログラムをビルド/ダウンロードする場合は、 「3.6 サンプルプログラムのビルド/ダウンロード」を参照してください。 なお、サンプルプログラムの動作を確認するために、 BT-RL-01 には、弊社より出荷する際にデフォルトで書き込まれているファームウェアを使用します。 もし BT-RL-01 のファームウェアを書き換えた場合は、 「3.5 BT-RL-01 出荷時ファームウェアの書き込み」を参照し、書き込みを行ってください。
1.4 開発環境について
本サンプルプログラムは、以下の開発環境にて作成したものです。 種類 ツール名 バージョン 備考 統合開発環境 CS+ for CC V3.01.00 ルネサスエレクトロニクス製 コンパイラ CC-RX V2.03.00 ルネサスエレクトロニクス製 デバッガ E1 エミュレータ ルネサスエレクトロニクス製2.サンプルプログラムの構成
2.1 フォルダ構成
本サンプルプログラムは下記のようなフォルダ構成になっています。 (サンプルプログラムの動作に関連の深いフォルダのみ記載しています) \ap_rx111_0a_mod_sample モデム構成 サンプルプログラムフォルダ \DefaultBuild \r_bsp FIT Module(BSP)格納フォルダ \r_byteq FIT Module(BYTEQ)格納フォルダ \r_cmt_rx FIT Module(CMT)格納フォルダ \r_config FIT Module(CONFIG)格納フォルダ \r_gpio_rx FIT Module(GPIO)格納フォルダ \r_mpc_rx FIT Module(MPC)格納フォルダ \r_s12ad_rx FIT Module(S12AD)格納フォルダ \r_sci_rx FIT Module(SCI)格納フォルダ \src\rBLE \src
\host rBLE_Host ファイル格納フォルダ \gap GAP API コードファイル格納フォルダ \gatt GATT API コードファイル格納フォルダ \sm SM API コードファイル格納フォルダ \vs VS API コードファイル格納フォルダ \include rBLE ヘッダファイル格納フォルダ \host rBLE_Host ヘッダファイル格納フォルダ \rscip RSCIP ファイル格納フォルダ \sample_app サンプルアプリケーション格納フォルダ \sample_profile サンプルプロファイル格納フォルダ \vuart 仮想 UART プロファイル \renesas \src \driver ドライバ格納フォルダ \serial シリアルドライバ格納フォルダ \tempsa 内蔵温度センサドライバ格納フォルダ \timer タイマドライバ格納フォルダ
2.2 ファイルの構成
本サンプルプログラムは以下のファイルで構成されています。 (サンプルプログラムの動作に関連の深いファイルのみ記載しています) <\ap_rx111_0a_mod_sample> ap_rx111_0a_mod_sample.mtpj ・・・ CS+ for CC プロジェクト <\ap_rx111_0a_mod_sample\src> rx111_host_sample_app.c ・・・ RX111 のメインループ <\ap_rx111_0a_mod_sample\src\rBLE\src\host> rble_host.c ・・・ rBLE_Host・コードファイルrble_if_api_cb.c ・・・ rBLE API コールバック・コードファイル <\ap_rx111_0a_mod_sample\src\rBLE\src\host\gap>
rble_api_gap.c ・・・ GAP API・コードファイル <\ap_rx111_0a_mod_sample\src\rBLE\src\host\gatt>
rble_api_gatt.c ・・・ GATT API・コードファイル <\ap_rx111_0a_mod_sample\src\rBLE\src\host\sm> rble_api_sm.c ・・・ SM API・コードファイル <\ap_rx111_0a_mod_sample\src\rBLE\src\host\vs> rble_api_vs.c ・・・ VS API・コードファイル <\ap_rx111_0a_mod_sample\src\rBLE\src\include> prf_sel.h ・・・ プロファイル選択・ヘッダファイル rble.h ・・・ rBLE マクロ定義・ヘッダファイル
rble_api.h ・・・ rBLE API・ヘッダファイル
rble_app.h ・・・ ホストアプリケーション・ヘッダファイル rble_trans.h ・・・ rBLE 通信・ヘッダファイル
<\ap_rx111_0a_mod_sample\src\rBLE\src\include\host>
<\ap_rx111_0a_mod_sample\src\rBLE\src\rscip> rscip.c ・・・ RSCIP・コードファイル rscip.h ・・・ RSCIP・ヘッダファイル rscip_cntl.c ・・・ RSCIP コントロール・コードファイル rscip_cntl.h ・・・ RSCIP コントロール・ヘッダファイル rscip_ext.h ・・・ RSCIP 外部コールバック・ヘッダファイル rscip_uart.c ・・・ RSCIP シリアル制御・コードファイル rscip_uart.h ・・・ RSCIP シリアル制御・ヘッダファイル <\ap_rx111_0a_mod_sample\src\rBLE\src\sample_app> app.c ・・・ ホストアプリケーション・コードファイル console.c ・・・ コンソールアプリケーション・コードファイル console.h ・・・ コンソールアプリケーション・ヘッダファイル <\ap_rx111_0a_mod_sample\src\rBLE\src\sample_profile> db_handle.h ・・・ データベースハンドル・ヘッダファイル <\ap_rx111_0a_mod_sample\src\rBLE\src\sample_profile\vuart> vuart.h ・・・ 仮想 UART プロファイル・ヘッダファイル vuartc.c ・・・ 仮想 UART クライアント・コードファイル vuartc.h ・・・ 仮想 UART クライアント・ヘッダファイル vuarts.c ・・・ 仮想 UART サーバ・コードファイル vuarts.h ・・・ 仮想 UART サーバ・ヘッダファイル <\ap_rx111_0a_mod_sample\src\renesas\src\driver\serial> uart.c ・・・ RSCIP 向けシリアルドライバ・コードファイル uart.h ・・・ RSCIP 向けシリアルドライバ・ヘッダファイル uart2.c ・・・ コンソールアプリケーション向けシリアルドライバ・コードファイル uart2.h ・・・ コンソールアプリケーション向けシリアルドライバ・ヘッダファイル <\ap_rx111_0a_mod_sample\src\renesas\src\driver\tempsa> tempsa.c ・・・ 内蔵温度センサドライバ・コードファイル tempsa.h ・・・ 内蔵温度センサドライバ・ヘッダファイル <\ap_rx111_0a_mod_sample\src\renesas\src\driver\timer> timer.c ・・・ タイマドライバ・コードファイル timer.h ・・・ タイマドライバ・ヘッダファイル
3.動作説明
3.1 サンプルプログラムの動作
本サンプルプログラムは下記の動作を行います。 ● BLE スレーブ動作 BLE マスタに対し、自身の存在を知らせます。(アドバタイズ) BLE マスタに対し、データを送信します。(Indication) ● BLE マスタ動作 BLE スレーブを検索します。(スキャン) BLE スレーブに対し、接続を行います。 BLE スレーブに対し、データを送信します。(Write) ● シリアル通信動作 サンプルプログラム起動時に、BLE マスタ/スレーブ動作の選択を行います。 BLE ソフトウェアのステータス表示や、通信データの表示を行います。3.2 メモリマップ
H’0000 0000 H’0000 3FFF RAM 16K バイト H’0000 0000 SU SI B_1 H’0000 4000 H’0007 FFFF 予約領域 R_1 B_2 H’0008 0000 H’000F FFFF 周辺 I/O レジスタ R_2 B R H’0010 0000 H’0010 1FFF 内蔵 ROM (E2 データフラッシュ) (8K バイト) 未使用 H’0010 2000 予約領域 H’007F BFFF H’007F C000 周辺 I/O レジスタ H’007F C4FF H’007F C500 H’007F FBFF 予約領域 H’007F FC00 H’007F FFFF H’0080 0000 H’FFFD FFFF 周辺 I/O レジスタ 予約領域 H’FFFE 0000 C_1 C_2 C C$* D* W* H’FFFE 0000 内蔵 ROM(プログラム ROM) 128K バイト L P* 未使用 H’FFFF FF80 FIXEDVECT3.3 フラッシュ書き込みツールの準備
BT-RL-01 にプログラムを書き込むためには、ルネサスエレクトロニクス提供のフラッシュ書き込みツールである Renesas Flash Programmer をご使用の PC にダウンロードし、インストールする必要があります。
以下の URL から、Renesas Flash Programmer を入手してください。 Renesas Flash Programmer
https://www.renesas.com/ja-jp/products/software-tools/tools/programmer/renesas-flash-programmer-programming-gui.html ※ダウンロードする際にはルネサスエレクトロニクスの My Renesas へのユーザ登録が必要となります。
3.4 BT-RL-01 出荷時ファームウェアの準備
BT-RL-01 の出荷時ファームウェアは、ルネサスエレクトロニクスのホームページより入手することが可能です。 以下の URL から、出荷時ファームウェアを入手してください。 RL78/G1D モジュール モジュール制御ソフトウェア https://www.renesas.com/ja-jp/software/D6000546.html ※ダウンロードする際にはルネサスエレクトロニクスの My Renesas へのユーザ登録が必要となります。3.5 BT-RL-01 出荷時ファームウェアの書き込み
サンプルプログラムの動作を確認するために、 BT-RL-01 には、弊社より出荷する際にデフォルトで書き込まれているファームウェアを使用します。 もし、BT-RL-01 のファームウェアを書き換えた場合は、 以下に示す手順を参考に、出荷時ファームウェアを書き戻してください。 ① 「3.4 BT-RL-01 出荷時ファームウェアの準備」を参照し、出荷時ファームウェアを入手してください。 ② 「3.3 フラッシュ書き込みツールの準備」を参照し、ご使用の PC に Renesas Flash Programmer をインストールしてください。
③ ご使用の PC と E1 エミュレータ、CPU ボードを接続します。
※E1 エミュレータと CPU ボードを直接接続することはできないため、弊社より販売している「JTAG-CNV-02」が 必要となります。
④ CPU ボードの JSW1 を E1 の方向に切り替えてください。 ⑤ サンプルプログラムフォルダの <\rfp_project\g1d.rpj>をダブルクリックし、プロジェクトを開きます。 ⑥ CPU ボードの電源を投入します。 ⑦ 参照ボタンを押し、出荷時ファームウェア「rBLE_Mdm_CCRL_module_fw_v101.hex」のパスを指定します。 スタートボタンを押し、書き込みを開始してください。
3.6 サンプルプログラムのビルド/ダウンロード
サンプルプログラムを CPU ボード上で実行するためには、ビルドしたサンプルプログラムの実行ファイルを CPU ボードに ダウンロードする必要があります。 サンプルプログラムのビルド方法および CPU ボードにサンプルプログラムをダウンロードする方法については、 アプリケーションノート「AN1526 RX 開発環境の使用方法(CS+、Renesas Flash Programmer)」にJSW1
3.7 AP-RX111-0A(BLE スレーブ)と AP-RX111-0A(BLE マスタ)
以下の手順に従い、動作を確認してください。① AP-RX111-0A の無線モジュールコネクタ(CN7)と BT-RL-01 のホストインタフェースコネクタ(CN3)を接続します。 ② AP-RX111-0A のシリアル通信コネクタ(CN5)とホスト PC の USB ポートを PC-USB-04 を介して接続します。 ③ ホスト PC 上でターミナルソフトを起動し、COM ポートの設定を行います。 その際、COM ポートは以下のように設定してください。 ボーレート 115200[bps] ビット長 8[bit] パリティ なし ストップビット 1[bit] フロー制御 なし
④ AP-RX111-0A に電源を投入し、サンプルプログラムを起動します。 BLE マスタ/スレーブを選択する旨の表示がでるので、「s」と入力して BLE スレーブを選択します。 (以下、この CPU ボードをスレーブと表記) 起動後、アドバタイズを行います。 ⑤ 同様の手順で、サンプルプログラムを BLE マスタ動作させてください。 (コンソールには「m」と入力してください) (以下、この CPU ボードをマスタと表記) 起動後、スキャンを行い、スレーブが見つかれば接続します。 BLEマスタ/スレーブ選択 アドバタイズ開始 スキャン完了 接続要求発行/接続完了 スキャン結果
⑥ 両者の接続が完了すると、仮想 UART プロファイルを有効にし、データの送受信が行われます。 まず、スレーブが 0xXXXXYYYY という形式で 4 バイトのデータを送信します。(Indication) XXXX は 0000 から始まり、インクリメントされます。 YYYY は RX111 内蔵の温度センサの A/D 変換値です。 データの送信周期は 1000[ms]です。 マスタ側のコンソールでは、スレーブから受信したデータを表示します。 ⑦ マスタはスレーブからデータを受信すると、 スレーブに対して 0xXXXX0000 という形式で 4 バイトのデータを送信します。(Write) XXXX は 0000 から始まり、インクリメントされます。 スレーブ側のコンソールでは、マスタから受信したデータを表示します。 仮想 UART クライアントの有効化 スレーブからのデータを表示 仮想 UART サーバの有効化
3.8 AP-RX111-0A(BLE スレーブ)と iOS デバイス(BLE マスタ)
iOS デバイスには「LightBlue」というアプリをインストールする必要があります。 App Store にて検索し、インストールを完了してください。 ※iOS デバイスについて、以下の環境で動作確認を行いました。 種類 名称 バージョン 備考 デバイス iPhone 6 Apple 社製 OS iOS 8.4.1 Apple 社製アプリ LightBlue 14:27:04.043 Punch Through 社製 以下の手順に従い、動作を確認してください。
① AP-RX111-0A の無線モジュールコネクタ(CN7)と BT-RL-01 のホストインタフェースコネクタ(CN3)を接続します。 ② AP-RX111-0A のシリアル通信コネクタ(CN5)とホスト PC の USB ポートを PC-USB-04 を介して接続します。 ③ ホスト PC 上でターミナルソフトを起動し、COM ポートの設定を行います。 その際、COM ポートは以下のように設定してください。 ボーレート 115200[bps] ビット長 8[bit] パリティ なし ストップビット 1[bit] フロー制御 なし
④ AP-RX111-0A に電源を投入し、サンプルプログラムを起動します。
BLE マスタ/スレーブを選択する旨の表示がでるので、「s」と入力して BLE スレーブを選択します。 (以下、この CPU ボードをスレーブと表記)
起動後、アドバタイズを行います。
⑤ iOS デバイスのアプリ「LightBlue」を起動します。(以下、この iOS デバイスをマスタと表記) ⑥ デバイスの検索結果から、「Renesas-BLE」と表示されたデバイスをタップして接続します。
BLEマスタ/スレーブ選択
⑦ UUID「0xD68C0002-A21B-11E5-8CB8-0002A5D5C51B」をタップし、 「Listen for Notification」をタップした後、左上の「<」をタップします。
⑧ スレーブからのデータの受信が開始されます。(Indication) データは 4 バイトで、0xXXXXYYYY という形式で送信されます。 XXXX は 0000 から始まり、インクリメントされます。
YYYY は RX111 内蔵の温度センサの A/D 変換値です。 データの送信周期は 1000[ms]です。
⑨ UUID「0xD68C0003-A21B-11E5-8CB8-0002A5D5C51B」をタップし、 「Write new value」をタップします。
入力フォームに「11223344」と入力し、「Done」をタップします。(Write) スレーブ側のコンソールにデータが表示されることを確認してください。 確認が済んだら、左上の「<」をタップします。
仮想 UART サーバの有効化 マスタからのデータを表示
⑩ UUID「0xD68C0002-A21B-11E5-8CB8-0002A5D5C51B」をタップし、 「Stop listening」をタップします。
データの受信が終了したら、左上の「<」をタップします。
4.開発環境使用時の各設定値
開発環境を使用する際の、AP-RX111-0A 固有の設定を以下に示します。 表内の「項目番号」はアプリケーションノート
「AN1526 RX 開発環境の使用方法(CS+、Renesas Flash Programmer)」内で示されている 項目番号を示していますので、対応したそれぞれの設定値を参照してください。 ビルド・動作確認方法 項目名 項目番号 設定値 出力フォルダ 2-2 \sample\ap_rx111_0a_mod_sample\DefaultBuild モトローラ ファイル名 2-3 \sample\ap_rx111_0a_mod_sample\DefaultBuild\ap_rx111_0a_mod_sample.mot アブソリュート ファイル名 2-4 \sample\ap_rx111_0a_mod_sample\DefaultBuild\ap_rx111_0a_mod_sample.abs マップファイル 2-5 \sample\ap_rx111_0a_mod_sample\DefaultBuild\ap_rx111_0a_mod_sample.map
H-L JSW1 PU - PD JSW3 H-L
SCI0
-
JSW2 H-L JSW1 PU - PD JSW3 H-L JSW2 H-L JSW1 PU - PD JSW3 H-L 1 2 3 4 O N SW2 SW2 : OFF-OFF-OFF-OFF SW3 : NORMAL シングルチップモード 1 2 3 4 O N SW2 SW2 : ON-OFF-OFF-OFF SW3 : NORMAL SCI ブートモード 1 2 3 4 O N SW2 SW2 : OFF-OFF-OFF-OFF SW3 : NORMAL シングルチップモードRenesas Flash Programmer を使用した Flash 書き込み方法
項目名 項目番号 設定値
ボード設定 (Flash 書き込み)
3-1 Fig 4-1 を参照
デバイス名 3-2 RX100(FINE) Generic BOOT Device Flash に書き込む ファイル 3-3 \sample\ap_rx111_0a_mod_sample\DefaultBuild\ap_rx111_0a_mod_sample.mot ボード設定(動作) 3-4 Fig 4-2 を参照 E1 エミュレータを使用したデバッグ方法 項目名 項目番号 設定値 ボード設定 4-1 Fig 4-3 を参照 FINE ボーレート 4-10 2000000(bps) EXTAL クロック 4-11 16(MHz) Fig 4-3 E1 エミュレータデバッグ時のボード設定 Fig 4-2 サンプルプログラム動作時のボード設定 Fig 4-1 Flash 書き込み時のボード設定 NOR MAL USB BOOT SW3 NOR
MAL USB BOOT SW3
NOR
MAL USB BOOT SW3
商標について
・RL78 および RL78/G1D は、ルネサスエレクトロニクス株式会社の登録商標、商標または商品名称です。 ・RX および RX111 は、ルネサスエレクトロニクス株式会社の登録商標、商標または商品名称です。 ・CS+は、ルネサスエレクトロニクス株式会社の登録商標、商標または商品名称です。
・Renesas Flash Programmer は、ルネサスエレクトロニクス株式会社の登録商標、商標または商品名称です。 ・LightBlue は、Punch Through 社の登録商標、商標または商品名称です。
・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
・その他の会社名、製品名は、各社の登録商標または商標です。