製作していたFriskSDRですが、当初の予定通りLCDとレバースイッチを付けて操作できるようにしてみました。
LCDはI2C接続の8x2液晶で裏面に付けるようにしました。ぼぼガラス基板のみの厚さなので、薄く作ることができます。
部品面は一番高いのがコネクタで6mm、全体では9mm程の厚さになります。RF入力のBPF以外は、すべて実装した状態になりました。黄色い線は、書込みとデバッグにST-Link2を使っているのですが、その接続にコネクタを使わずワイヤを直接、電源と合わせて4本を接続してあります。
レバースイッチは、上下とプッシュ操作が可能です。プッシュでモード切り替え、上下で数値や選択の変更の操作となります。最初の画面は、チャネル切り替え、ワンプッシュで、周波数を直接変更するモードに変わります。ボタンの長押しで桁を選択するモードになり、周波数を1Hz単位で変更できるようにしています。
さらにプッシュで、音量調節。
もうワンプッシュで、復調モード切り替え。でも中身はまだ実装していません。
さらにプッシュでRFゲインの調整です。このRFゲインは、I2SコーデックTLV320AIC3204のADCの手前に設けられたPGA(Programmable Gain Amplifier)のゲイン設定です。0〜47.5dBと比較的広い範囲で調整できます。
操作の様子の動画です。
I/F誌のSDRではロータリーエンコーダを使ったワンノブインターフェースを実装してみましたが、ほぼそれと同じ操作感をFriskSDRでも作れたと思います。
判明していたADCのDCオフセットについてです。QSDミキサをDC的に直結していたのですが、この接続だとオフセットが生じて、AD変換した結果にDC分が出てしまいます。悪いことにPGAのゲインを上げるとADCが飽和してしまい信号を取り込めなくなっていました。結局、入力にCを追加してAC結合とすることでオフセットが出なくなるようにしました。基板上のスペースに余裕が無いので、小さい1005サイズの100nFを4つ、配線をカットして載せています。
消費電流の件は、現在のSTM32F303を使う限りあまり減らせなさそうです。Cortex-M4Fで高性能なのですが、現状72MHz動作で70mAを越えています。クロックを下げれば、比例して下がりますが、それでも桁は減らせません。Cortex-M0なSTM32F072でも動作させられそうですが、それでも1/3程度です。
実はSTM32にはLというローパワーのシリーズがあります。その中でも新しいラインアップであるSTM32L4x3は、同じCortex-M4Fなのに、消費電流が100uA/MHzと一桁低いようです。ところが残念ながらまだ入手は難しそうです。バッテリ動作には、このMCUを本命として入手可能になるのを待つことにしたいと思います。それまではUSBモバイルバッテリなどの外部電源を使うことにします。
引き続き、
- 信号処理をちゃんと実装してAM以外の復調も可能にする
- USB AudioデバイスとしてPCのSDRソフトウェアから使えるようにする
の作業を進めたいと思っています。
リファレンス
- 前回の記事
- レバースイッチTMHU28 https://akizukidenshi.com/catalog/g/gP-08072/
- I2C LCD https://akizukidenshi.com/catalog/g/gP-06669/