Bluetooth® 5認定SoCのRSL10を初めて評価してみた 全3回の記録 ~第2弾前編「RSL 10でセンシング ”エラーの原因と解決方法”」

はじめに

今回は、オンセミ社のRSL10でセンシングをおこないます。
ここでは初めてRSL10を開発する方、これから開発する方にRSL10でセンシングする方法を案内します。本記事は2部構成の後編です。

RSL10でセンシングの前編の記事については以下を参照ください。
Bluetooth®5認定SoCRSL10を初めて評価してみた全3回の記録"~第2弾前編RSL10でセンシングエラー発生

前編記事の要約と今回の後編記事の内容について

前回はサンプルコードをダウンロードし、ビルドしました。

ビルド後に作成されたnoa1305_example.elfファイルを用いてデバッグをおこないました。
ところが、エラーメッセージが出てしまいました。

今回の記事ではエラー原因の突き止めた流れについてと、実際にRSL10でのセンシングの実行方法について説明します。

エラー原因の突き止めた流れとセンシングの実行方法

1. まずハードウェア的に問題ないかを調べました。

センサー部分とRSL10-BDK-GEVK(接続図上ではRSL10 BDKと記載)とRSL10-SIP-001GEVB(接続図上ではRSL10 SIPと記載)の接続が問題ないかを確認しました。
接続図を下図1に示します。

ハードウェアの接続的に問題がないことが分かりました。

図1 接続図
図1 接続図

2. 続いてソフトウェア的に問題ないかを調べました。
デバッグ実行時に以下のエラーコードが出ることが分かります。図2に示します。

図2 デバッグ実行時のエラーコード
図2 デバッグ実行時のエラーコード

2よりmain.cファイルの29行目でエラーが起きて動作していないことが分かります。そこでデバッグ時に一行ずつ、実行することでエラー要因を突き止めることにしました。

以前では、デバッグをクリックした後に、ResumeF8)をクリックしていましたが、下図3の一番右のStep Overという箇所で、一行ずつプログラムを実行する事で突き止めていきます。
STEP Overについて説明します。

STEP Over:一時停止している次の行に進んで一時停止する。対象行でメソッドを呼び出している場合などは、それらの処理をおこなって次の行に進む。

図3 Step Over実行箇所について
図3 Step Over実行箇所について

今回は29行目でエラーが出ている為、24行目までStep Overで実行します。Step Overで実行したのちにStep Intoを実行します。
STEP Intoについて説明します。

Step Into:一時停止している次の行に進んで一時停止する。対象行でメソッドを呼び出す場合、呼び出し先のメソッドに入って先頭で一時停止する。

Step Intoで潜っていくと、以下をループすることが分かります。(図4参照)
よってDIOの接続に問題があると推定できます。

図4 ループする箇所


3. そこでRSL10-SIP-001GEVBとRSL10-BDK-GEVKのDIOの接続先について調べました。
RSL10-SIP-001BEVBRSL10-BDK-GEVKDIOの接続先をまとめたものを図5に示します。

図5 RSL10-SIP-001BEVB とRSL10-BDK-GEVKにおけるDIOの接続先
図5 RSL10-SIP-001BEVB とRSL10-BDK-GEVKにおけるDIOの接続先


DIOの接続先を確認するとRSL10-SIP-001BEVB 、RSL10-BDK-GEVKの接続先が同じでないことが分かります。また、ダウンロードしたサンプルコードがRSL10-BDK-GEVKに対応しています。つまり、サンプルコードはRSL10-BDK-GEVKのDIOで定義されているため、RSL10-SIP-001BEVBに対応するDIOを定義する必要があります。

4. RSL10-SIP-001BEVBに対応するDIOの定義をします。
PinName.hファイルの内部にある、以下の黄色でラインされたPIN_DIOに書きかえて保存します。(図6参照)

図6 PIN_DIOの書き換え
図6 PIN_DIOの書き換え
図6 PIN_DIOの書き換え


5. NOA1305_example用のフォルダを右クリックし、再度Build Projectをクリックします。または、プロジェクトを選択し、[Build Project]をクリックします。

6. ビルドが実行されると、図7に示すようにビルドの出力がオンセミIDE C/C++上で表示されます。

図7 ビルド出力例


7. プロジェクトエクスプローラー上のDebugフォルダーに出力される主な結果は以下の通りです。図8に示します。
センシングをするにあたって使用するファイルはnoa1305_example.elfになります。

図8 ビルドによる出力ファイル


8. noa1305_example.elfファイルを用いてデバッグをおこないます。Project Explorer内でnoa1305_example.elfファイルを右クリックし、Debug As > Debug Configurationsを選択します。

9. Debug Configurationsダイアログが表示されたら、GDB SEGGER J-Link Debuggingを右クリックし、New Configurationを選択します。
GDB SEGGERの見出しの下にnoa1305_example.elfの新しいコンフィギュレーションが表示されます。
右側のパネルに新しいコンフィギュレーションの詳細が表示されます。

10. Debuggerタブに移動し、「デバイス名」欄に「RSL10」と入力します。
ターゲット・インターフェースにSWDが選択されていることを確認してください。(図9参照)

図9 GDB起動設定およびDebuggerタブの設定


11. コンフィギュレーションの更新が完了したら、評価・開発ボードをマイクロUSBケーブルでPCに接続し、デバッグをクリックします。
J-Linkは自動的にnoa1305_exampleというサンプルコードをダウンロードし、RSL10 のフラッシュメモリに保存します。

12. デバッグをクリックした後に、下図10ResumeF8)をクリックします。

図10 Resumeのクリック場所

13. Resumeクリック後に、下図11Open a terminalをクリックします。

図11 Open a terminalのクリック場所


14. 動作を確認することができました。(12参照)

図12 RSL10-SIP-001GEVBでセンシング

最後に

今回はオンセミ社のRSL10でセンシングをおこないました。次回(第三弾)は、RSL10BLE通信を用いたデモ環境の構築をおこないたいと思います。

お問い合わせ

今回紹介した内容及び製品にご興味がある方は、ぜひお問い合わせください。

オンセミ メーカー情報Topへ

オンセミ メーカー情報Topに戻りたい方は以下をクリックしてください。