SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
Nordic nRF51822 で BLE してみました
● Bluetooth Low Energy(BLE) をやってみたのだ。
●
入手しやすく、開発環境も無料で手に入る nRF51822 を使った。
● mbed ではない、ほぼ素の nRF51822 である Braveridge 社の
ボードを購入した。
●
買ったときは mbed 版が無かったということもあるが、素の環境でやった方
が応用が利きやすいと思ったこともある。
試したときの環境
nRF51822
●
IC revision : 2
● HWID : 004D
● FLASH : 256KB
● RAM : 16KB
● SoftDevice : S110 v7.1.0
● nRF51 SDK : v7.2.0
● Compiler : GCC – gcc-arm-none-eabi-4_9-2014q4
● Debugger : SEGGER J-Link LITE CortexM
● IDE : eclipse LUNA + CDT
● Monitor : TI SmartRF Packet Sniffer
nRF51822 のボード
● Braveridge 社の BVMCNDT52
● J-Link とのセットで売られていたので、これを選んだ。
● mbed のボードも売られているが、その場合はこの資料は役に立
たない ( と思う ) 。
デバッガを接続
● SWD タイプ
●
書くのを忘れていたが、 nRF51822 は ARM Cortex-M0 が載って
いる。
● 赤で塗っているところに書いてある数字を入力しないと使えない
開発環境の入手先
● SoftDevice : S110 v7.1.0
● http://www.nordicsemi.com/eng/nordic/Products/nRF51822/S110-SD-v7/30082
●
nRF51 SDK : v7.2.0
● https://developer.nordicsemi.com/nRF51_SDK/nRF51_SDK_v7.x.x/
● nRF51 Tools : v6.2.2
● http://www.nordicsemi.com/eng/nordic/Products/nRF51822/nRF51-Tools/33444
●
Compiler : GCC – gcc-arm-none-eabi-4_9-2014q4
● https://launchpad.net/gcc-arm-embedded
● Debugger : SEGGER J-Link LITE CortexM
● https://www.segger.com/jlink-software.html
● nRF51 Tools に入っているので、個別に入れなくてもよいかも。
● IDE : eclipse LUNA for C/C++ Developers
● https://eclipse.org/downloads/
● Keil : MDK-ARM Lite
● https://www.keil.com/demo/eval/arm.htm
● GCC+eclipse を書いておいてなんだが、 32KB 制限はあるもののこちらの方がはるかに楽。
SoftDevice ?
●
nRF51822 アプリで BLE する場合は、 nRF51822 のレジスタを操作す
るのでは無く、 SoftDevice に依頼する形を取る。
●
例:アドバタイジングの開始
●
アプリ : sd_ble_gap_adv_start() を呼び出す
➢
SoftDevice への依頼に置き換えられる
SVCALL(SD_BLE_GAP_ADV_START, uint32_t, sd_ble_gap_adv_start...)
●
OS ではないが、 Linux でシステムコールしているような感じ
●
略称は SD 。主に以下だが、 S130 はメジャーバージョンになってない
●
S110 : Peripheral/Broadcaster 専用
●
S120 : Central 専用
●
S130 : Central/Peripheral/Observer/Broadcaster
注意すること
● バージョンの関係
● SoftDevice のバージョンと、 SDK のバージョンは密接に関係している
● nRF51822 の revision と SoftDevice のバージョンも制限があるらしい
● 範囲外でも動かないことはないのかもしれないが、動かなくても文句が言えない。
● “Compatibility Matrix”(ATTN-51) を見ないとわからない。
● nRF51822 に焼いてある SoftDevice と SDK でビルドしたアプリ
が不一致だと、アプリが動かない場合がある
● enum の値が変わっていたりとか。
●
動かなくてもソースには間違いが無いので、かなり悩むことになる。
●
購入した nRF51822 に焼かれている SoftDevice が何かわからない場合は、ま
ず焼き直した方が無難。
サンプルアプリはどれにする?
● nRF51 SDK にはサンプルアプリも入っているので、それを使う。
● ble_app_hrs がお手頃か。
● ble_app_beacon がいわゆる iBeacon 形式なのだが、
確か今の iOS は iBeacon が MFi の承認を取らないと
通知しないようになったと思う。
●
以前はアプリケーションノート nAN-29 に
GCC+eclipse での説明があり、そこで ble_app_hrs を
動かすようになっていたのだ。
●
なので、 BLE の Advertising を確認できるツールを
持っているならば、どれでもよいと思う。
サンプルアプリを自分の環境に合わせる
● nRF51822 ボードに合わせて書き直す
●
例えば ble_app_hrs の場合、 pca10028 と pca10031 というフォルダがある
●
その中に、 s110/armgcc/makefile がある
●
差分を取るとわかるが、違うのは定義名だけ
●
それは examples/bsp フォルダのなかで吸収している
● 自分のボードに合わせて書き直すなり、設定を増やすなりしよう
●
それでも吸収できないソースの変更
●
SOFTDEVICE_HANDLER_INIT() の引数
https://developer.nordicsemi.com/nRF51_SDK/nRF51_SDK_v7.x.x/doc/7.2.0/s110/html/a01070.ht
ml#gaef6aabaa8887cb4d7265d7e21b3ec242
● デフォルトでは外部に水晶発振子が接続されていることになっているため、接続されていな
いボードでは「外部クロックの安定待ち」で待ったままになってしまう。
"_XTAL_" は外部発振子用、 "_RC_" は内部発振子用なので、書き換える。

