PICを使ったDSPラジオの製作

 aitendoでパーツを注文するついでに、以前から目をつけていたDSPラジオモジュールM6955を購入しました。仕様ではI2CでフルコントロールできるMW/SW/FMラジオです。
 さっそく、ブレッドボードでテストしてみました。マイコンはAVRでも良いのですが、Megaシリーズ以外は、ハードウェアでのI2C(AVRでは、TWI)が搭載されないので、ここは、PICを使用します。PICは、PIC18F14K22を採用しました。
 サンプルのプログラムがわかりにくく、周波数を設定するのに苦労しましたが、中波放送、短波放送、FM放送が受信できるようになりました。ただ、短波放送とFM放送が同じアンテナを使用するようになっているのですが、短波放送では、発振したようなノイズがのってそのままでは正常に受信できません。アンテナとの間に3pF~20pF程度のコンデンサを追加すると正常に受信できるようになりました。

 液晶も秋月電子で取り扱いの始まったI2C接続小型LCD(AQM0802A)を使用しています。このLCDは、ピンピッチが通常の2.54mmではないので、変換基盤も販売されています。しかし、ブレッドボードで使用するだけなら、足を広げてシングルICソケットに半田付けすれば、問題なく使用できます。当然、ユニバーサル基板等にもそのまま使えます。

 FMステレオ放送に対応しているので、ステレオアンプICにスピーカーを2個つないで、ステレオ受信してみました。また、周波数の変更にロータリーエンコーダー使用するようにしてみました。

 ラジオとして普通に使えそうなので、ケースに入れて使用することにします。
 まず、LCDについては、ケースへの実装を考えて通常のバックライト付き液晶を使用することにしました。パラレル接続なので、最低でもI/Oが6ポート必要です。PICには、十分なポート数があまっているので問題ありません。
 FMステレオに対応すると、スピーカー2個を取り付ける必要があり、ケースの選択やその加工で苦労しそうです。・・ということで、スピーカー1個のモノラルに変更しました。

 FMと短波放送用の共通アンテナの接続に小容量コンデンサを介しているのですが、なんとなくすっきりしません。おそらく、インピーダンスマッチングが取れないため短波放送がうまく受信できないのだと思います。DSPラジオモジュールのチップ部品を交換すれば対応できそうですが、ここは、外部にプリアンプをつけて対応することにしました。
 アンプは、トロ活に載っているFET(J310)を使用したGGアンプ(ゲート接地アンプ)を使います。このアンプは、広帯域なので短波帯は問題なく動作します。FM放送の80MHz帯は微妙ですが、アッテネーターにはならないことを確認しています。
 なお、DSPラジオモジュールで信号強度を測定できます。液晶に表示させながら、アンプの利得を確認すると短波帯では、概ね10dBuV程度ありました。FMでは、利得は得られずスルーと同じ信号強度となりました。

 最終的な回路図です。DSPラジオモジュールとしては、いろいろな機能があります。しかし、これらに対応するためには、スイッチなどのインターフェースやソフトウェアの作りこみが大変なので、日用品として使用するごく普通のラジオとして製作します。凝った機能を作りこむ魅力もありますが、おそらく使い勝手は、市販品がすぐれています。価格でも負けるでしょう。
 スイッチは、MW/SW/FMのバンド切り替えスイッチと、SWのステップを5KHz、10KHz、50KHzに切り替えるスイッチの2個です。

 共立電子オリジナルのユニバーサル基板に実装しました。電源や高周波アンプ、低周波アンプも同じ基板にのりました。

 バラックでAM放送を受信テスト中です。バーアンテナは、手持ちの一番大きなものを使用しています。スーパー用のバーアンテナですが、バリコン側を適当につなぐだけで問題なく同調します。

 ケースは、100円均一のディスプレイケースです。以前作成した、「PLL方式FMラジオの製作」で使用したものと同じものです。デザイン?も同じようにしてみました。左が今回作成したDSPラジオで、右がFMラジオです。アンテナ端子は、外部アンテナが使用できるようにBNCを採用しました。同じようなホイップアンテナを使って屋内でFM放送を聞き比べてみました。受信感度は、DSPラジオが若干良いと感じます。音質的には、低周波アンプICがLM386と共通なのとスピーカーも同じなのでまったく同じように聞こえます。DSPラジオは、バスブースト機能をONにしてあるので、音楽はメリハリのある音に聞こえます。

 電源トランスを内蔵しているので、コンセントさえあればどこでも使用できます。デザインや操作性を別にすれば市販品に劣るところはありません。

 以前、「PLL-VFOを使った短波受信機の製作」で作った短波ラジオと受信比較してみました。受信感度はほぼ互角です。ノイズは、圧倒的にDSPラジオが少ないです。また、当たり前かもしれませんが、DSPラジオは、イメージ混信がまったくないので、夜間に外部アンテナに切り替えても選局が楽です。


 作成したプログラムです。前回5月にPICを使用したときに、MPLABをC18をインストールしたのですが、このときの環境はこの時点で古いとの指摘を受けていました。今回は、MPLAB XとCコンパイラのXC8を改めてインストールして環境を構築しなおしました。
 プログラムを見てもらえばわかりますが、SW(短波)帯の切り替えは行っていません。短波帯は、SW5のみを固定指定していますが、なぜだかSW1バンドからSW13バンドの3.2MHz~21.9MHzまで、ロータリーエンコーダーで周波数を可変できて連続受信できます。念のため、信号発生器をつないでテストしましたが、受信感度や音質等も問題ありません。当然、アンテナをつないで、実際の短波放送を受信しても問題はありませんでした。。

 メインプログラムです。(LCD関係のソースは省略してあります。)
 はじめは、電源OFF時に受信中のバンドや周波数、他のバンドの周波数などを自動的に記録する予定でしたが、電源OFFを検出してからEEPROMに書き込んでも最後まで書き込めないことがあるため、機能を削除してあります。その代わり、ステップ切り替えスイッチを1秒以上押すことで、すべてのバンドの周波数、次の電源ON時のバンド等をEEPROMに記録するようにしてあります。

アイコン

dsp_radio_main.c 6.06 KB 132 downloads

...

 以下は、DSPラジオモジュールを制御する関数群です。I2C関連は、XC8に標準搭載のものを使用しました。DSPラジオモジュールM6955は、これ以外にもユーザーメモリやシーク機能など便利そうな機能がI2Cにて制御可能ですが、ラジオとしての最低限の機能のみを使用しています。

アイコン

i2c_m6955.c 2.90 KB 120 downloads

...
アイコン

i2c_m6955.h 0.41 KB 106 downloads

...

 HD44780等のコントロールチップ用のLCD関連プログラムです。

アイコン

lcd.c 1.14 KB 23 downloads

...
アイコン

lcd.h 0.42 KB 18 downloads

...

1件のピンバック

コメントは現在停止中です。