nRF Cloud その6 -Location Service-

こんにちは。加賀デバイスのNordic Teamです。 nRF Cloudコラムシリーズですが、今回はLocation Serviceの機能について記事を書きたいと思います。 nRF Clouldでは Location Serviceの機能 としてAssisted GNSS(以降A-GNSS)・Predicted GNSS(以降P-GNSS)・Single-cell Location(以降SCELL)・Multi-cell Location(以降MCELL)・Wi-Fi Locationの機能を提供しています。 A-GNSSやP-GNSSを使用することで測位時間を早める事が出来ます。CellベースのLocationを使用することでGNSSが届かない屋内でもデバイスの位置情報をある程度の範囲で特定することが出来ます。また、Wi-FiベースのLocationを使用する事でCellベースのLocationよりさらに精度良く屋内での位置情報の取得が可能となります。 それではそれぞれの機能についてもう少し詳しく見ていきたいと思います。 ◢◤A-GNSS & P-GNSS nRF91シリーズのGNSS機能を使う事で位置情報を取得することは可能ですが、通常のGNSSでは50bit/sという低データレートのため測位までに時間がかかってしまいます。そのためA-GNSSやP-GNSSを使い、事前に衛星のデータをLTE経由でnRF Cloudから取得する事で測位時間を早める事ができます。   Cloud-assisted implementation using A-GNSS and P-GNSS nRF CloudのA-GNSSとP-GNSSのライブラリについては下記で説明しています。 *ドキュメントではP-GPSとなっていますが、P-GNSSと同意義となります。   A-GNSS   P-GPS A-GNSSとP-GNSSの主な違いはデータ更新のタイミングです。A-GNSSは最大で4時間(平均して2時間)ごとにデータ受信しますが、P-GNSSは最大で2週間分(ライブラリのデフォルトでは1週間分)のデータをまとめて受信します。A-GNSSは頻繁にLTE接続が発生しますが、P-GNSSはまとめてデータを受信するため低消費電力に向いています。ただし、P-GNSSは2週間分のデータを保存する為のある程度のメモリ領域を使用します。1週間分であれば約84kByte程度必要となります。測位時間についてはA-GNSSの方が常に最新のデータを扱えるためP-GNSSと比べると早くなります。まとめると下記のようになります。 実際にnRF Connect SDKの GNSS のサンプルプロジェクトを使用して、GNSSのTTFFとA-GPS/P-GPSのTTFFを測定してみたいと思います。 *TTFFの値は、測定場所や測定環境に大きく依存するため、参考程度に見て頂ければと思います。 下記がプログラムを書き込んだ直後のTTFFの値となります。 〇GNSS:30秒±5秒程度 〇AGPS:5秒±3秒程度 〇PGPS:60秒±20秒程度 GNSSは仕様書に記載の値(TYP:30.5s)に近い値となりました。AGPSは実際にはLTE経由でのダウンロード時間も含まれていると思われますが、数秒単位とかなり早く測位が出来ています。PGPSはLTE経由のダウンロード時間がかなりかかっていますが、ダウンロード時間を差し引くと平均して10秒程度で測位出来ていました。 続いて、評価ボードのリセットボタンを押した時のTTFFそ測定してみました。 〇GNSS:30秒±5秒程度 〇A-GPS:2秒±2秒程度 〇P-GPS:10秒±3秒程度 GNSSはプログラム書き込み直後TTFFと変わらない値となりました。A-GPSはプログラム書き込み直後のTTFFは早かったのですが、そこから1-2秒程度早くなってい感じでした。P-GPSはアシストデータのダウロード時間がなくなった分、プログラム書き込み直後と比べるとだいぶ早くなっています。 ◢◤SCELL & MCELL CELLベースの位置測位では、CELL=基地局の情報(MCC,MNC,ECI,TACなど)をもとに位置情報を取得します。GNSSの機能を使わないため低消費電力にはなりますが、位置情報の精度はGNSSと比べるとかなり悪くなります。   Location based on…