Weitere ähnliche Inhalte

Was ist angesagt?

Using or not using magic onion
Using or not using magic onionUsing or not using magic onion
Using or not using magic onionGoichi Shinohara
 
OPC UAをオープンソースやフリーのソフトで遊んでみた
OPC UAをオープンソースやフリーのソフトで遊んでみたOPC UAをオープンソースやフリーのソフトで遊んでみた
OPC UAをオープンソースやフリーのソフトで遊んでみたミソジ
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーYoshifumi Kawai
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CDYuta Matsumura
 
Node-REDと出会って4年でようやくわかったSwitchノードの重要性
Node-REDと出会って4年でようやくわかったSwitchノードの重要性Node-REDと出会って4年でようやくわかったSwitchノードの重要性
Node-REDと出会って4年でようやくわかったSwitchノードの重要性SmartLight
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
ゲームの仕様書を書こう2 仕様書に記載する機能内容
ゲームの仕様書を書こう2 仕様書に記載する機能内容ゲームの仕様書を書こう2 仕様書に記載する機能内容
ゲームの仕様書を書こう2 仕様書に記載する機能内容Sugimoto Chizuru
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cythonAtsuo Ishimoto
 
Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1edy555
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501稔 小林
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法モノビット エンジン
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?京大 マイコンクラブ
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪Kunihiro TANAKA
 
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみようMichio Kataoka
 
Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話Tomohiro Nakajima
 
AndroidでIDm読み取ってみた
AndroidでIDm読み取ってみたAndroidでIDm読み取ってみた
AndroidでIDm読み取ってみたDaisuke Hirata
 
無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル) 無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル) Yuki Uchikoba
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステムl_b__
 

Was ist angesagt? (20)

Using or not using magic onion
Using or not using magic onionUsing or not using magic onion
Using or not using magic onion
 
OPC UAをオープンソースやフリーのソフトで遊んでみた
OPC UAをオープンソースやフリーのソフトで遊んでみたOPC UAをオープンソースやフリーのソフトで遊んでみた
OPC UAをオープンソースやフリーのソフトで遊んでみた
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
 
Node-REDと出会って4年でようやくわかったSwitchノードの重要性
Node-REDと出会って4年でようやくわかったSwitchノードの重要性Node-REDと出会って4年でようやくわかったSwitchノードの重要性
Node-REDと出会って4年でようやくわかったSwitchノードの重要性
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
ゲームの仕様書を書こう2 仕様書に記載する機能内容
ゲームの仕様書を書こう2 仕様書に記載する機能内容ゲームの仕様書を書こう2 仕様書に記載する機能内容
ゲームの仕様書を書こう2 仕様書に記載する機能内容
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cython
 
Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1
 
Bitcoin 2
Bitcoin 2Bitcoin 2
Bitcoin 2
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
 
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについてeBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
 
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
 
Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話
 
AndroidでIDm読み取ってみた
AndroidでIDm読み取ってみたAndroidでIDm読み取ってみた
AndroidでIDm読み取ってみた
 
無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル) 無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル)
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステム
 

Ähnlich wie Nordic nRF51822でBLEしてみました

PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAGPF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAGdaye001
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pitokudahiroshi
 
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...Netwalker lab kapper
 
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...Netwalker lab kapper
 
BlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグするBlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグする裕士 常田
 
Big Raspberry JAM TOKYO 2013 Hardware
Big Raspberry JAM TOKYO 2013 HardwareBig Raspberry JAM TOKYO 2013 Hardware
Big Raspberry JAM TOKYO 2013 HardwareHideki Aoshima
 
LLILUM and TinyCLR OS
LLILUM and TinyCLR OSLLILUM and TinyCLR OS
LLILUM and TinyCLR OSAtomu Hidaka
 
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介IBM Analytics Japan
 
WireGurad in the FreeBSD kernel
WireGurad in the FreeBSD kernelWireGurad in the FreeBSD kernel
WireGurad in the FreeBSD kernelYuichiro Naito
 
20110715 osc2011 kyoto
20110715 osc2011 kyoto20110715 osc2011 kyoto
20110715 osc2011 kyotoYamauchi isamu
 
Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)Hidenori Goto
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoNetwalker lab kapper
 
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIAHacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIANetwalker lab kapper
 
Dpdk環境の話
Dpdk環境の話Dpdk環境の話
Dpdk環境の話Masaru Oki
 
BVMCN5102-BK Kit+開発環境構築まとめ‬
BVMCN5102-BK Kit+開発環境構築まとめ‬BVMCN5102-BK Kit+開発環境構築まとめ‬
BVMCN5102-BK Kit+開発環境構築まとめ‬gomihgy
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)NTT DATA Technology & Innovation
 

Ähnlich wie Nordic nRF51822でBLEしてみました (20)

PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAGPF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAG
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
NetBSD/Zynq
NetBSD/ZynqNetBSD/Zynq
NetBSD/Zynq
 
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
 
retrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoFretrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoF
 
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
 
BlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグするBlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグする
 
Big Raspberry JAM TOKYO 2013 Hardware
Big Raspberry JAM TOKYO 2013 HardwareBig Raspberry JAM TOKYO 2013 Hardware
Big Raspberry JAM TOKYO 2013 Hardware
 
LLILUM and TinyCLR OS
LLILUM and TinyCLR OSLLILUM and TinyCLR OS
LLILUM and TinyCLR OS
 
Pdp11 on-fpga
Pdp11 on-fpgaPdp11 on-fpga
Pdp11 on-fpga
 
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
 
WireGurad in the FreeBSD kernel
WireGurad in the FreeBSD kernelWireGurad in the FreeBSD kernel
WireGurad in the FreeBSD kernel
 
20110715 osc2011 kyoto
20110715 osc2011 kyoto20110715 osc2011 kyoto
20110715 osc2011 kyoto
 
Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
 
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIAHacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
 
Dpdk環境の話
Dpdk環境の話Dpdk環境の話
Dpdk環境の話
 
BVMCN5102-BK Kit+開発環境構築まとめ‬
BVMCN5102-BK Kit+開発環境構築まとめ‬BVMCN5102-BK Kit+開発環境構築まとめ‬
BVMCN5102-BK Kit+開発環境構築まとめ‬
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
 

Mehr von Hirokuma Ueno

nRF51のGPIOTEについて
nRF51のGPIOTEについてnRF51のGPIOTEについて
nRF51のGPIOTEについてHirokuma Ueno
 
Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2Hirokuma Ueno
 
月刊NDEF 2013年12月号
月刊NDEF 2013年12月号月刊NDEF 2013年12月号
月刊NDEF 2013年12月号Hirokuma Ueno
 
月刊NDEF 2013年8月号
月刊NDEF 2013年8月号月刊NDEF 2013年8月号
月刊NDEF 2013年8月号Hirokuma Ueno
 
月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号Hirokuma Ueno
 
旅行カバンとNFC
旅行カバンとNFC旅行カバンとNFC
旅行カバンとNFCHirokuma Ueno
 
NDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRiNDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRiHirokuma Ueno
 
NDEF Writerを使ってみよう
NDEF Writerを使ってみようNDEF Writerを使ってみよう
NDEF Writerを使ってみようHirokuma Ueno
 
月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)Hirokuma Ueno
 
月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)Hirokuma Ueno
 
月刊NDEF 2013年1月号
月刊NDEF 2013年1月号月刊NDEF 2013年1月号
月刊NDEF 2013年1月号Hirokuma Ueno
 
