BT-RL-01 モデム構成サンプルプログラム解説 (AP-RX111-0A) 第 1 版 2017 年 1 月 30 日 目次 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 1
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 マスタ / スレーブ動作を切り替えることが 可能です ただし プログラム実行中に切り替えることはできません 2
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 にて無料で入手できます ホスト PC 安定化電源など DC+3.3V 安定化電源など DC+3.3V ホスト PC 電源ハーネス 電源ハーネス PC-USB-04 BT-RL-01 AP-RX111-0A (BLE スレーブ ) Bluetooth Low Energy BT-RL-01 AP-RX111-0A (BLE マスタ ) PC-USB-04 ホスト PC 安定化電源など DC+3.3V 電源ハーネス PC-USB-04 BT-RL-01 AP-RX111-0A (BLE スレーブ ) ios デバイス (BLE マスタ ) Bluetooth Low Energy 3
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 Bluetooth low energy プロトコルスタック BLE 仮想 UART アプリケーション 4
本サンプルプログラムをビルド / ダウンロードする場合は 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 エミュレータ ルネサスエレクトロニクス製 フラッシュ書き込みツール Renesas Flash Programmer V3.01 ルネサスエレクトロニクス製 5
2. サンプルプログラムの構成 2.1 フォルダ構成 本サンプルプログラムは下記のようなフォルダ構成になっています ( サンプルプログラムの動作に関連の深いフォルダのみ記載しています ) \ap_rx111_0a_mod_sample \DefaultBuild \r_bsp \r_byteq \r_cmt_rx \r_config \r_gpio_rx \r_mpc_rx \r_s12ad_rx \r_sci_rx \src \rble \src \host \gap \gatt \sm \vs \include \host \rscip \sample_app \sample_profile \vuart \renesas \src \driver \serial \tempsa \timer モデム構成サンプルプログラムフォルダ FIT Module(BSP) 格納フォルダ FIT Module(BYTEQ) 格納フォルダ FIT Module(CMT) 格納フォルダ FIT Module(CONFIG) 格納フォルダ FIT Module(GPIO) 格納フォルダ FIT Module(MPC) 格納フォルダ FIT Module(S12AD) 格納フォルダ FIT Module(SCI) 格納フォルダ rble_host ファイル格納フォルダ GAP API コードファイル格納フォルダ GATT API コードファイル格納フォルダ SM API コードファイル格納フォルダ VS API コードファイル格納フォルダ rble ヘッダファイル格納フォルダ rble_host ヘッダファイル格納フォルダ RSCIP ファイル格納フォルダサンプルアプリケーション格納フォルダサンプルプロファイル格納フォルダ仮想 UART プロファイルドライバ格納フォルダシリアルドライバ格納フォルダ内蔵温度センサドライバ格納フォルダタイマドライバ格納フォルダ 6
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> rble_host.h rble_host ヘッダファイル 7
<\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 タイマドライバ ヘッダファイル 8
3. 動作説明 3.1 サンプルプログラムの動作 本サンプルプログラムは下記の動作を行います BLE スレーブ動作 BLE マスタに対し 自身の存在を知らせます ( アドバタイズ ) BLE マスタに対し データを送信します (Indication) BLE マスタ動作 BLE スレーブを検索します ( スキャン ) BLE スレーブに対し 接続を行います BLE スレーブに対し データを送信します (Write) シリアル通信動作 サンプルプログラム起動時に BLE マスタ / スレーブ動作の選択を行います BLE ソフトウェアのステータス表示や 通信データの表示を行います 9
3.2 メモリマップ H 0000 0000 H 0000 3FFF H 0000 4000 H 0007 FFFF H 0008 0000 H 000F FFFF H 0010 0000 H 0010 1FFF H 0010 2000 H 007F BFFF H 007F C000 H 007F C4FF H 007F C500 H 007F FBFF H 007F FC00 H 007F FFFF H 0080 0000 RAM 16K バイト予約領域周辺 I/O レジスタ内蔵 ROM (E2 データフラッシュ ) (8K バイト ) 予約領域周辺 I/O レジスタ予約領域周辺 I/O レジスタ H 0000 0000 SU SI B_1 R_1 B_2 R_2 B R 未使用 予約領域 H FFFE 0000 C_1 C_2 C C$* D* H FFFD FFFF W* H FFFE 0000 L H FFFF FFFF 内蔵 ROM( プログラム ROM) 128K バイト H FFFF FF80 H FFFF FFFF P* 未使用 FIXEDVECT 10
3.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-programmerprogramming-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 のファームウェアを書き換えた場合は 以下に示す手順を参考に 出荷時ファームウェアを書き戻してください 1 2 3 3.4 BT-RL-01 出荷時ファームウェアの準備 を参照し 出荷時ファームウェアを入手してください 3.3 フラッシュ書き込みツールの準備 を参照し ご使用の PC に Renesas Flash Programmer をインストールしてください ご使用の PC と E1 エミュレータ CPU ボードを接続します E1 エミュレータと CPU ボードを直接接続することはできないため 弊社より販売している JTAG-CNV-02 が必要となります USB ケーブル JTAG ケーブルフレキケーブル E1 PC E1 JTAG-CNV-02 BT-RL-01 11
4 CPU ボードの JSW1 を E1 の方向に切り替えてください JSW1 E1 NOR 5 6 7 サンプルプログラムフォルダの <\rfp_project\g1d.rpj>をダブルクリックし プロジェクトを開きます CPU ボードの電源を投入します 参照ボタンを押し 出荷時ファームウェア rble_mdm_ccrl_module_fw_v101.hex のパスを指定します スタートボタンを押し 書き込みを開始してください 3.6 サンプルプログラムのビルド / ダウンロード サンプルプログラムを CPU ボード上で実行するためには ビルドしたサンプルプログラムの実行ファイルを CPU ボードにダウンロードする必要があります サンプルプログラムのビルド方法および CPU ボードにサンプルプログラムをダウンロードする方法については アプリケーションノート AN1526 RX 開発環境の使用方法 (CS+ Renesas Flash Programmer) に詳細な手順が記されていますので 参照してください 12
3.7 AP-RX111-0A(BLE スレーブ ) と AP-RX111-0A(BLE マスタ ) 以下の手順に従い 動作を確認してください 1 2 3 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] なし 13
4 AP-RX111-0A に電源を投入し サンプルプログラムを起動します BLE マスタ / スレーブを選択する旨の表示がでるので s と入力して BLE スレーブを選択します ( 以下 この CPU ボードをスレーブと表記 ) 起動後 アドバタイズを行います BLE マスタ / スレーブ選択 アドバタイズ開始 5 同様の手順で サンプルプログラムを BLE マスタ動作させてください ( コンソールには m と入力してください) ( 以下 この CPU ボードをマスタと表記 ) 起動後 スキャンを行い スレーブが見つかれば接続します スキャン結果 スキャン完了 接続要求発行 / 接続完了 14
6 両者の接続が完了すると 仮想 UART プロファイルを有効にし データの送受信が行われます まず スレーブが 0xXXXXYYYY という形式で 4 バイトのデータを送信します (Indication) XXXX は 0000 から始まり インクリメントされます YYYY は RX111 内蔵の温度センサの A/D 変換値です データの送信周期は 1000[ms] です マスタ側のコンソールでは スレーブから受信したデータを表示します 仮想 UART クライアントの有効化 スレーブからのデータを表示 7 マスタはスレーブからデータを受信すると スレーブに対して 0xXXXX0000 という形式で 4 バイトのデータを送信します (Write) XXXX は 0000 から始まり インクリメントされます スレーブ側のコンソールでは マスタから受信したデータを表示します 仮想 UART サーバの有効化 マスタからのデータを表示 15
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 社製 以下の手順に従い 動作を確認してください 1 2 3 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] なし 16
4 AP-RX111-0A に電源を投入し サンプルプログラムを起動します BLE マスタ / スレーブを選択する旨の表示がでるので s と入力して BLE スレーブを選択します ( 以下 この CPU ボードをスレーブと表記 ) 起動後 アドバタイズを行います BLE マスタ / スレーブ選択 アドバタイズ開始 5 ios デバイスのアプリ LightBlue を起動します ( 以下 この ios デバイスをマスタと表記 ) 6 デバイスの検索結果から Renesas-BLE と表示されたデバイスをタップして接続します 17
7 UUID 0xD68C0002-A21B-11E5-8CB8-0002A5D5C51B をタップし Listen for Notification をタップした後 左上の < をタップします 8 スレーブからのデータの受信が開始されます (Indication) データは 4 バイトで 0xXXXXYYYY という形式で送信されます XXXX は 0000 から始まり インクリメントされます YYYY は RX111 内蔵の温度センサの A/D 変換値です データの送信周期は 1000[ms] です 18
9 UUID 0xD68C0003-A21B-11E5-8CB8-0002A5D5C51B をタップし Write new value をタップします 入力フォームに 11223344 と入力し Done をタップします (Write) スレーブ側のコンソールにデータが表示されることを確認してください 確認が済んだら 左上の < をタップします 仮想 UART サーバの有効化 マスタからのデータを表示 19
10 UUID 0xD68C0002-A21B-11E5-8CB8-0002A5D5C51B をタップし Stop listening をタップします データの受信が終了したら 左上の < をタップします 11 左上の <Back をタップし 接続を切ります 20
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 21
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 を参照 1 2 3 4 PU - PD O N SW2 NOR MAL USB BOOT JSW3 SW3 SCI0 - SW2 : ON-OFF-OFF-OFF SW3 : NORMAL SCI ブートモード JSW1 H-L Fig 4-1 Flash 書き込み時のボード設定 H-L PU - PD 1 2 3 4 O N SW2 JSW2 NOR MAL USB BOOT JSW3 SW3 SW2 : OFF-OFF-OFF-OFF SW3 : NORMAL シングルチップモード JSW1 H-L Fig 4-2 サンプルプログラム動作時のボード設定 H-L E1 エミュレータを使用したデバッグ方法 項目名 項目番号 設定値 ボード設定 4-1 Fig 4-3 を参照 FINE ボーレート 4-10 2000000(bps) EXTAL クロック 4-11 16(MHz) PU - PD 1 2 3 4 O N SW2 JSW2 NOR MAL USB JSW3 BOOT SW3 SW2 : OFF-OFF-OFF-OFF SW3 : NORMAL シングルチップモード JSW1 H-L H-L Fig 4-3 E1 エミュレータデバッグ時のボード設定 22
ご注意 本文書の著作権は株式会社アルファプロジェクトが保有します 本文書の内容を無断で転載することは一切禁止します 本文書に記載されているサンプルプログラムの著作権は株式会社アルファプロジェクトが保有します 本サンプルプログラムで使用されているミドルウェア及びドライバの著作権はルネサスエレクトロニクス株式会社が保有します 本文書に記載されている内容およびサンプルプログラムについての技術サポートは一切受け付けておりません 本文書の内容およびサンプルプログラムに基づき アプリケーションを運用した結果 万一損害が発生しても 弊社では一切責任を負いませんのでご了承下さい 本文書の内容については 万全を期して作成いたしましたが 万一ご不審な点 誤りなどお気付きの点がありましたら弊社までご連絡下さい 本文書の内容は 将来予告なしに変更されることがあります 商標について 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 その他の会社名 製品名は 各社の登録商標または商標です 株式会社アルファプロジェクト 431-3114 静岡県浜松市東区積志町 834 http://www.apnet.co.jp E-MAIL : query@apnet.co.jp 23