| 1 | = mbed TY51822r3をMDK-ARM 5で開発する方法 = |
| 2 | |
| 3 | TY51822r3に使用されているNordicのnRF51822のサンプルコードは、次のページからダウンロードすることができます。[[BR]] |
| 4 | https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF51822 [[BR]] |
| 5 | [[BR]] |
| 6 | ここには、主に2種類のサンプルコードがあります。 [[BR]] |
| 7 | nRF5-SDK-zip…一般的なBLEアプリケーションを開発するときのサンプルコードです。 [[BR]] |
| 8 | nRF51-IoT-SDK-zip…IPv6 over BLEアプリケーションを開発するときのサンプルコードです。専用のSoftDeviceを使います。 [[BR]] |
| 9 | どちらのSDKを使った場合でも、mbed TY51822r3は、PCA10028用のサンプルコードを使うと、比較的容易にサンプルコードをビルドすることができます。[[BR]] |
| 10 | [[BR]] |
| 11 | これらサンプルコードを解凍します。また、MDK-ARMでnRF51のアプリケーションをビルドするためのDeviceFamilyPackをインストールします。 [[BR]] |
| 12 | MDKのPackInstallerでうまくDeviceFamilyPackのインストールができない場合、次のURLにウェブブラウザでアクセスして、DeviceFamilyPackをダウンロードしてください。 http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFamilyPack/ [[BR]] |
| 13 | この記事を書いた時点では、nRF_DeviceFamilyPack.8.5.0.packを利用しました。 [[BR]] |
| 14 | [[BR]] |
| 15 | == 太陽誘電製モジュール用のアプリケーション開発時の注意 == |
| 16 | mbed TY51822r3に搭載されているモジュールなどは、Nordic製の評価ボードとは異なり、MCUのクロックに32MHzが採用されています。外部クリスタルが32MHzである場合に必要なレジスタ設定を行う必要があります。[[BR]] |
| 17 | 詳細は、太陽誘電様の http://www.yuden.co.jp/wireless_module/document/EVBManual/TY_BLE_CN_EVBManual_V1.00_20150914.pdf こちらのドキュメントの7ページ目を確認してください。[[BR]] |
| 18 | 要は、system_nrf51.cの86行目のあたりに、次のコードを書いておく必要があります。 |
| 19 | {{{ |
| 20 | if (*(uint32_t *)0x10001008 == 0xFFFFFFFF) { |
| 21 | NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos; |
| 22 | while (NRF_NVMC->READY == NVMC_READY_READY_Busy){} |
| 23 | *(uint32_t *)0x10001008 = 0xFFFFFF00; |
| 24 | NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos; while (NRF_NVMC->READY == NVMC_READY_READY_Busy){} |
| 25 | NVIC_SystemReset(); |
| 26 | while (true){} |
| 27 | } |
| 28 | }}} |
| 29 | [[BR]] |
| 30 | ※ 決して16MHzの外部クリスタルと比較して高速に動くわけではありません。恐らく、モジュールの小型化のために、小型のクリスタルを採用しているのでしょう。 |
| 31 | |
| 32 | == SoftDeviceの書き込みかた == |
| 33 | === nRF5-SDKの場合 === |
| 34 | SoftDeviceを書き込むためのターゲットがプロジェクトに用意されています。「flash_s130_nrf51_2.0.0_softdevice」等のターゲットがあるはずですので、これを選択してください。 [[BR]] |
| 35 | ターゲットのオプションを開くか、[Flash]-[Configure Flash Tools...]を選択して「Debug」タブを開いてください。mbedのインターフェースチップがサポートしているプロトコルはCMSIS-DAPですので、「Use:」欄横のドロップダウンリストボックスで「CMSIS-DAP Debugger」を選択します。[[BR]] |
| 36 | 次に、「Settings」ボタンをクリックし、「SW Device」という欄に「ARM CoreSight SW-DP」などとnRF51のコアが認識されていることを確認します。表示されていない場合、お手元のパソコンがmbed TY51822r3に接続されていないか、画面左側の「Port」がJTAGになっている等の問題があります。[[BR]] |
| 37 | コアが見えていることを確認したら、「Flash Download」タブを開いてください、そこで、「Remove」ボタンや「Add」ボタンを使い、「Programming Algorithm」を「nRF51 External Connectivity Board」にします。また、「Download Function」を「Erase Full Chip」にしておいてください。[[BR]] |
| 38 | |
| 39 | === nRF51-IoT-SDKの場合 === |
| 40 | IoT SDKを解凍すると、 Nordic¥nrf51¥components¥softdevice¥s1xx_iot¥s1xx-iot-prototype2_softdevice.hex というファイルがあります。これがIoT SDK用のSoftDeviceです。[[BR]] |
| 41 | このファイルをMBEDドライブにドラッグ・アンド・ドロップすると、SoftDeviceを書き込むことができます。 |
| 42 | |
| 43 | == アプリケーションの書き込みかた == |
| 44 | SDKを問わず共通です。nRF5-SDKでターゲットを切り換えてSoftDeviceを書き込んだ場合、ターゲットをアプリケーションに戻してください。[[BR]] |
| 45 | ターゲットのオプションを開くか、[Flash]-[Configure Flash Tools...]を選択して「Debug」タブを開いてください。mbedのインターフェースチップがサポートしているプロトコルはCMSIS-DAPですので、「Use:」欄横のドロップダウンリストボックスで「CMSIS-DAP Debugger」を選択します。[[BR]] |
| 46 | 次に、「Settings」ボタンをクリックし、「Flash Download」タブを開いてください、そこで、「Remove」ボタンや「Add」ボタンを使い、「Programming Algorithm」を「nRF51 External Connectivity Board」にします。また、「Download Function」を「Erase Sectors」にしておいてください。[[BR]] |
| 47 | お好みで「Reset and Run」にチェックを入れていただいても良いと思いますが、さきほど確認したところResetはかかりませんでした。今後、何らかの修正時に対処法を検討します。当面は、リセットボタンを押すか、USBケーブルの挿抜を行ってください。[[BR]] |