LoginSignup
3
1

More than 3 years have passed since last update.

Ublox ZED-F9PをRaspberry Piで使う【シリアル接続編】

Posted at

はじめに

ZED-F9PにDocomoのRTK補正信号を送信し
UDPで補正されたNMEA情報を送信するユニットを作成したので
作り方をメモ

ZED-F9Pの設定とかは出来る前提で話を書いています。
リクエストああればその辺の話も書くかも・・・

ハード構成

下図のとおりです。
今回はZED-F9PとRaspberryPi4との接続の部分を記載します。
raspi.png

必要な設定

プログラムの構成をNMEAパケット側とRTCM3パケット側で分けたかったので
この事例ではUARTを2本使用します。
そのために下記の操作が必要となります。

1.40pinのGPIOのUART端子を有効化
2.シリアルコンソールの無効化
3.GPIOのUARTをPL011に変更
4.UARTの追加

1.40pinのGPIOのUART端子を有効化

GUIで「RaspberryPiの設定」->「インターフェース」で下記のように設定
2021-03-14-004538_1920x1080_scrot.png

2.シリアルコンソールの無効化

上図参照

3.GPIOのUARTをPL011に変更

標準のままですとGPIOに接続されているUARTがminiUARTなのでPL011に変更します。
miniUARTでも動きましたが機能制限があるようなので変更しておきます
詳しくは下記をお読みください。
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2835/BCM2835-ARM-Peripherals.pdf

使用したいUART0をBluetoothのモデムが使用しているので 
「/boot/config.txt」に下記を追加してBluetoothを無効化します。

dtoverlay=disable-bt

 miniUARTにBluetoothを割り当てることも出来るようですが
 ボーレートが低下したり不具合もありそうなので無効化しておきます。

 次にモデムを初期化するシステムサービスを下記コマンドで無効化して
 モデムを接続しないようにします。

$ sudo systemctl disable hciuart

一度再起動します・・・

「/dev」の中を確認して

serial0 -> ttyAMA0
serial1 -> ttyS0

になっていれば完了です。

4.UARTの追加

普通に考えればUART2を追加すると思うのですがUART2のTX端子が遠いので
UART0のRX「GPIO15」に近いUART3を有効化させます

「/boot/config.txt」に下記を追加します。

dtoverlay=uart3

「/dev」の中を確認して「ttyAMA1」が追加されていれば成功です。

次回

シリアルでNMEAのパケットを受信してUDPで送信したいと思います。

おまけ

追加可能なシリアルは4個のUART2,UART3,UART4,UART5で下記で設定可能です。
「*」は有効にしたいUARTの数字です

設定

・フロー制御無し
dtoverlay=uart*

・フロー制御有り
dtoverlay=uart*,ctsrts

ピン割り当ては下記のようです

UART2 Tx(GPIO0) Rx(GPIO1) CTS(GPIO2) RTS(GPIO3)
UART3 Tx(GPIO4) Rx(GPIO5) CTS(GPIO6) RTS(GPIO7)
UART4 Tx(GPIO8) Rx(GPIO9) CTS(GPIO10) RTS(GPIO11)
UART5 Tx(GPIO12) Rx(GPIO13) CTS(GPIO14) RTS(GPIO15)
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1