齢寿天任せ

写真付きで日記や趣味を書くならgooブログ

Si4703搭載FMラジオチューナ評価ボードによるFMラジオ

2021-01-30 11:16:16 | 電子工作

sparkfunのSi4703搭載FMラジオチューナ評価ボードの中華ものが、Amazonで安く(500円位)出ていたのでFMラジオを製作してみた。
このボードには、アンプも載っていて、オーディオジャックもあるので、直ぐに鳴らすことができ、使い勝手が良い。
Si4703は、I2Cで制御できるので、手元にあったArduino nanoと組み合わせることにした。
Arduino nanoとの接続は、以下の通り。 Aruduino側が5Vで3.3VのSi4703側と直結できないので、電圧レベルの変換(変換基板はAmazonサイトにあり)を行っている。

 Arduino      Si4703
 3.3V - 3.3V(VCC)
 GND    - GND
 A4  - (5V-3.3V) - SDIO (I2C)
 A5  - (5V-3.3V) - SCLK (I2C)
 D2  - (5V-3.3V) - RST
 D3  - (5V-3.3V) - GPIO2

試しに鳴らしてみるには、Sparkfunのサイトを参照して、DOCUMENTSタブにあるHookup Guideを参照すると良い。

まずライブラリ Si4703_Breakout.h をArduino IDEにインストールする。Hookup GuideのInstalling the Libraryの節にライブラリへのリンクがあるので、Si4703_Breakout.zipファイルをダウンロードする。Arduino IDEからこのファイルをライブラリにインクルードしてやれば良い。

Si4703_Breakout.zipファイルを解凍すると、examplesフォルダがあるので、その中のスケッチSi4703_Radio_Test.inoをArduino IDEに読み込む。次に、このスケッチをコンパイルしてAruduinoに書き込む。
あとは、Arduino IDEのシリアルモニタを起動してやれば、Hookup Guideにあるような画面が表示される。


FM局のプリセット選局コマンド”a”,"b"やSEEK UP/DOWNのコマンド”u”,"d"を入力して何かレスポンスが表示されればスケッチが動いている。

ただし、このままでは欧州での設定のままなので、日本向けにするためにはちょっと細工が必要である。Arduino IDEのライブラリのソースを変更する。既定だと…\Documents\Arduino\libraries\Si4703_BreakoutフォルダにあるSi4703_Breakout.cppの29行目辺りと150行目辺りの2行を以下の様に変更する。これで、受信周波数が76-108MHzに変更され、ワイドFM対応となる。

29行目辺り
newChannel -= 7600; 
150行目辺り
 si4703_registers[SYSCONFIG2] |= (1<<6);

あとは、スケッチ中のFM局のプリセット選局コマンドの周波数をローカルのFM局の周波数に変更してやれば良い。void loop()関数のコマンド”a”,"b"の処理のところで例えば以下のように変更する。

channel = 825; // 82.5MHz NHK FM

オーディオジャックに接続したケーブルがアンテナになっていて、受信感度は室内でも十分実用になる。


最新の画像もっと見る

3 コメント

コメント日が  古い順  |   新しい順
Unknown (とっても参考になりました、通りすがりのarduino初心者)
2022-06-24 00:50:45
はじめまして。
si4703の情報はなぜか少なかったりするので
情報大変助かります。

150目の修正ですが、
si4703_registers[SYSCONFIG2] |= (1<<SPACE0); は残すのが正しいと思います。
Channel Spacing の初期値は0なので、1にすべきなので。

なので
si4703_registers[SYSCONFIG2] |= (1<<SPACE0);
si4703_registers[SYSCONFIG2] |= (1<<6);//76–108 MHz (Japan wide band)
と2行にする、が正解ではないでしょうか。

あと、シーク時の初期値が未修正です。

247行
channel += 760;
875 を 760 にする。を追加するべきと思います。
駄文失礼しました。
返信する
Unknown (asmnoak)
2022-06-24 10:01:36
コメントありがとうございます。DSPラジオのICを色々と試したのですが、FMを聴くなら、このsi4703の基板が一番良いと思いました。セットに組み上げて、もう2年ほど利用してます(ブログに上げるのはサポってました。すみません)。
さて、コードについてですが、150行目は、ご指摘の通り追加です。説明が不足してました。247行目もご指摘の通りです。当地域はワイドFMなので初期値が違っても動作してました。
返信する
Unknown (とっても参考になりました、通りすがりのarduino初心者)
2022-06-28 00:13:00
si4703を使って組み上げて使っているとの事。
それをお聞きして自分もちょっとケースに入れてみたくなってきました。
いやーこういう電気工作、本当に面白いですよね。

asmnoak様の記事はとても分かりやすく、自分のようなド素人でもチャレンジしやすいと思います。
ではでは。
返信する

コメントを投稿