オーディオクラフト工房(119)

更新日:2012年6月23日


DSP-FMラジオをPICで制御しよう

今までいくつかのDSPラジオを作ってきましたがルネサス製(旧NEC製)のマイコンを採用していたためホビーとしての再現性に劣っていました。まあ私自身一番使いやすいマイコンだった訳ですが、「自分でも作りたいのでホビーとしてメジャーなマイコンで製作出来ないか」との依頼を受けました。確かにそうですね。ということで今回はPIC16F886でDSP-FMラジオを制御する製作として仕上げました。正直C言語でのPICは初めてでしたのでかなり苦労しました。I2Cの制御にかなりの時間悩んでいたのですが、失敗の原因はスタックの深さでして、そこをクリアするとすんなりとソフト制作は進んだのですが、今度はROMサイズに悩まされました。機能を最小限に留めましたがなんとか完成しましたのでここに発表いたします。(それほど大袈裟なものでもないかな)
DSP-FMラジオをPICで制御しようの基本仕様
1)FMラジオはSilicon Labo製 Si4731 のDSP処理チップを使用します。
2)1バンク10局のプリセットが可能で、設定・削除が自由に出来ます。
3)今回も3バンクを用意しました。受信地ごとに切り替えるのが便利です。
4)設定データはPIC内蔵のEEPROMに記憶します。周辺回路が減りました。電源ONで前回のバンクと周波数になります。
5)ステレオアンプとスピーカーを内蔵しています。
6)周波数表示は16文字2行のLCDモジュールを使用します。
7)受信周波数は76MHz〜108MHzです。
8)選局はマニュアルライクな操作もありアナログ感覚を楽しめます。但し周波数は76MHz〜90MHzまでです。
9)コンパイラは無償で出来るようにHi-TECH Cが使えるように書いています。
DSP-FMラジオをPICで制御しようの全体構成図
全体の構成図を示します。
(DSP-FMラジオをPICで制御しようの構成図)
このチップはAM/FMラジオ用ですが、操作を簡単にするためにFM専用としました。
DSP-FMラジオをPICで制御しようの回路図
(FMラジオ部回路図)
定番の回路ですね。ラジオがこれほど簡単な回路で出来る幸せを感じます。
(マイコン制御回路図)
マイコンの動作電圧はDC3.3Vで統一しています。今回はLCDモジュールを5Vタイプにしました。今回は回路を簡略化するため外部からのシリアル制御などは省いてあります。久しぶりのPICで多少戸惑いましたがうまくいきました。
(電源制御回路)
定番の電源回路です。今回リップルフィルターは付けませんでした。
(ステレオアンプ回路)
こちらも定番のICを使用しています。簡単でもノイズレスです。
DSP-FMラジオをPICで制御しようのマイコンポート割付
(マイコンポート割付)
DSP-FMラジオをPICで制御しようのモード操作
(モード操作一覧)
バンク切換えは電源ON時に他のキー(SW1,SW2,SW3)のどれかを一緒に押すことで切換えるようにしました。操作は最近のラジオと全く同じです。私のラジオ操作の定番です。
DSP-FMラジオをPICで制御しようの液晶表示
(電源ON時の液晶表示)
電源ON時にチップ情報などを表示します。右上にはバンク番号を表示します。
(バンク0=BK0,バンク1=BK1,バンク2=BK2)
(液晶表示一覧)
DSP-FMラジオをPICで制御しようのEEPROM割付
(EEPROM割付)
3バンク分を用意しています。自由に使って下さい。
DSP-FMラジオをPICで制御しようの大完成の姿
(さすがDSPラジオです、内部はシンプルです)
(DSP回路とPICマイコン回路です)
(ステレオスピーカー内蔵)
(今回はスモークの板で化粧しました。青色の直視から目を守ります)
(電源ON時のチップ情報表示)
(ステップ選局とマニュアル選局)
(プリセット選局)
DSP-FMラジオをPICで制御しようのマイコンソフト
ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全ファイルが入っています。ライタで書き込みする実行ファイルも含まれています
久しぶりのPICでのC言語でした。先にも書きましたがスタックの浅さにかなり悩みましたが、シンプルにPICで制御出来ました。PICは前から感じてますが、ソフト側からハード側が簡単に見通せるのが良いですね。今回の経験でPICもばっちり使えるようになったのでどんどん製作の幅を広げていきたいと考えます。最近は受信機続きですがまだまだ続きます。
これからもオーディオクラフト工房はどんどん楽しくなっていきます。

オーディオクラフト工房へ戻る