OSQZSS

オープンソース準天頂衛星(QZSS)受信機

PocketSDRとgps-sdr-sim

2021-12-27 10:47:14 | ソフトウェア受信機
QZSS-1Rから試験的に放送されていたL1C/B信号はもう停止しているようですが,
以前にgps-sdr-simでL1C/B信号が生成できるように改造していたことを思い出しました.

OSQZSS:L1C/B信号

L1C/B信号の拡散符号はGPSと同じゴールド符号なので,G2 Delayのチップ数を変更するだけで,
QZSS-1RのL1C/B信号のPRN203に変更できます.

gps.gov:Pseudorandom Noise Code Assignments

早速修正して,gps-sdr-simでL1C/B信号を生成.bladeRFでTXした信号をPocketSDRで受信してみました.





PocketSDRのおかげで,様々なGNSS信号の確認が簡単にできてとても快適です.
随分と放置しているgps-sdr-simですが,そろそろ他のGNSS信号にも対応させないといけないかな.
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PocketSDRのRebuild

2021-12-25 11:34:49 | ソフトウェア受信機
自作のEZ-USB FX2LP Discovery Kit版のPocketSDRでは,GPIOがGNDのときにLEDが
ONになるように設計してしまったため,Firmwareを改造してON/OFFを入れ替えます.

FWフォルダからKeil uVision2のプロジェクトファイルであるpocket_fw.Uv2を開いたところ,
プロジェクトファイルが読み込めないとエラーが出てしまいます.



どうしてだろうとプロジェクトファイルをテキストエディタで開いてみると,改行コードが
LinuxのLFになっていました.どうやらGithubが自動的に改行コードを変換しているようです.



多分これがエラーの原因だろうと,改行コードをWindowsのCR LFに変換しなおしました.



これでuVision2のプロジェクトが無事に起動.Firmwareを改造できます.



P.S. PocketSDRのプロジェクトがrebuildできるようになったので,動作試験のためにhexファイルをRAMに
書き込んでみたところ,ファームウェアは書き込まれているようですが,Product IDがアップデートされず,
Cypress FX2LP No EEPROM Deviceとして認識されたままです.

通常,FX2LPにファームウェアが書き込まれると,自動的にUSBから切り離し,新しくアップロードされた
ファームウェアのVID/PIDで再接続してくれます(renumeration).PocketSDRのプロジェクトでは,
C51のオプションで「NO_RENUM」を指定することで,この機能が動作しないように設定されています.

infineon:FX2LP is not enumerating when vend_ax.hex is downloaded into it. Why?



このオプションを削除することで,無事にrenumerationができるようになりました.

P.P.S. 改造したファームウェアで動作確認.LEDも正常に点灯し,オリジナルのPocketSDRと同じように
動作してくれるようになりました.

とりあえず動くようになったものの,「NO_RENUM」のオプションがどのような状況で必要なのるのか,
いまひとつ理解できていません.



P.P.S. 「NO_RENUM」オプションについて高須さんから情報をいただいたので備忘録。
「NO_RENUM」オプションを入れることでコードサイズを60バイトくらい削減できるようです。
無料で使えるμVision IDEはコードサイズ制限が厳しく、コードサイズが4KBを超えるとエラーで
ビルドできないのですが、このオプションを付けるとビルドできる場合があります。
ファームウェアをEEPROMに書き込み、EEPROMから起動する場合、起動後のVID/PIDの
切り替えは必要ないので、このオプションをつけても問題はありません。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

WindowsでPocketSDR

2021-12-25 09:23:22 | ソフトウェア受信機
高須さんが公開されている多周波数・多システム対応のソフトウェアGNSS受信機であるPocketSDR.
世界的な半導体不足でハードウェアを自作することは難しいものの,PocketSDRで取得した信号データも
公開されているので,信号処理のソフトウェアを試してみることはできます.

そこで,提供されているPythonのサンプルプログラムをWindowsで動かしてみます.
MacOSで動かす手順は,広島市立大学の高橋先生のblogを参照してください.

