nRF9160(nRF9160-DK)¶
[更新: 2023年12月18日]
弊社でNordic Semiconductor社のnRF9160の動作検証を行った際の作業手順です。同社の開発ボードであるnRF9160 DKを使用して検証を行っています。
nRF9160-DK概要¶
- 製品名 : nRF9160-DK
- 使用LTEモジュール : nRF9160
- 製造会社 : NORDIC SEMICONDUCTOR
- 製品情報 : https://www.nordicsemi.com/Products/Development-hardware/nRF9160-DK
- 取扱店 : 加賀デバイス株式会社
- LTE Mode : LTE-M, NB-IoT
- BAND : B1, B2, B3, B4, B5, B8, B12, B13, B14, B17, B18, B19, B20, B25, B26, B28 and B6
- SIM : 4FF SIM card slot
- 接続確認済キャリア : SoftBank、KDDI、Docomo
nRF9160-DK 動作確認時仕様¶
nRF9160-DK version : nRF9160 SICA B1搭載版
nRF9160-DK application and modem firmware : 2022-02-17_ec486dab
nRF9160 SiP modem firmware : 1.3.1
使用application image :
\img_app_bl\nrf9160dk_serial_lte_modem_2022-02-17_ec486dab.hex使用LTE mode : LTE-M
使用SIM : セキュアモバイルコネクトマルチサイズSIM
nRF9160-DKの事前設定¶
Getting started with nRF9160 DK の、Minimum requirements、Updating the DK firmwareの項を参考に、 nRF9160-DK application and modem firmwareとnRF9160 SiP modem firmwareを整えてください。
また何か初期状態とは異なる状態になっている可能性がある場合にはファクトリーリセットを試してください。
AT%XFACTORYRESET=0
動作の確認はnRF9160-DKのUSB-UARTコンソールをターミナルから操作します。 任意の適切なシリアルターミナルソフトでnRF9160-DKとシリアル通信できる状態としてください。
動作確認手順¶
各ATコマンドは前のコマンドのOK等の応答を確認してから実行してください。
また、AT+CFUN=1直後のAT+CGATT?など、コマンドによってはOK応答後も処理が続いているものもあり、直前のコマンドのOK直後に発行しても期待する応答にならない場合があります。その場合は時間を置いてからコマンドを再発行してください。
各コマンドの挙動の詳細はメーカーが提供するnRF9160のドキュメントを参照してください。
LTE網への接続¶
この確認手順前に、SIM設定の変更で全てのキャリアを有効にしておく必要があります。
各キャリアでの接続¶
Docomoの場合¶
送出ATコマンド:
AT%HWVERSION
AT+CGMR
AT+CFUN=0
AT+CGDCONT=0,"IP","sakura"
AT+CEREG=5
AT+CPSMS=0
AT%XSYSTEMMODE=1,0,0,0
AT+COPS=1,2,"44010"
AT+CFUN=1
AT+COPS?
AT+CGATT?
AT%XCBAND
AT+CESQ
AT%NBRGRSRP
動作ログ:
AT%HWVERSION
%HWVERSION: nRF9160 SICA B1A
OK
AT+CGMR
mfw_nrf9160_1.3.1
OK
AT+CFUN=0
OK
AT+CGDCONT=0,"IP","sakura"
OK
AT+CEREG=5
OK
AT+CPSMS=0
OK
AT%XSYSTEMMODE=1,0,0,0
OK
AT+COPS=1,2,"44010"
OK
AT+CFUN=1
OK
+CEREG: 0
+CEREG: 2,"118E","02994D03",7
+CEREG: 5,"118E","02994D03",7,0,2,"11100000","11100000"
AT+COPS?
+COPS: 1,2,"44010",7
OK
AT+CGATT?
+CGATT: 1
OK
AT%XCBAND
%XCBAND: 1
OK
AT+CESQ
+CESQ: 99,99,255,255,21,46
OK
AT%NBRGRSRP
OK
KDDIの場合¶
送出ATコマンド:
AT%HWVERSION
AT+CGMR
AT+CFUN=0
AT+CGDCONT=0,"IP","sakura"
AT+CEREG=5
AT+CPSMS=0
AT%XSYSTEMMODE=1,0,0,0
AT+COPS=1,2,"44051"
AT+CFUN=1
AT+COPS?
AT+CGATT?
AT%XCBAND
AT+CESQ
AT%NBRGRSRP
動作ログ:
AT%HWVERSION
%HWVERSION: nRF9160 SICA B1A
OK
AT+CGMR
mfw_nrf9160_1.3.1
OK
AT+CFUN=0
OK
AT+CGDCONT=0,"IP","sakura"
OK
AT+CEREG=5
OK
AT+CPSMS=0
OK
AT%XSYSTEMMODE=1,0,0,0
OK
AT+COPS=1,2,"44051"
OK
AT+CFUN=1
OK
+CEREG: 0
+CEREG: 2,"A804","0254B905",7
+CEREG: 5,"A804","0254B905",7,0,18,"11100000","11100000"
AT+COPS?
+COPS: 1,2,"44051",7
OK
AT+CGATT?
+CGATT: 1
OK
AT%XCBAND
%XCBAND: 18
OK
AT+CESQ
+CESQ: 99,99,255,255,24,55
OK
AT%NBRGRSRP
%NBRGRSRP: 186,5900,52
OK
SoftBankの場合¶
送出ATコマンド:
AT%HWVERSION
AT+CGMR
AT+CFUN=0
AT+CGDCONT=0,"IP","sakura"
AT+CEREG=5
AT+CPSMS=0
AT%XSYSTEMMODE=1,0,0,0
AT+COPS=1,2,"44020"
AT+CFUN=1
AT+COPS?
AT+CGATT?
AT%XCBAND
AT+CESQ
AT%NBRGRSRP
動作ログ:
AT%HWVERSION
%HWVERSION: nRF9160 SICA B1A
OK
AT+CGMR
mfw_nrf9160_1.3.1
OK
AT+CFUN=0
OK
AT+CGDCONT=0,"IP","sakura"
OK
AT+CEREG=5
OK
AT+CPSMS=0
OK
AT%XSYSTEMMODE=1,0,0,0
OK
AT+COPS=1,2,"44020"
OK
AT+CFUN=1
OK
+CEREG: 0
+CEREG: 2,"1810","01835B05",7
+CEREG: 5,"1810","01835B05",7,0,18,"11100000","11100000"
AT+COPS?
+COPS: 1,2,"44020",7
OK
AT+CGATT?
+CGATT: 1
OK
AT%XCBAND
%XCBAND: 8
OK
AT+CESQ
+CESQ: 99,99,255,255,12,49
OK
AT%NBRGRSRP
%NBRGRSRP: 118,3750,54,117,3750,51,86,3750,50
OK
LTEからの切断¶
各キャリアへの接続が不要になった際、キャリアや弊社の設備に対して切断を通知します。デバイスのシャットダウン時など、接続が不要になった際には明示的に切断処理を行うことを推奨します。
適切でない接続および切断を頻繁に繰り返すと、nRF9160の機能により関連する処理がロックされ一切の接続が出来なくなることがあります。 ロック状態の解除には特殊な条件と非常に長い時間を満たす必要があるため、ロックされないよう慎重な運用を推奨します。
コマンド/ログはいずれかのキャリアに接続された状態からのものになります。
送出ATコマンド:
AT+CFUN=0
AT+CFUN?
AT+CGATT?
AT%XCBAND
AT+CESQ
AT%NBRGRSRP
AT+COPS?
動作ログ:
AT+CFUN=0
OK
+CEREG: 0
AT+CFUN?
+CFUN: 0
OK
AT+CGATT?
+CGATT: 0
OK
AT%XCBAND
%XCBAND: 0
OK
AT+CESQ
+CESQ: 99,99,255,255,255,255
OK
AT%NBRGRSRP
OK
AT+COPS?
+COPS: 1
OK
キャリアサーチ¶
今利用可能なキャリア一覧を取得します。 結果が返ってくるまでは、数十秒かかります。
このSIMで認証可能かどうかを問わず通信可能圏内のキャリアが表示されます。セキュアモバイルコネクトSIMが非対応のキャリアや設定で無効にしているキャリアは、表示されたとしても接続可能なわけではありません。
送出ATコマンド:
AT%HWVERSION
AT+CGMR
AT+CFUN=1
AT+COPS=?
動作ログ:
AT%HWVERSION
%HWVERSION: nRF9160 SICA B1A
OK
AT+CGMR
mfw_nrf9160_1.3.1
OK
AT+CFUN=1
OK
AT+COPS=?
+COPS: (1,"","","44052",7),(2,"","","44020",7),(3,"","","44050",7),(1,"","","44010",7),(1,"","","44051",7)
OK
キャリア切り替え¶
コマンド/ログはいずれかのキャリアに接続された状態からのものになります。
Docomoへの切り替え¶
送出ATコマンド:
AT+COPS=1,2,"44010"
AT+COPS?
動作ログ:
AT+COPS=1,2,"44010"
OK
+CEREG: 2,"118E","02994D03",7
+CEREG: 2,"118E","02994D03",7,0,9
+CEREG: 5,"118E","02994D03",7,0,2,"11100000","11100000"
AT+COPS?
+COPS: 1,2,"44010",7
OK
KDDIへの切り替え¶
送出ATコマンド:
AT+COPS=1,2,"44051"
AT+COPS?
動作ログ:
AT+COPS=1,2,"44051"
OK
+CEREG: 2,"A804","0254B905",7
+CEREG: 2,"A804","0254B905",7,0,9
+CEREG: 5,"A804","0254B905",7,,,"11100000","11100000"
AT+COPS?
+COPS: 1,2,"44051",7
OK
Softbankへの切り替え¶
送出ATコマンド:
AT+COPS=1,2,"44020"
AT+COPS?
動作ログ:
AT+COPS=1,2,"44020"
OK
+CEREG: 2,"1810","01835B05",7
+CEREG: 2,"1810","01835B05",7,0,9
+CEREG: 5,"1810","01835B05",7,,,"11100000","11100000"
AT+COPS?
+COPS: 1,2,"44020",7
OK
IPでの通信確認¶
この確認を行う際にはモバイルゲートウェイのインターネット接続機能をONにしておく必要があります。 事前いずれかのキャリアへLTE接続できている前提です。
PINGの確認¶
送出ATコマンド:
AT#XPING="www.sakura.ad.jp",45,5000,5,1000
動作ログ:
AT#XPING="www.sakura.ad.jp",45,5000,5,1000
OK
#XPING: 0.153 seconds
#XPING: 0.109 seconds
#XPING: 0.184 seconds
#XPING: 0.193 seconds
#XPING: 0.110 seconds
#XPING: average 0.150 seconds
HTTPの確認¶
最近はHTTPでの公開サービスが閉じられていることが多いためHTTPでアクセスするとHTTPSでアクセスするように促す応答が確認できます。
送出ATコマンド:
AT#XHTTPCCON=1,"www.sakura.ad.jp",80
AT#XHTTPCREQ="GET","/",""
AT#XHTTPCCON=0
動作ログ:
AT#XHTTPCCON=1,"www.sakura.ad.jp",80
#XHTTPCCON: 1
OK
AT#XHTTPCREQ="GET","/",""
OK
#XHTTPCREQ: 0
#XHTTPCRSP:333,1
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 04 Mar 2022 06:22:02 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
Location: https://www.sakura.ad.jp/
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=15768000
#XHTTPCRSP:162,1
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
#XHTTPCRSP:0,1
AT#XHTTPCCON=0
#XHTTPCCON: 0
OK