MIFARE ClassicのAccess Conditions
MIFARE ClassicのAccess ConditionsMIFARE ClassicのAccess Conditions
MIFARE ClassicのAccess ConditionsHirokuma Ueno
 
FeliCa Liteの片側認証
FeliCa Liteの片側認証FeliCa Liteの片側認証
FeliCa Liteの片側認証Hirokuma Ueno
 
SNEPは大変だった
SNEPは大変だったSNEPは大変だった
SNEPは大変だったHirokuma Ueno
 
一人でもSNEP開発
一人でもSNEP開発一人でもSNEP開発
一人でもSNEP開発Hirokuma Ueno
 
NFCIP-1を斜め読み
NFCIP-1を斜め読みNFCIP-1を斜め読み
NFCIP-1を斜め読みHirokuma Ueno
 

Mehr von Hirokuma Ueno (20)

nRF51のGPIOTEについて
nRF51のGPIOTEについてnRF51のGPIOTEについて
nRF51のGPIOTEについて
 
Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2
 
About FeliCa Lite-S
About FeliCa Lite-SAbout FeliCa Lite-S
About FeliCa Lite-S
 
月刊NDEF 2013年12月号
月刊NDEF 2013年12月号月刊NDEF 2013年12月号
月刊NDEF 2013年12月号
 
月刊NDEF 2013年8月号
月刊NDEF 2013年8月号月刊NDEF 2013年8月号
月刊NDEF 2013年8月号
 
月刊NDEF 5月号
月刊NDEF 5月号月刊NDEF 5月号
月刊NDEF 5月号
 
月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号
 
旅行カバンとNFC
旅行カバンとNFC旅行カバンとNFC
旅行カバンとNFC
 
NDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRiNDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRi
 
NDEF Writerを使ってみよう
NDEF Writerを使ってみようNDEF Writerを使ってみよう
NDEF Writerを使ってみよう
 
月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)
 
月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)
 
月刊NDEF 2013年1月号
月刊NDEF 2013年1月号月刊NDEF 2013年1月号
月刊NDEF 2013年1月号
 
MIFARE ClassicのAccess Conditions
MIFARE ClassicのAccess ConditionsMIFARE ClassicのAccess Conditions
MIFARE ClassicのAccess Conditions
 
FeliCa Liteの片側認証
FeliCa Liteの片側認証FeliCa Liteの片側認証
FeliCa Liteの片側認証
 
SNEPは大変だった
SNEPは大変だったSNEPは大変だった
SNEPは大変だった
 
NFC切手
NFC切手NFC切手
NFC切手
 
NFCの汎化
NFCの汎化NFCの汎化
NFCの汎化
 
一人でもSNEP開発
一人でもSNEP開発一人でもSNEP開発
一人でもSNEP開発
 
NFCIP-1を斜め読み
NFCIP-1を斜め読みNFCIP-1を斜め読み
NFCIP-1を斜め読み
 

Kürzlich hochgeladen

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Kürzlich hochgeladen (10)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