s-taka.org:PocketSDRすごい

まずはPythonのインストールです.
python.orgのサイトから,最新版のWindows installerをダウンロードします.
https://www.python.org/downloads/windows/



インストーラを起動して,Pythonをインストールします.このときに,"Add Python 3.x to PATH"を
チェックしなくても問題ありません.PATHが通っていなくても,py launcherを使って起動できます.

GAMMASOFT:WindowsユーザーはPythonランチャーの存在を意識しましょう
AsTechLog:Pythonランチャで複数のPython環境を使い分ける

Pythonがインストールできたら,コマンドプロンプトを起動し,PocketSDRのサンプルプログラムを
動かくために必要なライブラリであるnumpy,scipy,matplotlibをpipでインストールします.

> py -m pip install --upgrade pip
> py -m pip install numpy
> py -m pip install scipy
> py -m pip install matplotlib

コマンドプロンプトは,エクスプローラーのアドレスバーに「cmd」と入力することで起動できます.
さらに,コマンドプロンプトを起動したフォルダが,自動的にカレントフォルダになり便利です.

TOMONO Tech-Blog:コマンドプロンプトの起動 | カレントディレクトリ指定

Pythonの準備ができたら,PocketSDRのプロジェクトを一式,githubからダウンロードします.
右上の「Code」ボタンをクリックして「Download ZIP」を選択することで,ダウンロードできます.
https://github.com/tomojitakasu/PocketSDR



ダウンロードしたZIPを展開し,サンプルプログラムのある「python」フォルダからコマンドプロンプトを起動します.
実行したいPythonのスクリプトをpy launcherで指定することで,サンプルプログラムを動かすことができます.



この例では,みちびき1号機後継機が試験的に放送したL1C/Bという新しい測位信号を捕捉しています.
BOC信号のサイドローブが綺麗に見えています.



ちなみに,PocketSDRは,IF信号の場合はサンプリング毎にint8で,IQ信号の場合はサンプリング毎に
IとQの順番でそれぞれint8でサンプリングデータをファイルに保存しているようです.
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

My基板の動作確認

2021-12-23 16:34:25 | ソフトウェア受信機
MAX2771のMy基板をEZ-USB FX2LP Discovery Kitに載せて動作確認.



どうも挙動がおかしいと思ったら,I0とI1の信号を逆に接続していた痛恨のミス.
ソフトウェアで対応できるけれど,スッキリしない.



とりあえずGPS L1C/A信号の受信を確認.次はZYBOに接続してみよう.





コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MAX2771のMy基板

2021-12-22 18:59:40 | FPGA
MAX2771をZYBO Z7に接続できるMy基板も実装しました.
EZ-USB FX2LP Discovery Kitに搭載して,動作確認も可能です.

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PocketSDRのfirmware

2021-12-21 20:22:09 | ソフトウェア受信機
EZ-USB FX2LP Discovery Kit版のPocketSDRに,高須さんの純正PocketSDRの
firmwareを書き込んで動作のチェック.

唯一,LEDの極性が逆だったのが失敗だけれども,それ以外はまったく問題なく
動いているみたいです.

L5信号の受信にも無事に成功.もう何台か実装しようかな.

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PocketSDRの動作確認

2021-12-16 11:14:33 | ソフトウェア受信機
PocketSDRでGPS L1C/Aの受信が確認できました.
とりあえずは動いているけれど,スプリアスが気になるな.









P.S. 1号機の動作確認ができたので,2機目を実装.

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PocketSDRの部品実装

2021-12-14 10:21:48 | ソフトウェア受信機
FX2LPの評価基板に搭載できるように改造したPocketSDRの基板に
部品を実装してみました.



FusionPCBで製造した基板の品質がいまひとつで,特にレジスト開口部の
ばらつきがひどい.ショートしそうで怖いけれど,大丈夫だろうか?

無事に動作してくれますように.
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする