xg_series_devel:ublox_lara:start

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
xg_series_devel:ublox_lara:start [2018/08/21 11:53]
admin
xg_series_devel:ublox_lara:start [2018/08/22 18:41] (現在)
admin
ライン 1: ライン 1:
 +====== LTE Cat.1 拡張ボード(OB-L1)の利用 ======
 +
 +XG-50 に、NTT docomo LTE Cat.1 回線用オプションボード [[https://​www.centurysys.co.jp/​products/​industrial/​xgb50.html|FutureNet OB-L1]] を搭載し、
 +LTE Cat.1 回線を利用してみます。
 +
 +{{:​xg_series_devel:​ublox_lara:​lara-r220_00.jpg?​600|OB-L1 オプションボード}}
 +
 +\\
 +
 +===== ファームウェアのビルド =====
 +
 +==== ソースコードの準備 ====
 +
 +=== リポジトリから clone ===
 +
 +[[https://​gitlab.com/​centurysystems/​XG-50|GitLab]] のリポジトリを clone します。
 +
 +まずは、NuttX 本体部分を clone します。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-L1$ git clone https://​gitlab.com/​centurysystems/​XG-50/​nuttx.git
 +Cloning into '​nuttx'​...
 +remote: Enumerating objects: 9256, done.
 +remote: Counting objects: 100% (9256/​9256),​ done.
 +remote: Compressing objects: 100% (3942/​3942),​ done.
 +remote: Total 380868 (delta 6493), reused 7046 (delta 4865)
 +Receiving objects: 100% (380868/​380868),​ 91.79 MiB | 2.15 MiB/s, done.
 +Resolving deltas: 100% (296680/​296680),​ done.
 +Checking connectivity... done.
 +kikuchi@develop:​~/​src/​OB-L1$
 +</​code>​
 +
 +アプリケーション部分も clone します。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-L1$ git clone https://​gitlab.com/​centurysystems/​XG-50/​apps.git
 +Cloning into '​apps'​...
 +remote: Enumerating objects: 992, done.
 +remote: Counting objects: 100% (992/992), done.
 +remote: Compressing objects: 100% (734/734), done.
 +remote: Total 36554 (delta 577), reused 400 (delta 252)
 +Receiving objects: 100% (36554/​36554),​ 9.03 MiB | 1.95 MiB/s, done.
 +Resolving deltas: 100% (29223/​29223),​ done.
 +Checking connectivity... done.
 +kikuchi@develop:​~/​src/​OB-L1$ ​
 +</​code>​
 +
 +clone された結果です。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-L1$ ls -l
 +total 8
 +drwxrwxr-x 21 kikuchi kikuchi 4096  8月 17 15:56 apps
 +drwxrwxr-x 21 kikuchi kikuchi 4096  8月 17 15:55 nuttx
 +kikuchi@develop:​~/​src/​OB-L1$ ​
 +</​code>​
 +
 +\\
 +
 +=== ブランチの確認 ===
 +
 +それぞれブランチはデフォルト(XG-50/​master) のままで OK です。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-L1$ cd nuttx/
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx$ git branch ​
 +* XG-50/​master
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx$ cd ../apps/
 +kikuchi@develop:​~/​src/​OB-L1/​apps$ git branch ​
 +* XG-50/​master
 +kikuchi@develop:​~/​src/​OB-L1/​apps$ ​
 +</​code>​
 +
 +\\
 +
 +==== コンフィグレーション ====
 +
 +コンフィグレーションを行います。''"​centurysys-xg50/​nsh_tickless"''​ を使用します。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-L1/​apps$ cd ../nuttx/
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx$ cd tools/
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx/​tools$ ./​configure.sh centurysys-xg50/​nsh_tickless
 +  Copy files
 +  Refreshing...
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx/​tools$ ​
 +</​code>​
 +
 +\\
 +
 +追加のアプリケーションなどを使う場合は、''​make menuconfig''​ でコンフィグレーションを変更して追加することもできます。
 +
 +{{:​xg_series_devel:​ublox_lara:​make_menuconfig.png?​600|make menuconfig}}
 +
 +\\
 +
 +==== ビルド ====
 +
 +''​make''​ でバイナリをビルドします。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx/​tools$ cd ..
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx$ make
 +make[1]: Entering directory '/​home/​kikuchi/​src/​OB-L1/​nuttx/​tools'​
 +make[1]: Leaving directory '/​home/​kikuchi/​src/​OB-L1/​nuttx/​tools'​
 +No .version file found, creating one
 +make[1]: Entering directory '/​home/​kikuchi/​src/​OB-L1/​nuttx/​tools'​
 +make[1]: Leaving directory '/​home/​kikuchi/​src/​OB-L1/​nuttx/​tools'​
 +LN: include/​arch to arch/​arm/​include
 +LN: include/​arch/​board to /​home/​kikuchi/​src/​OB-L1/​nuttx/​configs/​centurysys-xg50/​include
 +LN: include/​arch/​chip to arch/​arm/​include/​stm32l4
 +LN: arch/​arm/​src/​board to /​home/​kikuchi/​src/​OB-L1/​nuttx/​configs/​centurysys-xg50/​src
 +LN: arch/​arm/​src/​chip to arch/​arm/​src/​stm32l4
 +make[1]: Entering directory '/​home/​kikuchi/​src/​OB-L1/​nuttx/​configs'​
 +make[1]: Leaving directory '/​home/​kikuchi/​src/​OB-L1/​nuttx/​configs'​
 +....
 +CC:  stm32_adc.c
 +CC:  stm32_timer.c
 +CC:  stm32_appinit.c
 +AR:   ​stm32_boot.o stm32_clockconfig.o stm32_autoleds.o stm32_userleds.o stm32_adc.o stm32_timer.o stm32_appinit.o ​
 +make[2]: Leaving directory '/​home/​kikuchi/​src/​OB-L1/​nuttx/​configs/​centurysys-xg50/​src'​
 +LD: nuttx
 +make[1]: Leaving directory '/​home/​kikuchi/​src/​OB-L1/​nuttx/​arch/​arm/​src'​
 +CP: nuttx.hex
 +CP: nuttx.bin
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx$ ​
 +</​code>​
 +
 +\\
 +
 +ファームウェアのバイナリができました。
 +
 +<​code>​
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx$ ls -l nuttx*
 +-rwxrwxr-x 1 kikuchi kikuchi 2866548 ​ 8月 17 16:00 nuttx
 +-rwxrwxr-x 1 kikuchi kikuchi ​ 172432 ​ 8月 17 16:00 nuttx.bin
 +-rw-rw-r-- 1 kikuchi kikuchi ​ 485063 ​ 8月 17 16:00 nuttx.hex
 +kikuchi@develop:​~/​src/​OB-L1/​nuttx$ ​
 +</​code>​
 +
 +\\
 +
 +===== XG-50 への書き込み =====
 +
 +''​OpenOCD''​ + ''​gdb''​ を使用してファームウェアを書き込みます。
 +
 +\\
 +
 +===== 動作確認 =====
 +
 +''​gdb''​ から ''"​c"''​(continue) で実行します。
 +
 +<​code>​
 +��ABCDFboot
 +
 +NuttShell (NSH)
 +nsh> ​
 +</​code>​
 +
 +\\
 +
 +==== PPP 接続 ====
 +
 +''​pppd''​ コマンドにより接続を行います。APN / user / password はコマンドラインから指定します。\\
 +実際に接続する際には ''"&"''​ をつけてバックグラウンドで起動((フォアグラウンドで起動すると何もできなくなります。))します。
 +
 +<​code>​
 +nsh> pppd
 +Usage: pppd -a APN -u UserName -p Password
 +nsh> pppd -a dream.jp -u user@dream.jp -p dti &
 +pppd [4:100]
 +nsh> ​
 +</​code>​
 +
 +\\
 +
 +しばらくすると接続が完了します。dmesg でログを確認することができます。
 +
 +<​code>​
 +nsh> dmesg
 +[     ​0.000000] stm32l4_rng_initialize:​ Initializing RNG
 +[     ​0.000000] registered UART4 as /​dev/​console.
 +[     ​0.000000] registered UART4 as /dev/ttyS0.
 +[     ​0.000000] registered UART1 as /dev/ttyS1.
 +[     ​0.000000] registered USART2 as /dev/ttyS2.
 +[     ​0.000000] registered USART3 as /dev/ttyS3.
 +[     ​0.001500] Mounting procfs to /proc
 +[     ​0.003000] TCA9534 registered.
 +[     ​0.006500] board_ioctl:​ BIOC_ENABLE_B2B
 +[    21.210500] chat: expect ()
 +[    21.210500] chat: 
 +[    21.211000] chat: -- got it
 +[    21.211000] chat: send ATE0
 +[    21.211000] chat: expect (OK)
 +[    21.217500] chat: ^M
 +[    21.220000] chat: OK^M
 +[    21.220000] chat: -- got it
 +[    21.220000] chat: send AT+COPS?
 +[    21.220500] chat: expect (OK)
 +[    21.228500] chat: ^M
 +[    21.234000] chat: +COPS: 2^M
 +[    21.235500] chat: ^M
 +[    21.237500] chat: OK^M
 +[    21.238000] chat: -- got it
 +[    21.238000] chat: send AT+CGACT?
 +[    21.238000] chat: expect (OK)
 +[    21.247500] chat: ^M
 +[    21.255000] chat: +CGACT: 1,0^M
 +[    21.256000] chat: ^M
 +[    21.258500] chat: OK^M
 +[    21.258500] chat: -- got it
 +[    21.259500] chat: abort on (BUSY)
 +[    21.259500] chat: abort on (NO CARRIER)
 +[    21.259500] chat: abort on (ERROR)
 +[    21.260000] chat: timeout is 10 s
 +[    21.260000] chat: expect ()
 +[    21.260000] chat: 
 +[    21.260000] chat: -- got it
 +[    21.260500] chat: send ATE0
 +[    21.260500] chat: expect (OK)
 +[    21.266500] chat: ^M
 +[    21.269000] chat: OK^M
 +[    21.269000] chat: -- got it
 +[    21.269000] chat: send AT+COPS=2
 +[    21.269500] chat: expect (OK)
 +[    21.296500] chat: ^M
 +[    21.298500] chat: OK^M
 +[    21.299000] chat: -- got it
 +[    21.299000] chat: send AT+CGDCONT=1,"​IP","​dream.jp"​
 +[    21.299000] chat: expect (OK)
 +[    21.320000] chat: ^M
 +[    21.322000] chat: OK^M
 +[    21.322500] chat: -- got it
 +[    21.322500] chat: send AT+UAUTHREQ=1,​1,"​user@dream.jp","​dti"​
 +[    21.322500] chat: expect (OK)
 +[    21.347500] chat: ^M
 +[    21.350000] chat: OK^M
 +[    21.350000] chat: -- got it
 +[    21.350000] chat: send AT+COPS?
 +[    21.350000] chat: expect (OK)
 +[    21.358500] chat: ^M
 +[    21.364000] chat: +COPS: 2^M
 +[    21.365500] chat: ^M
 +[    21.367500] chat: OK^M
 +[    21.367500] chat: -- got it
 +[    21.368000] chat: send ATD*99***1#
 +[    21.368000] chat: expect (CONNECT)
 +[    21.939500] chat: ^M
 +[    21.944500] chat: CONNECT^M
 +[    21.944500] chat: -- got it
 +[    22.938500] pppd: sent [LCP ConfReq <​asyncmap 0x0>]
 +[    22.968000] pppd: rcvd [LCP ConfReq id=0x1 <​asyncmap 0x0> <auth pap> <magic 0x3f9c9eae>​ <​pcomp>​ <​accomp>​]
 +[    22.968500] pppd: sent [LCP ConfAck id=0x1]
 +[    22.984500] pppd: rcvd [LCP ConfAck id=0x0]
 +[    22.985000] pppd: sent [PAP AuthReq id=0x0 user="​user@dream.jp"​ password=<​hidden>​]
 +[    23.032500] pppd: rcvd [PAP AuthAck id=0x0 ""​]
 +[    23.033000] pppd: PAP authentication succeeded
 +[    23.033000] pppd: sent [IPCP ConfReq id=0x0 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>​]
 +[    29.037000] pppd: sent [IPCP ConfReq id=0x0 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>​]
 +[    29.082500] pppd: rcvd [IPCP ConfReq id=0x1]
 +[    29.082500] pppd: sent [IPCP ConfAck id=0x1]
 +[    29.099500] pppd: rcvd [IPCP ConfNak id=0x0 <addr 100.71.39.158>​ <ms-dns1 202.231.208.71>​ <ms-dns2 202.231.208.72>​]
 +[    35.076500] pppd: sent [IPCP ConfReq id=0x1 <addr 100.71.39.158>​ <ms-dns1 202.231.208.71>​ <ms-dns2 202.231.208.72>​]
 +[    35.082500] pppd: rcvd [IPCP ConfReq id=0x1]
 +[    35.083000] pppd: sent [IPCP ConfAck id=0x1]
 +[    35.134500] pppd: rcvd [IPCP ConfAck id=0x1 <addr 100.71.39.158>​ <ms-dns1 202.231.208.71>​ <ms-dns2 202.231.208.72>​]
 +[    35.134500] pppd: local  IP address 100.71.39.158
 +[    35.135000] pppd: remote IP address 10.64.64.64
 +[    35.135000] pppd: primary ​  DNS address 202.231.208.71
 +[    35.135500] pppd: secondary DNS address 202.231.208.72
 +[    35.135500] pppd: DNS server added.
 +</​code>​
 +
 +ifconfig で確認ができます。
 +
 +<​code>​
 +nsh> ifconfig
 +ppp0    Link encap:TUN at UP
 +        inet addr:​100.71.39.158 DRaddr:​0.0.0.0 Mask:​0.0.0.0
 +
 +
 +lo      Link encap:Local Loopback at UP
 +        inet addr:​127.0.0.1 DRaddr:​127.0.0.1 Mask:​255.0.0.0
 +
 +
 +             ​IPv4 ​  ​TCP ​  ​UDP ​ ICMP
 +Received ​    ​0000 ​ 0000  0000  0000
 +Dropped ​     0000  0000  0000  0000
 +  IPv4        VHL: 0000   Frg: 0000
 +  Checksum ​  ​0000 ​ 0000  0000  ----
 +  TCP         ACK: 0000   SYN: 0000
 +              RST: 0000  0000
 +  Type       ​0000 ​ ----  ----  0000
 +Sent         ​0000 ​ 0000  0000  0000
 +  Rexmit ​    ​---- ​ 0000  ----  ----
 +
 +nsh> ​
 +</​code>​
 +
 +\\
 +
 +ping で通信の確認もできます。
 +
 +<​code>​
 +nsh> ping -c 5 www.yahoo.co.jp
 +PING 183.79.250.123 56 bytes of data
 +56 bytes from 183.79.250.123:​ icmp_seq=0 time=193 ms
 +56 bytes from 183.79.250.123:​ icmp_seq=1 time=192 ms
 +56 bytes from 183.79.250.123:​ icmp_seq=2 time=192 ms
 +56 bytes from 183.79.250.123:​ icmp_seq=3 time=190 ms
 +56 bytes from 183.79.250.123:​ icmp_seq=4 time=189 ms
 +5 packets transmitted,​ 5 received, 0% packet loss, time 5005 ms
 +nsh> ​
 +</​code>​
 +
 +\\
 +
 +切断するときには、pppd のプロセスを KILL します。
 +
 +<​code>​
 +nsh> ps
 +  PID GROUP PRI POLICY ​  ​TYPE ​   NPX STATE    EVENT     ​SIGMASK ​  STACK COMMAND
 +    0     ​0 ​  0 FIFO     ​Kthread N-- Ready              00000000 000000 Idle Task
 +    1     1 224 FIFO     ​Kthread --- Waiting ​ Signal ​   00000000 002028 hpwork
 +    2     ​1 ​ 50 FIFO     ​Kthread --- Waiting ​ Signal ​   00000000 002028 lpwork
 +    3     1 100 FIFO     ​Task ​   --- Running ​           00000000 004076 init
 +    4     4 100 RR       ​Task ​   --- Waiting ​ Semaphore 00000000 001964 pppd -a dream.jp -u user@dream.jp -p dti
 +nsh> kill -15 4
 +nsh> ​
 +</​code>​
 +
 +<​code>​
 +nsh> dmesg
 +[   ​174.989000] pppd: Connection Terminated.
 +[   ​178.991000] chat: expect ()
 +[   ​178.991000] chat: 
 +[   ​178.991500] chat: -- got it
 +[   ​178.992500] chat: send ATE0
 +[   ​178.992500] chat: expect (OK)
 +[   ​178.998500] chat: ^M
 +[   ​179.001000] chat: OK^M
 +[   ​179.001000] chat: -- got it
 +[   ​179.001000] chat: send AT+COPS?
 +[   ​179.001000] chat: expect (OK)
 +[   ​179.008500] chat: ^M
 +[   ​179.024000] chat: +COPS: 2,​0,"​NTT DOCOMO",​7^M
 +[   ​179.025500] chat: ^M
 +[   ​179.027500] chat: OK^M
 +[   ​179.027500] chat: -- got it
 +[   ​179.028000] chat: send AT+CGACT?
 +[   ​179.028000] chat: expect (OK)
 +[   ​179.036000] chat: ^M
 +[   ​179.043500] chat: +CGACT: 1,1^M
 +[   ​179.045000] chat: ^M
 +[   ​179.047000] chat: OK^M
 +[   ​179.047000] chat: -- got it
 +[   ​179.047500] TIOCMBIC(TIOCM_DTR) -> 0
 +
 +nsh> ifconfig
 +lo      Link encap:Local Loopback at UP
 +        inet addr:​127.0.0.1 DRaddr:​127.0.0.1 Mask:​255.0.0.0
 +
 +
 +             ​IPv4 ​  ​TCP ​  ​UDP ​ ICMP
 +Received ​    ​0006 ​ 0000  0001  0005
 +Dropped ​     0000  0000  0000  0000
 +  IPv4        VHL: 0000   Frg: 0000
 +  Checksum ​  ​0000 ​ 0000  0000  ----
 +  TCP         ACK: 0000   SYN: 0000
 +              RST: 0000  0000
 +  Type       ​0000 ​ ----  ----  0000
 +Sent         ​0006 ​ 0000  0001  0005
 +  Rexmit ​    ​---- ​ 0000  ----  ----
 +
 +nsh> ​
 +</​code>​
 +
 +\\
 +
 +===== アプリケーションに組み込む場合 =====
 +
 +''​apps/​examples/​pppd/​pppd_main.c''​ を参考に、アプリケーションに組み込んでください。
 +
 +\\
 +
  
xg_series_devel/ublox_lara/start.txt · 最終更新: 2018/08/22 18:41 by admin