Nordic nRF51822でBLEしてみました

  • 1. Nordic nRF51822 で BLE してみました ● Bluetooth Low Energy(BLE) をやってみたのだ。 ● 入手しやすく、開発環境も無料で手に入る nRF51822 を使った。 ● mbed ではない、ほぼ素の nRF51822 である Braveridge 社の ボードを購入した。 ● 買ったときは mbed 版が無かったということもあるが、素の環境でやった方 が応用が利きやすいと思ったこともある。
  • 2. 試したときの環境 nRF51822 ● IC revision : 2 ● HWID : 004D ● FLASH : 256KB ● RAM : 16KB ● SoftDevice : S110 v7.1.0 ● nRF51 SDK : v7.2.0 ● Compiler : GCC – gcc-arm-none-eabi-4_9-2014q4 ● Debugger : SEGGER J-Link LITE CortexM ● IDE : eclipse LUNA + CDT ● Monitor : TI SmartRF Packet Sniffer
  • 3. nRF51822 のボード ● Braveridge 社の BVMCNDT52 ● J-Link とのセットで売られていたので、これを選んだ。 ● mbed のボードも売られているが、その場合はこの資料は役に立 たない ( と思う ) 。
  • 4. デバッガを接続 ● SWD タイプ ● 書くのを忘れていたが、 nRF51822 は ARM Cortex-M0 が載って いる。 ● 赤で塗っているところに書いてある数字を入力しないと使えない
  • 5. 開発環境の入手先 ● SoftDevice : S110 v7.1.0 ● http://www.nordicsemi.com/eng/nordic/Products/nRF51822/S110-SD-v7/30082 ● nRF51 SDK : v7.2.0 ● https://developer.nordicsemi.com/nRF51_SDK/nRF51_SDK_v7.x.x/ ● nRF51 Tools : v6.2.2 ● http://www.nordicsemi.com/eng/nordic/Products/nRF51822/nRF51-Tools/33444 ● Compiler : GCC – gcc-arm-none-eabi-4_9-2014q4 ● https://launchpad.net/gcc-arm-embedded ● Debugger : SEGGER J-Link LITE CortexM ● https://www.segger.com/jlink-software.html ● nRF51 Tools に入っているので、個別に入れなくてもよいかも。 ● IDE : eclipse LUNA for C/C++ Developers ● https://eclipse.org/downloads/ ● Keil : MDK-ARM Lite ● https://www.keil.com/demo/eval/arm.htm ● GCC+eclipse を書いておいてなんだが、 32KB 制限はあるもののこちらの方がはるかに楽。
  • 6. SoftDevice ? ● nRF51822 アプリで BLE する場合は、 nRF51822 のレジスタを操作す るのでは無く、 SoftDevice に依頼する形を取る。 ● 例:アドバタイジングの開始 ● アプリ : sd_ble_gap_adv_start() を呼び出す ➢ SoftDevice への依頼に置き換えられる SVCALL(SD_BLE_GAP_ADV_START, uint32_t, sd_ble_gap_adv_start...) ● OS ではないが、 Linux でシステムコールしているような感じ ● 略称は SD 。主に以下だが、 S130 はメジャーバージョンになってない ● S110 : Peripheral/Broadcaster 専用 ● S120 : Central 専用 ● S130 : Central/Peripheral/Observer/Broadcaster
  • 7. 注意すること ● バージョンの関係 ● SoftDevice のバージョンと、 SDK のバージョンは密接に関係している ● nRF51822 の revision と SoftDevice のバージョンも制限があるらしい ● 範囲外でも動かないことはないのかもしれないが、動かなくても文句が言えない。 ● “Compatibility Matrix”(ATTN-51) を見ないとわからない。 ● nRF51822 に焼いてある SoftDevice と SDK でビルドしたアプリ が不一致だと、アプリが動かない場合がある ● enum の値が変わっていたりとか。 ● 動かなくてもソースには間違いが無いので、かなり悩むことになる。 ● 購入した nRF51822 に焼かれている SoftDevice が何かわからない場合は、ま ず焼き直した方が無難。
  • 8. サンプルアプリはどれにする? ● nRF51 SDK にはサンプルアプリも入っているので、それを使う。 ● ble_app_hrs がお手頃か。 ● ble_app_beacon がいわゆる iBeacon 形式なのだが、 確か今の iOS は iBeacon が MFi の承認を取らないと 通知しないようになったと思う。 ● 以前はアプリケーションノート nAN-29 に GCC+eclipse での説明があり、そこで ble_app_hrs を 動かすようになっていたのだ。 ● なので、 BLE の Advertising を確認できるツールを 持っているならば、どれでもよいと思う。
  • 9. サンプルアプリを自分の環境に合わせる ● nRF51822 ボードに合わせて書き直す ● 例えば ble_app_hrs の場合、 pca10028 と pca10031 というフォルダがある ● その中に、 s110/armgcc/makefile がある ● 差分を取るとわかるが、違うのは定義名だけ ● それは examples/bsp フォルダのなかで吸収している ● 自分のボードに合わせて書き直すなり、設定を増やすなりしよう ● それでも吸収できないソースの変更 ● SOFTDEVICE_HANDLER_INIT() の引数 https://developer.nordicsemi.com/nRF51_SDK/nRF51_SDK_v7.x.x/doc/7.2.0/s110/html/a01070.ht ml#gaef6aabaa8887cb4d7265d7e21b3ec242 ● デフォルトでは外部に水晶発振子が接続されていることになっているため、接続されていな いボードでは「外部クロックの安定待ち」で待ったままになってしまう。 "_XTAL_" は外部発振子用、 "_RC_" は内部発振子用なので、書き換える。