nPM2100 EKを使ってみた

こんにちは。加賀デバイスのNordic Teamです。 以前コラムで紹介したnPM2100の評価ボード(nPM2100 EK)を入手したので、実際に測定した結果なども交えてnPM2100の特徴を改めて紹介したいと思います。 nPM2100は一次電池向けの極めて効率的な昇圧レギュレータを内蔵したPMICです。  nPM2100紹介ページ 入力電圧は0.7~3.4Vで、1.8~3.3Vの範囲で最大150mAを出力できる昇圧コンバータを1つと、0.8~3.0Vの範囲で最大50mAを出力できるLDOを1つ搭載しています。 nPM2100で測定された電池電圧や温度データと、nRF Connect SDKで用意されているnRF Fuel Gauge libraryを用いる事で、ある程度正確な電池残量の検出が可能となっています。Fuel Gaugeについては下記ドキュメントに詳しく記載されているのでご参照頂ければと思います。  Using the nPM2100 Fuel Gauge 低消費電流の機能として、35nAのShip modeと175nAのHibernate modeを持ちそれらを使用する事で製品の電池寿命を延ばす事が出来ます。Ship modeを使えば電池を挿したままでも電池の消耗がほとんどないため、今まで電池の保護用に使用していた絶縁用のプルタブなどが不要になり、そのまま出荷や保管ができます。Hibernate modeはタイマー動作で復帰が可能なため、定期的(設定可能時間:16ms~74.5hour)に起きて動作をさせたいときに有効となります。 また、サイズも1.9×1.9mmのWLCSPと4×4mmのQFNパッケージがあり、WLCSPであれば周辺の受動部品を入れても5mm×5mmの範囲で収まる設計が可能です。nPM2100のデータシートに記載の推奨回路そのままの設計が、nPM2100 EKに実装されています。 回路設計のガイドライン資料もありますので、合わせてご参照頂ければと思います。   nPM2100 Hardware Design Guidelines それでは早速nPM2100 EKを使用してnPM2100の実力を見てみたいと思います。nPM2100 EKはnRF Connect for Desktopの”nPM PowerUP”で色々な機能の使い方の確認が出来ます。 ◢◤nPM PowerUP単三電池を接続したnPM2100 EKをパソコンに接続して、nPM PowerUPを起動させると下記のような画面が表示されます。 評価ボードでは、電池のコネクタ横のLEDで電池残量を表しています。nPM PowerUPの左上のFuel Gaugeでは%表記で電池残量が確認出来、右上のBattery Statusでは実際の電圧が表示されています。 Boostで1.8Vを設定して実際に測定してみた結果が下記となります。 設定の1.8Vより若干高い値となっていますが、データシートを確認すると動作モードによっては50mV程度高くなることがあるようです。今回はその影響によるものと思われます。 次はLDOで0.8Vを設定して実際に測定してみた結果が下記となります。 ◢◤低消費電力モード 低消費電力モードは大きく分けてSHIPモードとHibernateモードの2つがあり、その2つの中でも設定の違いによりさらに2つに別れます。  ・SHIPモード:製品の保管・輸送時に使う、最も低消費電力な完全シャットダウン状態。 ・Break-to-wakeモード :SHPHLDピンをGNDに接続してSHIPモードに入り、接続が切れると起動。  ・Hibernateモード:一部機能を維持しながら超低消費電力で待機して、復帰が速い。 ・Hibernate_PTモード:Hibernateモードの一種で、PT(Power Transfer)機能を維持しながら待機。 下記が消費電力を実際に測定した結果となります。PPK2では電流測定の分解能が足りないため、別の測定器(Otii)で測定した結果となります。高精度の電流測定器ではないためかなりノイズが乗った波形となっていますが、データシートに記載の値に近い結果となっています。…