ラズピコでFFTアナライザーを作る(実装、完結編)
◆まえがき
Raspberry Pi Pico(ラズピコ) でFFTアナライザーを作る話のたぶん最終回。Picoのボードの電源ノイズ対策が出来たので、いよいよケースに組み込みます。
◆仕様
帯域:100, 200, 500, 1k, 2k, 5k, 10k, 20k, 50k, 100k,180kHz
感度:-80db (1Vpp=0dB)
入力インピーダンス:約120kΩ
FFTの仕様 サンプル数:256、窓関数:ハニング、ライブラリ:ArduinoFFT.h
波形表示:128x16画素(上部)、スペクトル表示:128x48画素(下部)
◆回路図(クリックで別窓に拡大)
・Picoの基板に内蔵されているDCDCコンバーターのノイズ対策として、シリーズレギュレーター(Q1)を外付けしています。
・配線し易いように前回の記事に対しピンアサインを変更。
◆ソフト
20220808_PiPicoFftAnalyzerV062.ino (BOM付きUTF-8)
内容についてはこのカテゴリの過去記事参照。
◆実装
・外観
秋月のポリカケース(117-中)に入れました。
入力端子はBNCなので各種アダプタがそのまま使えて便利です。
表示のOLEDはSH1106(1.3インチ)を使いましたが、ソフト修正でSSD1306(0.96インチ)も使えます。
・内部
モジュール間はコネクタで分離出来るように作りました。
・基板を外した状態
銅箔テープは入力端子への誘導ノイズ対策です。
基板は3mmのプラビスにダイソーのアイロンビーズをナットの代わりに差し込んで固定しています。
・基板
Picoは直付けしても良かったのですが、ピンヘッダとソケットを使って取り付けました。
寝かせて取り付けられている黒い電解コンデンサはC1で、誘導ノイズを出来るだけ減らすためにGNDに接続したスズメッキ線で抑えています。
・基板を抜いた状態
Picoのソケットの内側のコンデンサはC11とC12です。
・基板裏面
秋月のC基板(の互換品)を少し切って使いました
・使い方
この写真のようにモバイルバッテリーで使うと便利です。
オシロの10倍のプローブもとりあえず使えます。但しアッテネーションは約1/60(約 -35dB)で周波数補正していないので高域で感度低下があります。
◆まとめ
構想から完成まで1月くらいかかってしまいましたが何とかまとめることが出来ました。FFTアナライザーは持っていれば何かの時に役に立つと思います。
◆エラーやご注意など
アンチエイリアシングフィルターが無いので、折り返しノイズがそのまま見えるので要注意。
Picoの入力ピン(GP26)に手を近付けると誘導ノイズを拾ってバックグラウンドのレベルが少し上がります。金属ケースで作れば良かったです。
ADコンバーターのフルスケールを超えた電圧を入力すると、画面表示がめちゃくちゃになります。たぶん内部的にオーバーフロー割り込みが発生し、その処理を適切に行っていないためだと思います。幸い、この現象は入力レベルを下げると復旧します。
素早くレンジボタンを操作すると反応しないことがあります。ボタン操作を受け付けるとOVERのLEDを点灯させているので、このLEDを見ながら操作すると確実です。