78F0512のコーナー(2)
オーディオクラフト工房(79)

更新日:2010年3月1日

このページはFMラジオ編です:回路編はこちらですAMラジオ編はこちらです

究極のDSP-FMラジオ/デジタル選局AMラジオを作ろう

今回はDSPチップの詳しい解説をします。DSPチップはSilicon Labs製の「Si4702」です。このチップはhttp://www.aitendo.co.jp/ aitendo@shoppingで購入可能ですが、使い方がどうしても判らないのです。WEBを探しまくって資料を入手してなんとか動くところまで出来ました。FMラジオについては実用になりましたので公開いたします。
究極のDSP-FMラジオ/デジタル選局AMラジオを作ろうのDSPチップ
DSPチップは「Si4702」です。FM専用のDSPチップです。受信して再生される音声は私にとっては異次元の世界でした。
(DSPチップ)
このICのパッケージはQFNです。0.5mmの端子ピッチですので、得意(?)の反転リード配線を行います。この配線が成功すればほぼ半分は完成したと考えていいでしょう。あせらずにゆっくり時間を掛けて行いましょう。
(反転配線の極意)
(配線状態)
20pinの変換基板に配線を行います。私の場合は上記のようにしました。必要部分しか取り出していません。しかしながら虫眼鏡を用いながら大変な配線となりました。
究極のDSP-FMラジオ/デジタル選局AMラジオを作ろうのDSP配線
もう一度FM部分の回路図を示します。
(FMラジオ部回路図)
今回DSPチップは5V駆動します。しかしながら信号制御は3VなのでデジタルICでレベル変換を行います。手持ちのICで行いましたので変わった制御になっています。FM SCLK(正転)、FM RESET(反転)、FM SEN(反転)、FM SDIO(正転)です。このチップのデータポート(SDIO)は入出力なのですが今回は入力専用として使用しています。従ってこのICの特徴である受信強度などの読み出しは出来ませんのでご理解下さい。
このチップの特徴として水晶発振回路の内蔵があります。しかしながらこの部分もうまく動きませんでした。外部で発振回路を組んで入力しています。WEBでアプリケーションノートを探すと推奨の回路が見つかります。その中で注意することは発振回路には電流を極力流さないということです。なんと発振回路の電源ラインには高抵抗を入れています。これにより発振回路からのノイズの混入を防いでいるようです。
究極のDSP-FMラジオ/デジタル選局AMラジオを作ろうのDSP初期化
DSPのチップの制御は2線式(I2C)と3線式があります。今回は3線式を採用しました。この制御の方式は初期駆動で設定する必要があります。
(初期設定のタイミング)
(3線式制御の設定))
SEN、SDIO、GPIO3をLレベルに保ってDSPチップのリセット端子(RST)を立ち上げることで3線式制御になります。
(メインマイコンのポート割付)
(DSPチップの初期化ルーチン)
GPIO3は外部でL固定にしています。SENとSDIOをLにして少し待った後、RSTを立ち上げます。その後SENをHレベルにします。
究極のDSP-FMラジオ/デジタル選局AMラジオを作ろうのDSP書込み
3線式制御の書込みタイミングです。
(3線式制御の書込みタイミング)
SENをLレベルにした後、上位アドレス3bit、書込み読出し1bit、下位アドレス5bit、データ16bitの順にSCLKに同期してデータを書込みます。ここで理解に苦しんだのは全てのデータ書込み後SENをHレベルにした後、もうひとつSCLKを入れることです。私の勘違いかもしれませんがソフトはそのようにしています。
(書込みデータの並び)
このDSPチップの個別アドレスはA7-A4=0110Bになっています。このアドレスを送り込まなければなりません。書込み読出し制御ビットで書込みは「0」です。DSP制御にはA3-A0のレジスタアドレスを設定してデータを書込みます。以上をまとめると上図のようになります。
究極のDSP-FMラジオ/デジタル選局AMラジオを作ろうのDSPレジスタ制御
制御する必要最低限のレジスタについてまとめます。
(制御するレジスタ)
制御するレジスタは02hから05hの4つのみです。これだけでDSPチップを動かすことが出来ます。
(レジスタ02)
レジスタ02は電源ONの重要な制御があります。これ以外にはSTEREO/MONO切換えです。MUTEも可能ですが今回は使用しませんでした。
(レジスタ03)
レジスタ03は周波数設定です。この部分も苦労しました。後で説明を付け加えます。周波数自体の設定は同調周波数から76MHzまでの差分を設定することで行います。スーパーヘテロダインのイメージで考えると全く次元の違う制御ですね。
(レジスタ04)
レジスタ04で設定するのはデエンファシスの設定のみです。
(レジスタ05)
レジスタ05は周波数帯域と周波数間隔、音量設定です。音量は最大にしておきます。
究極のDSP-FMラジオ/デジタル選局AMラジオを作ろうのDSP周波数設定
なんど周波数を設定してもうまく受信が出来ません。何度も何度も仕様書を読みましたが受信が出来ません。WEBでアプリケーションノートを探しまくりました。かなりの日数が経ってからやっと理解出来ました。正確には「周波数設定、DSPチップからの同調終了を待つ、同調をやめる」という制御を行わなければ受信が出来ないのです。今回DSPチップからの読出しが出来ないので「DSPチップからの同調を待つ」という部分は「時間を待つ」ことで代用しましたが今回のポイントは「同調をやめる」という部分です。これの理解に時間を要したのです。
(DSPチップの周波数設定ルーチン)
これらの制御を行うことで正常に受信が出来るようになったのです。めでたしめでたし。
究極のDSP-FMラジオ/デジタル選局AMラジオを作ろうのDSP受信ソフト
なんとかFMラジオ部は動くようになっているので途中のソフトですがソースファイル一式を公開いたします。皆さんで料理してみて下さい。
ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全ファイルが入っています。ライタで書き込みする実行ファイルも含まれています
私の場合FMラジオはケーブルの再送で聞いています。この場合受信周波数が異なると思います。皆さんが使われる場合はプリセットし直して下さい。DSPで聞くFM放送はノイズも無く感激すること間違い無しです。最近色々なDSPチップが出ているようなので、次回はポケットタイプを作ろうと考えています。あっ、その前にAMラジオ部を完成しなければ。
これからも「NEC78K0/K0Sマイコン開発室」はどんどん楽しくなります。

NEC78K0/K0Sマイコン開発室へ戻る