NanoVNA に capture コマンドを追加してみる
- PR https://github.com/ttrftech/NanoVNA/pull/8/files (マージしてもらいました)
NanoVNA の実装を軽く読んだ感じでは画面のキャプチャをとる機能がなさそうだったので、実装を書いてみた。測定器はとにかくキャプチャをとりたいし、せっかく綺麗にレンダリングされているので、できれば保存したい。
中華 NanoVNA ってなんなのか? またはファームの歩きかた | tech | nanovna - 氾濫原 にも少し書いたけど、画面描画はメモリ消費を抑える実装になっており、MCU 側で画面バッファを全て持っているわけではない。
そこで、使っているLCDドライバの ILI9341 のデータシートを見てみたところ、ドライバ側で持っているメモリ内容を SPI 経由で読み出せそうであったので、そちらを利用した。
メモリ内容を読めるといっても、MCU 側のメモリ容量的に全てを一気に読むことはできないので、一部読んではUSBに流し、一部読んではUSBに流すというのを繰り返す実装にした。
ハマったところ
SPIを受信するコードから書く必要があったけど、STM32 に慣れていないせいでかなりハマってしまった。
まず FRXTH フラグを適切にセットしていないと RXNE フラグがセットされないので RXNE を見て無限ループさせるとそこでスタックする。
あとは (おそらく) 受信バッファ溢れ (オーバーフロー OVR )の場合で、受信バッファが溢れた場合、あとからきたデータで上書きされるのではなく、単に全て捨てられるようなので、執拗に OVR をクリアするような実装を書く必要があった。もっとスマートに書けるのかもしれない。
関連エントリー
- NanoVNA のユーザーガイド(マニュアル)を書いた https://cho45.github.io/NanoVNA-manual/ repo: https://github.com/cho45...
- S-A-A-2 (NanoVNA V2) を手に入れてみた NanoVNA V2 という名前で開発されているが、ややこしいので開発コードである S-A-A-2 (Simple Antenna Anal...
- 1.35GHz-9.5GHz 基板ログペリアンテナ Aliexpress で「15W 5-6dB 1.35GHz-9.5GHz UWB Ultra Wideband Log Periodic ...
- NanoVNA の測定メモ 前につくったアッテネータを測ってみる https://lowreal.net/2016/03/13/1 NanoVNA だと 300MHz ...
- NanoVNA のリモート化 (Wi-Fi 中継) アンテナの調整をする場合、給電点 (測定点) と調整点は離れていることが多いなというコンテキストで、NanoVNA の Bluetooth ...
