aroe's memopad

ミュージックスペクトラムアナライザ

最終更新:

aroe

- view
メンバー限定 登録/ログイン

ミュージックスペクトラムアナライザ Isotope




 秋月300円液晶(LTA042B010F)とLatticeXP2 FPGA(LFXP2-8E)を使ったスペクトラムアナライザです。LCDを二枚使用することでステレオ表示を実現しているのが特徴です。
描画速度は約64FPSで4096点FFTを毎秒128回行なっているので非常に描画がなめらかです。入力は同軸デジタルとLINE入力の二系統で電源は5Vで動作しています。

動画

音が出ます

 こうしたスペクトラムアナライザの横軸のスケールには普通、対数が使われるのですがこれはラウドネスを考慮したスケールになっていて
人間の聴覚が過敏な周波数のスペクトラムを多めに(鈍感な周波数を少なめに)表示するようにしてます。
これにより対数スケールのみを使った場合より実際に音楽を聞いた際感じる聴域の占有率と表示されるスペクトラムとの差を小さくしています。

基板

imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (isotope_pcb_800.jpg)
中国深センの基板メーカーEzPCBに発注しました。四層基板で信号層2層、電源層2層という構成です。

Isotope ブロック図


 Isotopeは様々なスペクトル表示モードやプリセット保存機能のをサポートするためにLatticeSemiconductor社が公開している
8bit ソフトコアCPUのLatticeMico8を使ったSoC構成でFPGA内のモジュールを制御しています。
他にLattice社が公開しているソフトコアには32bitのLatticeMico32もありますが消費LUTとブロックRAMが8k LUTのLFXP2-8Eに使うには
多すぎるのでLatticeMico8を使用しました。

 LCDには秋月300円液晶のLTA042B010Fを2つ使っています。このLCDはVRAMを持っていないので外部SRAMをFPGAに接続しそれをVRAMとして使用しています。
VRAMの非表示領域にPCMデータを保存することで入力信号のバッファも兼ねてブロックRAMを節約しています。

回路

1.電源部
主電源はスイッチングACアダプタからDC5Vを供給します。ソフトスイッチ管理のためにAVRマイコンのATtiny13Aと
P-chパワーMOS-FETのFDS4935Aをハイサイドスイッチとして使用しています。
LTA042B010FのLCDドライバのために正負電源が必要なのでDCコンバータICのSC4503を使用して+9V,-9Vを生成します。
さらにそれから正負のリニアレギュレータを用いてノイズを除去してアナログ入力のボリュームコントロールICのLM1972用の
+5V,-5Vを作ります。リニアレギュレータで除去できるのは低周波ノイズだけなので高周波ノイズは何種類かの容量値の異なる
コンデンサを使って除去します。

2.アナログ入力部
Isotopeのオーディオ入力は同軸デジタル入力と、アナログ入力の2つあります。
デジタル、アナログとも後段にアンプやDACに接続することを想定してスルー出力を備えています。

アナログ部はボリュームIC LM1972で振幅調整、低ノイズCMOSオペアンプAD8656で増幅、PCM1802でAD変換という流れです。
S/PDIFの復調にはCS8416を使っています。同軸デジタルのスルー信号は電源OFF時にも出力できるようにスルー出力生成用の
TC7WU04の電源はハイサイドスイッチの手前から取ります。

3.FPGA周辺回路
Lch側のLCDの配線はFFCケーブルを90度折るので予め配線をクロスさせておきます。
オシレータが22.579MHzと中途半端な値なのはADCを44.1kHzでサンプリングさせるためです。

目安箱バナー