● 実験テーマ77
「簡易オーディオ・FFTアナライザ_V2の、製作実験記」
(テーマ76のモノクロGLCDを、カラーQVGA液晶に置換え、簡易オーディオ・FFTアナライザ_V2としました。)
以下、この実験の顛末記です。
■ 2016.5.14
・前テーマ76で、モノクロGLCDによる簡易オーディオ・FFTアナライザが、何とか形になったので
これを、カラーQVGA液晶(aitendo "UL024TF"使用)表示に置換えようと思う。
とりあえずは、easy_fraから、その液晶変換ユニットを外せば、そのまま差し替えが出来る
ので、直ぐに実験が進められる。
・液晶の解像度が上がるので、文字も含めて、FFT表示の表現力も良くなる。
横軸(周波数軸)は、128dotから、320dotになるので、その内の、256dotを使えば、
ナイキスト周波数(サンプル周波数/2)までの表示が可能になる。
(正確には、FFT分解能(サンプル周波数:Fs/FFTポイント数:N)の、(N/2)
-1倍までが折り返しなしで
表示できる上限になる。例えば、Fs= 32k, N= 512
の場合は、
32k/512 × ((512/2) - 1)= 62.5 × 255= 15.9375kHz となる。)
また、縦軸(パワーレベル軸)は、64dotから、240dotになるので、約4倍になる。
なので今回は、LCDデータを、Y座標に変換する時の割数を無くしてみることしした。(モノクロ時は、1/3にしていた。)
文字の方も、今回は、デビジョン表示の他、下限周波数:0Hzと、上限周波数を表示させてみることにした。
ちょっと心配しているのは、カラーにした時に液晶表示の反応が鈍くならないか?だが・・・
■ 2016.5.15
・まずは、今回作ったコントロール基板と、液晶変換ユニットを、スタック接続させ、カラー表示のテスト・プログラム
を動かしてみた。
以前、easy_fraの時作った、「dsPIC33F_QVGA_TEST.hex」をそのまま書込み動かした。
これは問題無く行く。まあ当然だが。
以下はそのキャラクタ表示テストを行っているところです。
■ 2016.5.16
・モノクロから、カラーQVGA化のプログラム修正は、割と簡単に済んだ。
大きくは、液晶ライブラリを、カラー版のそれ(colorlcd_libdsPICVH.c,
h 及びASCII12dot.h)
に置換えるのと、描画関数をカラー版に置換えればよいだけである。
液晶関係の、TRISレジスタ(入出力を設定)の値は変更なしでいける。(信号名が変わるだけ)
ただ注意しなければいけないのは、カラー版のピクセル描画関数:lcd_Pixel()の原点座標は、
モノクロのそれと異なる点である。
モノクロは、左下角が原点(0,0)であるが、カラー版は、左上角が原点になる。
ピクセル描画関数は、ドットを消す時に使っている。(1ヶ所)
モノクロの時は、lcd_Pixel(i, j, 0); // その分のドットをオフ(消去)する と書いていたが、
カラー版は、lcd_Pixel(i, 239-j, BLACK);
と書く必要がある。
・コンパイル〜HEX書込みまでOK。
■ 2016.5.17
・動作確認だが、今回は割と順調に行った。
カラーQVGAへの表示の追従性がやや心配であったが、むしろモノクロより良いように見える。
今回、縦軸(パワーレベル軸)は、64dotから、240dotになるので、約4倍になる。
なのでLCDデータを、Y座標に変換する時の割数を無くしてみたので、再度、この時のアンプ系の
コンディションを確認してみた。尚、アンプのGain設定はモノクロ時と同じ、1.4倍にした。
0.12Vrmsの、1kHzサイン波入力で、パワースペクトルが最大表示にした時、
AN0入力は、0.17Vrmsであった。
縦軸の表示分解能が上がったので、小さいレベルの入力も多少見えるようになった感じである。
これで今回は良しとした。
このページ冒頭にその時の写真をアップしましたので参照してください。
また以下に、単純繰返し波形に対する表示例も示しました。
<最終回路図>
・こちらから、どうぞ→ 「簡易オーディオ・FFTアナライザ_V2」
<最終ソース及び、ヘッダファイル>
・こちらから、どうぞ→ 「easy_audio_fft_analyzer_v2.c」
colorlcd_libdsPICVH.c
colorlcd_libdsPICVH.h
ASCII12dot.h
※ プロジェクトを組む時に、DSPライブラリの登録が必要になります。
以下に、IDEのプロジェクト・ウインドウのキャプチャを示しましたので、参考にしてください。
尚、IDEは、MPLAB IDE v8.60を使っています。