DSPラジオチップSi4732-A10を動かす
Si4732-A10について
Si4732-A10(以降Si4732)は最近ネット等で話題になっているDSPラジオチップです。長波(LW)から短波(SW)の受信、AM/SSB復調と、FM放送の受信、ステレオ復調が1チップでできてしまう優れものです。最近では中華製トランシーバや、自作トランシーバに組み込んだり色々と活用されています。以前にaitendoでSi4732の載ったモジュール1を入手していましたので(写真1)、マイコンATMega328Pで制御して動かしてみることにしました。ネットには多くの先人達の製作例や、ファームウェアが公開されていますので大いに参考にさせてもらいました23。
今回製作する基板について
今回は動作確認と簡単な評価ですので、ケースへの組み込みは考えず、ユニバーサル基板を使用し、以下のような仕様で組み立てました。
(1) マイコンはATMega328Pにarduinoブートローダを書き込み、arduinoUNOボードではなくマイコン単体で使用し、コンパクトな実装とします。
(2) マイコンのクロックは外付けXtalを使用して16MHzとします。低消費電力化と部品点数削減のため8MHzの内部クロックを使用することも考えましたが、8MHzではOLED表示器での表示がロータリエンコーダの操作に対してワンテンポ遅れる感じがするため、16MHzとしました。
(3) Si4732のアンテナ入力の前段には3で紹介されている受信バンドを選択するフィルタ回路と、プリアンプ回路を採用させてもらいました。
(4) Si4732のオーディオ出力はヘッドホンを鳴らす程度しかないため、オーディオアンプLM4880を追加し、スピーカを小音量で鳴らせるようにしました。アンプのゲインは3倍程度、モノラルスピーカを接続するときはR-ch出力をジャンパーで切り離すようにしました。
(5) AMやSSBでの受信ではACからの電源供給ではノイズの影響を受けやすいため、Li-ion電池からも電源供給できるようにしました。Li-ion電池はガラケーで使用されていたものが出てきたので再利用しました。充電管理チップMCP73832を使用した充電回路を付けたバッテリー基板を作り、上記DSPラジオ基板に重ねるとヘッダピンで接続されて電源供給できるようにしました(写真2、上側がDSPラジオ基板、下側がバッテリー基板)。
回路図について
DSPラジオ基板の回路図を図1に、バッテリー基板の回路図を図2に示します。DSPラジオ基板において、ATMega328Pは5V(Li-ion電池による駆動時には4V前後)、Si4732は3.3Vで駆動しますので、制御ラインでは電圧レベル変換を行っています。DSPラジオ基板の様子を写真3、写真4、バッテリー基板の様子を写真5、写真6に示します。
arduinoスケッチについて
ATMega328Pに書き込むスケッチは以下を使わせてもらいました。
このスケッチにおいて変更した箇所はリスト1に示す5箇所です。
①、②、④、⑤は上記(3)のフィルタ回路を制御するためのコードです。バンドをUP、DOWNする毎に、変更後のバンドに応じたフィルタの設定を変えるものです。バンドに応じてATMega328PのポートにHighレベルの電圧を出力することでD3あるいはD4を導通させます。これにより無関係のバンドの信号がC12、あるいはC13によってGNDにバイパスされ、一種のフィルタとして機能するものです。 ③は日本のFM放送のバンドに合わせた設定としました。
動作状況
Si4732を動かした様子は以下です。
- 東京近郊において、FM放送ではアンテナ端子に50cm程度のリード線を付けるだけで、76.5MHzのインターFMから93.0MHzのニッポン放送まで良く受信できました(写真7)。
- AM放送は近くの放送局は上記リード線だけで良く受信できましたが、少し遠距離になるときびしい状況でした(写真8)。
- 7MHzアマチュア帯のSSB交信も問題なく受信できましたが、受信信号レベルが少し大きくなると復調音が歪みっぽくなるようでした(写真9)。
- 十分な評価はまだですが、少し使ってみた感じでは、欲を言うとロータリーエンコーダで受信周波数を変える毎に受信音が途切れる点、FMへの切り替え時に大きなポップ音が出る点、SSBの周波数微調整がロータリーエンコーダーだけで連続して行えない点が気になりました。
しかし、無線受信回路をほとんど考えることなく、1チップかつ無調整で広帯域受信機が実現できてしまう点は驚きでした。arduinoスケッチの工夫次第でもっと色々なことができそうな気がします。