Ublox ZED-F9PをRaspberry Piで使う【シリアル接続編】
はじめに
ZED-F9PにDocomoのRTK補正信号を送信し
UDPで補正されたNMEA情報を送信するユニットを作成したので
作り方をメモ
ZED-F9Pの設定とかは出来る前提で話を書いています。
リクエストああればその辺の話も書くかも・・・
ハード構成
下図のとおりです。
今回はZED-F9PとRaspberryPi4との接続の部分を記載します。
必要な設定
プログラムの構成をNMEAパケット側とRTCM3パケット側で分けたかったので
この事例ではUARTを2本使用します。
そのために下記の操作が必要となります。
1.40pinのGPIOのUART端子を有効化
2.シリアルコンソールの無効化
3.GPIOのUARTをPL011に変更
4.UARTの追加
1.40pinのGPIOのUART端子を有効化
GUIで「RaspberryPiの設定」->「インターフェース」で下記のように設定
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)
Author And Source
この問題について(Ublox ZED-F9PをRaspberry Piで使う【シリアル接続編】), 我々は、より多くの情報をここで見つけました https://qiita.com/tom_eng_ltd/items/39f331dd386174d5e516著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .