GNSSモジュールを試用する20 -ublox SAM-M10Qはぢめました-

●入信


ついに…ねむいさんもublox教に入信しました!!!



ubloxのM10チップが使用されたSAM-M10Qです!!!!
そのSAM-M10Qが乗ったモジュールをAliexpressのMAKESYS社から
直接購入しました!


2013年から10年間使用し続けたGms-G9モジュールとのスペック
比較です。10年たつと隔世の感がしますね…特に消費電力の
低さが際立ってますね〜

ちなみに2023年現在かつてのみちびき一号機(PRN193)は引退して
電波は受信ができなくなり、Gms-g9に搭載されたMT3333チップは
現在では二号機、四号機のL1C/A信号しか受信ができず、みちびき
初号機後継機種のQZS1R(PRN196)やGEOと呼ばれる静止軌道Verの
みちびき(PRN199)の受信が不可能です。

そういう経緯もあり、このタイミングでublox教に入信した次第で
ございます。




さて、前途の通りねむいさんはSAM-M10Qが乗った出来合いの
ボードモジュールを購入したわけですが最低限のUARTの抵抗保護
や+5V入力を想定したレギュレータなどが搭載されております。


が、別に+5Vではなくとも"3V3端子"に3.3Vを直接ぶちかましても
全く問題なく使用が可能です(UARTの出力は+5V入力でもLVTTL)


●まずは動作比較してみよう


お次は実際の受信比較を行いました。場所は宇治川のほとりです!
AndroidのタブレットにSTM32 GNSSTr@ckerの仮想COMで接続してGms-g9,
SAM-M10Qモジュールと通信してどのみちびきが受信できるか比較
してみます。ついでにAndroidタブレットの内臓GPSモジュールも
比較しましょう。

今回の比較にあたり、内蔵GPSも仮想COM接続のGPSも使用できる
"GPS Connector"というアプリを使用しました。


まずはAndroidタブレットの内蔵GPSです。
御覧の通りPRN194,195,196が受信できてます。
196は初号機後継のQZS1Rです。Alldocubeっていう安物タブレット
でしたがなかなかやりますね。




お次はGms-g9です。STM32 GNSSTr@ckerの仮想COM機能で接続します。
Androidのアプリも内蔵と外付けと切り替えられるのが優秀です。


御覧の通り残念ながらPRN196の初号機後継機は受信ができませんでした。
MT3333はこれが限界か…!?


最後にSAM-M10Qです!!!


おおっ!衛星表記がちゃんと日本国旗の"QZSS"になってる!!!
2->PRM194,3->PRN195と読み替えてくださ…i…ん?
あれ…7ってPRN199のGEOですか・・・・雄々っ・・
本来なら4のPRM196も見えるはずですがここには映ってませんでした。


●さぁ実践DA!
そしてここからが本番です!!!111!!!
こら!!!そこ!!ページ閉じるな!!!!

ねむいさんの北陸侵攻はついに最終局面を迎え、目的の金沢兼六園
へと王手をかけておりましたが今回でついに兼六園に行きつきます!

ついでにSAM-M10Qを使ったロガーとCanmore製GP-102とのロギング
比較も行ったりします!!!



●2023.06.10 小松〜金沢

早朝の北陸小松IC…
ねむいさん東海自然歩道攻略依頼10年ぶりに高速バスを利用しました。


いざ行かん北陸道!


前田家ゆかりの小松天満宮です。


石川県の道路は赤い色が多いですが融雪装置の"さび"だそうです。


かつて駅だった寺井図書館です。


微妙に道に迷って手取川で北陸道に復帰して橋を渡ります。


だんだん日が昇ってきました…あづい


白山市ゆえに白山神社がやたら多いです


道の駅めぐみ白山で小休憩です。


国道にまとわりつくように北陸道が続きます。


松任駅近くの千代尼塚です。


怖い…


松任駅と謎のうんこです…
なんでうんこ…


再び国道北陸道です…
太陽光線が痛い…・


微妙にルートミスして大乗寺跡です。


北陸鉄道の終点野町駅です。
兼六園までもうすぐ!



昔ながらの風情があるにしの茶屋町です。


芭蕉の辻です!!うぉぉもうすこし!!


…ッッ北陸道のひとつの起点、香林坊に到着です…!!
ここから兼六園に向かいます。


金沢神社から兼六園に入ります…
なお、兼六園に来たのは30年ぶりです…




ぅおおおおおおおおおおお
懐かしすぎて全然覚えてない…
30年前来たときは真冬でしたしなおさらですね…


兼六園で一番有名なところです


兼六園は少し高台にあります。


カメラ構えても逃げるどころかポージングする鳥さん



兼六園を離れてお次は金沢城にむかいます。


本丸へ向かいます。


本丸は現在は自然の宝庫になっています。


櫓から金沢市街を見る


金沢譲を離れます。


人でごった返す近江町市場を抜けていきます


金沢駅手前の鼓門です…!
ついに…己の足で…敦賀から金沢までたどり着きました…
北陸新幹線が開通するよりもずっと先に…やったぞ!!!


そして本場の金沢ゴーゴーカレーも食す!!!


さらにさらに!
本計画の最終目的だった株主優待拳でグリーン車!!


そう、ここが北陸、金沢DA!


家族へのお土産もたくさん買い込んで超快適なサンダーバードの
しかもグリーン車で余裕の京都帰還をキメました…!カンペキダ!
というところで悲願の新幹線開通までに金沢到達をk…



おっとと肝心のGNSSのログの比較のほうですが距離が長すぎて
比較用のGPSロガーGP-102と重ねたらよくわからないので要所要所で
拡大していきます。


最初のスタート地点でコンビニによって朝飯を食べましたがGP102のログが
飛んでるのに対してSAM-M10Qはまとまってますね〜


香林坊から兼六園、金沢城周辺のログ比較です。
こちらもSAM-M10Qのほうがある程度まとまってますね…


さらに拡大です…本丸周辺(画像中央)の差を見ると歴然ですね…!
SAM-M10Qほんとすいごいってね



ところでSAM-M10Qはみちびきをどのレベルまで受信できていたのか!?
エクセル利用して衛星IDを抽出してみました。
NMEAver4.11は"$GQGSV"にセンテンスが変わってPRNも従来のものから
読み替える必要がありますが…!


初号機後継機も静止軌道版(GEO)みちびきもちゃんと補足しておりました!
やったね☆
ちなみに生ログはこちらになります。


というところでubloxのSAM-M10Qのすさまじい能力に感嘆としております!
Gms-g9が来た時も驚きましたが10年の歳月の進化はやはりすごかったです…!
そしてubloxは消費電流が多いという偏見も払拭されて私のGNSSロガーも
さらなるパワーアップを果たすことができました!!!!
これからもばりばり使いまくっていきますのでヨロシク!

いろいろ試す58

●ブログ画像の復活状況について
ねむいさんのブログではDropBoxを画像用サーバとして活用して
おりますが、さる2016年にDropBoxの仕様が変わって直りんが出来なく
なってしまい2012~2016年途中までの画像が見えなくなっておりますが、
悪いことに最初期の2009~2012年ごろのOneDriveの画像も表示できなく
なってしまいましてこちらの対応にも手を焼いております…

現在は2010年分まではOnedriveからDropBoxに移動して再び表示できる
ようにしておりますが膨大な作業量なので皆様首を長くしてお待ち
願います…。ああ先は長い…

●Picoscope7がアップデートされたが…
先月、Picoscopeのソフトウエアが6から7にメジャーバージョンアップ
されましたが、不安定で使い物になりませんでした。
今月に入って7.1.2にバージョンアップされて多少は安定したかな?
と思ったのですが…

I2Cなどのシリアルデコーディングをプリセットされたファイルを
ダブルクリックして起動したらすぐ固まってプログラムが落ちて
しまいました…orzダメじゃん!!
というわけで安定して使えるようになるまで6の最終版使いましょ


●STM32用I2Cタイミングレジスタ計算機アップデート
自分用に作ってきたSTM32向けI2Cレジスタ計算機ですが細かい修正を
加えて現在はGithub上で管理をすすめております


今回は固定値扱いしてきたTrise,Tfallを自由に設定できるようにしました。
デフォルト値は100,10としました。単位はnsecです。

計算機のコアの部分はSTM32U5のプロジェクトにあるI2C計算機をベース
としておりますが、nomalmode(100kHz)のTriseが640nsecに設定されていて
ちょっとおかしい(波形も)のでSTM32F3&STM32F0向け計算機の値を準拠と
しました。


うーむぴったりの値にならないばかりかちょっとクロック周波数が
どうしても遅めに出てしまう傾向がありますね…
なお、CubeMXも同じ傾向があるので細かいところを突き詰めたい方は
ツールでざっと算出して残りはオシロとにらめっこして突き合わせて
行くのがよいでしょう。っていい加減な私。


●STM32でI2C(マスター)が動…かねぇ!!!1!
I2Cバスは昨今の電子工作でセンサや表示デバイス等で多用されている
インターフェースの一つですが、STM32もI2Cをハードウエアレベルで
サポートしております。しかしSTM32でマスターとして使用する際には
下記の大きな注意点があります。

STM32はI2C基本的にスレーブデバイスとして動いている。
⊇藉化の手順を間違えるといきなりBUSYフラグが立ってしまう。


,砲弔い討STM32の全種のリファレンスマニュアルに明記されて
おります。スタートビットを自ら生成することによってマスターに
切り替わることになります。
データのやり取りが終わったら自動的にスレーブに戻ります。

で、このスレーブとしての動作中に外部からスタートビットに相当
する信号が偶然生成されてしまうとBUSYフラグがおっ立ってしまう
ということになります!!!!

これは内部操作からにも波及し、△両態が成立してしまいます。
つまりGPIOの操作をするだけでBUSYフラグがおっ立ってしまうわけです。


△隆岼磴辰深蟒腓龍饌療例とは、使用するI2CのGPIOポートのAlternate
Functionをする前にI2Cのクロックを有効にしてしまうことです。
これをやるとSTM32F1,STM32F2,STM32F4では100%の確率でBUSYフラグが
おっ立ってしまいます…もうビンビンに…!


実際にBUSYフラグが立ってしまった画像です。
STM32F411-Nucleoで確認していますがI2Cのクロックを有効にした
後にGPIOの設定を行うとI2Cの設定を何もしてないのにSRレジスタが
2(BUSYフラグON)になってしまいます。



そんなわけでBUSYフラグをおっ立てずにI2Cを確実に動作させる手順は
以下のようになります。

1.GPIOクロック有効
2.GPIOの設定(AF含む)
3.I2Cのクロック有効
4.I2Cの設定


上記順番を守るといきなりI2Cが動…かねぇ!という悲劇の発生確率が
下がると思います。特にバグコード生成器のCubeMXを使う際は生成
コードがこの順番を守っているか確認し、さらにオシロスコープで
実際のI2Cバスの波形を必ず確認するようにしてください!!!

ちなみにSTマイクロの日本サイトも初期化順番の注意点にとして
同じような記述
があります。

私の知る限り誤った手順でBUSYが立ってしまう品種はタイミングレジスタの
記述が簡素なSTM32F1,STM32F2,STM32F4,STM32L1のみとなりますが、
確実な動作のために他の品種でも上記初期化手順を守るべきだと思います。

Go to top of page