Open2

STM32にgpsモジュールを接続しLoRaで送受信

ピン留めされたアイテム
ukiriukiri

e220とのシリアル通信の確認はSerialDebug Tool 3 を使用した。右側の設定値に注目。ボーレート等はnucleoに設定した値を使う。COMの番号は次のようにして調べる。
SerialDebug Tool 3 の画面
SerialDebug Tool 3 の画面
SerialDebug Tool 3 にどのCOMポートで通信するかをセットする必要があるが、確認のためにはUSB Device Tree Viewer を使用した。
USBケーブルをPCに抜き差しすると項目の表示が消えたり現れたりするので、それをもとにCOMの番号を調べる。筆者の場合はハイライトしてある項目が出現したため、COM14であるとわかる。
USB Device Tree Viewer の画面
USB Device Tree Viewer の画面
ここからテストボードの収納方法について説明する。
nucleo基板をタッパーに入れ、LoRa基板とGPSアンテナを外に出し、タッパーのふたにガムテープで固定した。テストちゅにコネクタが抜けないように遊びを持たせる必要がある。
nucleoをタッパーに入れた状態
nucleoをタッパーに入れた状態
フタをした状態
フタをした状態
すべて固定した最終的な状態
すべて固定した最終的な状態
e220各レジストリの意味
e220各レジストリの意味

コネクション

nucleo E220 GPS
CN6
3V3 VCC
5V VIN
GND GND
GND GND
CN5
A2 M0
CN8
D12 M1
D11 AUX
D9 GPS_TXD
D8 RXD
CN9
D2 TXD
CN10
UART6_TX GPS_RXD

CN10
CN10

cubeideの設定手順
GPIO

UART1





UART2





UART6




コードは下記。
https://github.com/u1kiriyama/Nucleo-401RE_LoRa_GPS_DMA_send

e220の仕様、書き込み方

ukiriukiri

stm32
セレクションガイド
https://qiita.com/gwappa/items/a96a80c568e91a5aa905
lora
https://www.st.com/resource/ja/flyer/flnucleolrwan.pdf
hal
https://www.disca.upv.es/aperles/arm_cortex_m3/llibre/st/STM32F439xx_User_Manual/index.html
https://www.st.com/resource/en/user_manual/um1725-description-of-stm32f4-hal-and-lowlayer-drivers-stmicroelectronics.pdf
low layer
https://www.stmcu.jp/design/document/training-materials_j/55357/
https://rappy.hatenablog.com/entry/2020/05/22/204512

B-L072Z-LRWAN1
https://www.st.com/en/evaluation-tools/b-l072z-lrwan1.html
開発環境としてkailなどが推奨?されている。
LoRaモジュールSX1276(spi通信)が搭載されているので一見楽そうだが高機能過ぎて扱いが大変そう。
http://blog.aha.nl/2018/02/getting-started-with-stm32-lora.html?m=1

NUCLEO-F401RE
RM0368 : Reference manual
PM0214 : プログラミングマニュアル
https://www.stmcu.jp/design/hwdevelop/nucleo/51870/
データシート
https://www.st.com/content/ccc/resource/technical/document/datasheet/30/91/86/2d/db/94/4a/d6/DM00102166.pdf/files/DM00102166.pdf/jcr:content/translations/en.DM00102166.pdf

NUCLEO-WL55JC1
次の候補。B-L072Z-LRWAN1より新しく開発環境が整っており使いやすいらしい(Claudeによれば)。loraチップも内蔵されておりペリフェラルを消費しない。

stm32以外
pic
ch32
fpga tang nano 9k

lora
loraについて
https://www.sghoslya.com/p/lora_9.html?m=1
まだみてないが
https://m.youtube.com/c/mobilefish/about
LoRaを使う上での注意。「始めに」
https://zenn.dev/ichirowo/articles/0fb4c7f9eec010

e220_900t22d
シンプルにuartで通信したかった。入手性がよさそうなので下記を選定した。だが、通信が確立せず色々試すハメになった。結局はアドレスとチャンネルが何でもいいわけではないということらしい。後日詳細を調べる。M0, M1 がLowになっていない状態で通信を試みていたかも。
基本的な通信方法が書いてある。usbドングルのサイトだが評価ボードでも適用できる。
https://flint.works/p/flint-lora-usb/
詳細
https://dragon-torch.tech/wp-content/uploads/2024/04/data_sheet_Rev1.6.pdf
usbドングル FLINT lora無線usbドングル
https://flint.works/p/flint-lora-usb/
マルツで購入
https://www.marutsu.co.jp/pc/i/2844611/?srsltid=AfmBOoqBZt4rRW2M7n-M6omyMU2GmS8PW7Cs3U-AeTHGwZn5gknJw-L-

評価ボード
usbシリアル変換(3.3V)ケーブルでパソコンと接続し、下記に記載のコマンドを実行してアドレス・チャンネルの設定を行う。トランスペアレントモードはアドレス0xff, 0xff、チャンネル0x00でないとダメ?もう少し条件は緩そうだから何かしらありそう。M0, M1はフロートだとweakly pull up されておりコマンド受付モードなのですんなりレジスタ設定ができる。送受信モードは両方Lowにする必要があるのでブレッドボードを経由して配線した。
https://www.marutsu.co.jp/pc/i/2878436/

air checker c3/usb
2個入りになっていて電波強度を測定できる。
loraモジュールの使い方を探る上ですぐに役立つものではない。esp32が搭載されておりいじれるようにはなっている。ヘッダファイルがなくて動かせなかった(?)
https://dragon-torch.tech/cat-components/other/dtp-accu/#03
https://dragon-torch.tech/wp-content/uploads/2024/05/airchecker_usage_guide_20240502.pdf

sx1276
B-L072Z-LRWAN1 に搭載
https://cdn-shop.adafruit.com/product-files/3179/sx1276_77_78_79.pdf

spi通信
RFM95W(SX1276搭載)
https://www.marutsu.co.jp/pc/i/27348083/
Wio-E5開発キット
https://www.marutsu.co.jp/pc/i/2789864/
Wio-E5 mini Dev Board
https://www.marutsu.co.jp/pc/i/2784674/
LORA MODULE (868MHZ) V1.1 (M5Stack)
https://www.marutsu.co.jp/pc/i/47502194/

gps
NMEAセンテンスについて。
https://ales-corp.co.jp/technical-information-nmea/
googleマップなどの座標とは表示形式が異なり(度数を小数で表示しているか、分秒で表示してきるか)、変換が必要。NMEAセンテンスのGPGGAなどの座標の度以下を60で割るとgoogleマップなどで使える値になる。

neo-6m
uart。

spi通信のモジュール
Neo-M8Nを搭載したものが候補に入ってくるが安いものがない。