TYBLE16 Module as Mbed OS 5 Board (mbedlization)
.
2019/12/28 対処療法ですが、DAPLinkの書込み方法を暫定案として記載
2019/12/20 LPC11U35/DAPLinkで書き込みが上手くいかない症状が発覚しました
2019/12/19 プログラムを更新+新規プログラム
2019/2/13 プログラム更新(ベースmbed-os-5.10.4)
1.注意事項及び免責
重要
TYBLE16をMbedボードとして、Mbed OS 5上で動作させることが出来ました。
しかしながら、まだ充分な確証があるわけではありません。
実際の改造は自己責任で進めてください。
ファームエアを上書きしてしまい、二度と元の状態に戻せません!!!
TYBLE16には、太陽誘電が開発した独自のファームウェアが書き込まれて出荷されています。
本来の目的は、そのファームウェアを駆使してClient(Central)とServer(Peripheral)間の通信を行うものです。
ここで紹介する方法は、TYBLE16のファームウェアを書き換えてしまい、TYBLE16のみでMbedのプログラムを走らせます。
もう一度書きます。二度と元のファームウェアに戻せません!!
秋月通商や太陽誘電に対して、更に私に対するクレームは出来ませんので、事前のご理解をお願いします。
あくまでも自己責任として、対応できる方だけ実験してください。
先ずは、本来の機能をお楽しみください。
TYBLE16本来の使用例/Notebook
/users/kenjiArai/notebook/tyble16-module--akizuki/
/users/kenjiArai/notebook/tyble16-module--uart-communication-between-central/
TYBLE16をOS 2上で動作させた例/Notebook
/users/kenjiArai/notebook/tyble16-module-will-become-a-mbed-family--mbedliza/
2.Mbedにするために
TYBLE16は、下記のようなシステム構成となっていて、他のnRF51を流用してMbed上でコンパイルすることが出来ませんでした。
Board | XTAL[MHz] | System Clock[MHz] | LF Setting | ROM[kB] | RAM[kB] |
---|---|---|---|---|---|
TYBLE16 | 32 | 16 | internal RC | 256 | 32 |
オフラインコンパイラーを使用してMbedのファイル群を修正すれば、動作させることが可能なことは判っていましたが、何とかオンラインコンパイラーで動作させたいと色々な方法を検討しましたが、失敗ばかりでした。
そんな時に下記プログラムが、公開されました。
/users/manhpham/code/Nucleo_rtos_basic_ir_controller/
何がすごいかと言うと、Mbed OS 2 (Classic) で提供されているmbed-devに相当するMbed OS 5のソースファイル群が入っています。
はっきり言って、どんな方法でこの膨大なファイル群がアップロードできたのか、私にはわかりません(どなたか、大量のファイル群をアップロードする方法をご存知なら教えてください Wataraiさんに教えてもらいました。下段、reply参照願います)。
この謂わばmbed-dev-os5を利用すれば、OS5内のファイル修正が可能になります。
今回は、下記のファイルを修正しています。
(1) mbed.h
ファイルは、直下のDirectoryに存在します。
(2) PinNames.h
ファイルは、下記Directoryに存在します。
\mbed-os\targets\TARGET_NORDIC\TARGET_NRF5\TARGET_MCU_NRF51822_UNIFIED\TARGET_NRF51_DK
(3) targets.json
ファイルは、下記Directoryに存在します。
\mbed-os\targets
ライブラリーは、mbed-os-5.10.4(及び5.13も併用)をベースに上記修正とTYBLE16に関係ない部分は削除したファイル群で構成しています。
[Repository '/users/kenjiArai/code/TYBLE16_os5_BASE/rev/cbf8cd268b0d/' not found]
Mbedで設定するボードも重要です。
実は、Nordic nRF51-DKのボードを使っていることとし、コンパイラーをだまして使っています。
従ってボードの選択は、下記のページから自分のボードに登録願います。
/platforms/Nordic-nRF51-DK/
3.ピン定義
/media/uploads/kenjiArai/tyble16_pins.pdf
4.サンプルプログラム
Import programTYBLE16_mbedlized_os5_several_examples_1st
TYBLE16 on os5 sample programs
当初全てのプログラムをひとつにまとめましたが、UART(7&8)がメモリーオーバーフローで動作しなくなったので分離しました。
Import programTYBLE16_mbedlized_os5_several_examples_2nd
Separated Uart_Clinent & Uart_Server due to memory overflow
プログラムを動作させるには、select_example.cpp内の定義番号を0から9まで選択して切り替えます。
#define EXAMPLE_NUMBER 9
EXAMPLE_NUMBER | Program | Comments |
---|---|---|
0 | 0_Blinky_LED | LED Blinky |
1 | 1_Check_RTC | Check RTC function |
2 | 2_EddyStoneBeacon | Demonstration sample program EddyStone Beacon |
3 | 3_Heart_Rate | Demonstration sample program Heart Rate |
4 | 4_RCBController | Potential usage for Radio Controller (RCB Controller) |
5 | 5_SDCard | Demonstration sample program SD Card |
6 | 6_Thermo | Demonstration sample program Thermometer |
7 | 7_Uart_Client | Uart Client(Central) Baudrate=115200 |
8 | 8_Uart_Server | Uart Server(Peripheral) Baudrate=115200 |
9 | 9_Monitor | Check nRF51 CPU functions |
2019/12/19 新規プログラム追加
Import programTYBLE16_simple_data_logger
1st working program
FRAMに大気圧、温度、湿度のデータを収集するためのプログラムです。
2分毎の起動に設定すると、2秒程度起動しデータ収集後Sleepしますので、FRAM2Mbitsで20日間以上の記録が可能です。
5.プログラム書き込み方法
重要
2019/12/20追記
購入直後のTYBLE16をLPC11U35/DAPLinkボードで書き込むとうまく動作しないことを確認しました!
一度でもTSUBOLink-IIにて何らかのMbedプログラムを書き込んだ後であれば、LPC11U35/DAPLinkでも書き込みが問題なくできます。
しかし、購入直後で一度も書き込みをしていない状態では、プログラム書き込みがうまくできないことが本日判明しました。
手元にあったモジュールがすべてTSUBOLink-IIで書き込んだ履歴があったので、確認が遅れてしまい申し訳ありませんでした。
2019/12/28追記
0254_lpc11u35_sscity_0x0000.binを利用すれば、最初の書込みから問題なく動作することを確認しました。
下記のモジュールを用意します。
LPC11U35かTSUBOLink-IIのどちらか一方で対応可能です。
モジュール | 情報先 |
---|---|
TYBLE16 | http://akizukidenshi.com/catalog/g/gK-12339/ |
LPC11U35(追記DAPLINK用) | http://akizukidenshi.com/catalog/g/gK-12144/ |
TSUBOLink-II (HRM1017用) | https://www.switch-science.com/catalog/1829/ |
2019/12/19 追記
LPC11U35でもDAPLinkを書き込んで、対応できます。
最新版バイナリーファイルを集めたZIPファイルを下記からダウンロードします。
https://github.com/ARMmbed/DAPLink/releases/tag/v0254
2019/12/19時点では、下記が最新です。
0254_release_package_f499eb6e.zip
解凍後に、
0254_lpc11u35_dipdap_sdt51822b_0x0000.bin
を使用してLPC11U35モジュールをBOOTモード(SW1を押したまま、RESETスイッチ操作)にした状態で、元に見えるfirmware.binを削除してから、Copy&pasteで書き込みます。
正常に書き込みが終了するとDAPLINKのドライブとしてMBEDのリンク先とDETAILS.TXTが見えるようになります。
書き込み時の接続は、下記を参照ください。
注意点)
スイッチサイエンスの商品紹介ページには、
「nRF51822を搭載した他のモジュールへの書き込みは検証しておりません。」
と書かれています。この点も、自己責任で進めてください。
6.動作例
BME280とLCDはI2Cラインに接続
SDCard制御
データロガー用に手作りした基板
4 comments on TYBLE16 Module as Mbed OS 5 Board (mbedlization):
Please log in to post comments.
Quote:
はっきり言って、どんな方法でこの膨大なファイル群がアップロードできたのか、私にはわかりません(どなたか、大量のファイル群をアップロードする方法をご存知なら教えてください)。
https://github.com/ARMmbed/mbed-os からForkしたリポジトリをURLインポートすると、オンラインIDE上でソースが全部見れます(変更も出来ます)。Local Revisionsはリリース単位では無くコミット単位でしか表示されなくなりますが。