過去のデータを再表示
周波数対SWRの変化特性をグラフにし、このデータをSDカードに保存し、PCでエクセルデータとして取り込む状態まで完了していましたが、せっかくSDカードにセーブできましたので、このデータを、再度アナライザーのLCD画面に表示する事にトライしました。
この機能を追加するのは、純然たるソフトウェアだけの世界となりますので、ハードの変更は一切なく、ただひたすらにC言語に苦しみながらPCと向き合う事になってしまいました。
左上の画像がSDカード内のSWRカーブファイル名を表示させた状態で、画像ではSWR00044.CSVを選択している状態です。 この状態でワイドキーを押すと右上の画像のように、グラフデータをLCD上に表示します。 表示したデータは、前回セーブした14MHzのスカイドアアンテナの特性です。
左の画像は私の21MHz用アンテナを3つのMTUでそれぞれチューニングした時のSWR特性をグラフで表示させたものです。 SDカードにセーブして有りましたので、それを呼び出してLCD上に再表示させました。 この画像では、3本のSWRカーブが3色で描画されていますが、マイコンの仕様としては最大で7本のカーブを7色で描画できます。 また、読み込んだファイル名も表示させる事にしました。
ここまでの機能を入れ込んだ状態で、ROMエリアは91%、RAMエリアは85%となりました。まだ、バグや使い勝手の悪いところもありますので、それらの対策をして、ギリギリの容量かも知れません。
このアナライザーの場合、SDカードにセーブ出来るファイル数はSDカードの容量が上限を決めます。 しかし、検索出来るファイル数は、現在は20個までです。デバッグの進行状況を見ながら、RAMエリアに余裕があれば増やす事はできますが、それでもLCDの画面サイズの関係から最大50個くらいと思われます。 また、読み込み順序もFAT32のファイルシステムで記録された物理的なアドレス順になります。 通常は古いファイルから先に検索されますので、仮に50個以上のファイルをセーブしていても、新しいファイルは表示できなくなります。
このような条件から、SDカードのファイルをオープンしてLCDに表示した後、そのファイルを手動で削除する機能を追加しました。 グラフが表示された状態で左の画像のごとく、確認メッセージを出した上で、DOWNキーで削除できます。 この機能を追加した事により、削除する為にSDカードをいちいち抜いてPCに接続する必要も無くなります。
ファイル名が連番ですので、古い番号のファイルの中身が、どのアンテナのどのような条件でのSWRカーブであったかは、多分覚えていないでしょうから、必要なファイルはせっせとPCにコピーして置けば良く、その必要がないなら、古いファイルはせっせと削除すれば良い事になります。 RAM容量が限られているマイコンではやむを得ない処理でしょう。
10月31日追記
その後、2週間くらいデバッグを繰り返して、バグも収束してきましたので、表示可能なファイル名数を最大50まで増やす事にしました。 左の画像のごとく、LCD上でのディスプレーの都合でファイル名は連番の部分のみとしましたが、不便はないでしょう。 ファイル数が50を超えている場合、この画面上でなんらかの警告を出す事にしています。 常に50個以下にしておかないと、最新のファイルが検索できなくなります。 この状態で、ROMエリアは91%、RAMエリアは88%の使用となりました。
マイクロチップのMLAを使ったFILEIOアプリでファイル表示や、特定のファイルの読み込み方法は PICマイコンでSDカードのファイルを読み込む で紹介しています。
ここまでの基板の状況は以下のようになりました。 一番左の基板表側はスルーホールの部品だけが目立ちますが、真ん中のこの基板の裏側はチップ部品よりジャンパーワイヤーだけが目立ちます。 一応、高周波回路は最短で構成し、単純なDC電源やDC信号ラインはジャンパー線でまかなったので、発振回路としての動作は安定しております。 RF回路を横断しているいくつものジャンパ-線は、RF的にはすべてGNDレベルの線なので、写真では無造作に結線されているように見えますが、一応、元プロフェッショナルな作業は行っています。
ソフトのバグも収束ぎみですので、これからケースに収納する為の検討をする事にします。
アンテナアナライザーの製作(ケース入れ) へ続く。