見た目と省スペースに最もこだわった、実用的なAM/FMラジオを自作します。
既製品にも劣らない見た目の良いラジオを作ろうにも、そんな都合の良い自作ラジオ用のケースなんて売ってませんよね。結局、普通のプラケースや名刺入れ、タッパーとかバラックになってしまいます。まあ、それはそれで良いんですが・・・
本記事では、安価で売られているレトロラジオ風ワイヤレススピーカーのケースを利用した、オシャレなAM/FMラジオの制作例を2つご紹介します。
これならインテリアとしても末永く部屋に飾っておけますし、プレゼントにしても喜ばれるハズ!?ですね。
ラジオ部分は小型で高性能なDSPラジオ。2種類のモジュール、チップとしては、RDA5830、Si4730-D60、Si4725-A10 の3種類のDSPラジオICの使用例を示します。
DSPラジオとは
電子工作でDSPラジオを見かけるようになったのは、およそ十数年くらい前のこと。今ではDSPラジオの製作は特に目新しいものではなくなりました。
DSPラジオとは、Digital Signal Processor(or Processing)を利用したラジオのことです。これまでアナログ回路で行っていた信号処理をデジタル化することで、高性能化や小型化を実現しています。ここでいうデジタル処理とは、主に積和などの数値演算を指します。受信波信号を直交ミクサでIQ化した信号をADCで数値化し、計算によって復調信号を得る、これがDSPラジオの原理です。
コイルやコンデンサを多用するアナログ回路が要らなくなるので小型化することができ、感度や選択度、音質といった面でも安定した性能が得られます。
DSPラジオの主要部品は表面実装ICですが、モジュール化された小さな基板もあります。電子工作では、扱いやすさからモジュールが良く使われます。
また、グレード的にはモバイル想定のミニマムなものからハイエンドなものまでありますが、この記事では電子工作でも扱われる範囲のものをご紹介します。
DSPラジオの受信周波数
ほとんどのDSPラジオICはワールドワイド対応になっており、FM/AMなら日本の放送範囲(ワイドFMも含む)も全てカバーされているのが普通です。
また、ICの品種によっては、FM/AM以外にも、SW(短波)やLW(長波)に対応しているものもあります。
短波での日本の公的な放送は「ラジオNIKKEI」しかなく、外付けのアンテナを繋がないと受信しにくいことから、初心者の間ではあまり扱われないようです。
長波では日本の放送はありませんし、短波と同様、受信テクニックが必要なので、一部のマニアを除いて普通は扱われません。
- FM:64~108MHz
- AM(MW):520~1710kHz
- SW:2.3~26.1MHz
- LW:153~279kHz
DSPラジオの回路
一般的なDSPラジオの回路構成は、どれもこんな感じで簡単です。
DSPラジオの自作では、そのICを利用する限り、ラジオの本質的な部分を作るわけではありません。既に出来上がっているラジオを動かすために周辺回路をつなげてやるだけです。なので、人によってはイマイチ面白みに欠けると感じるかも知れません。
実用レベルのDSPラジオを完全に自作するには、相応の知識と実装量が必要です。アナログラジオの自作とは違って、上級者以上でもなければ難しいでしょう。
選局インターフェースは大きく三種類ある
バンド選択や選局などのインターフェースには、3つのタイプがあります。
電圧によって制御するタイプは、ボリュームを回して選局を行うことができます。つまりデジタルであるにも関わらず、バリコンを回すようなチューニング操作が行なえます。
この仕様は、メカニカルチューニングなどと呼ばれています。また、これとシリアル通信を併せ持ち、選局中の周波数情報を外部に出力できる品種もあります。
シリアル制御タイプでも、マイコンのADCにボリュームをつなげば同じ事ができますが、メカニカルチューニングタイプだとマイコン不要というメリットがあります。
ただ、完全に連続ではなく9KHzステップとか段階的に周波数が切り替わるため、アナログラジオの選局フィーリングとは少し違います。
外付けのクリスタルが必要な理由
DSPラジオでは、I/Q信号を得るために、受信波と掛け合わせるための局部発信が必要です。そのために、32.768KHzのクリスタルを外付けする様式が一般的です。(外部クロックを与えることも可能)
IC内部ではこれを基準に、何十倍にも逓倍した周波数を生成します。
ヘッドホン駆動できるタイプ
ヘッドホンを直接接続できるものとできないものがあります。
直接駆動できるタイプは周辺回路の簡易化を図れますが、内蔵アンプを通るので音質的には不利な可能性があります。
逆に、DACからの出力がほぼそのまま出ているような低出力タイプでは、外付けのアンプが必要なんですが、高性能なアンプを使えば高音質化を狙えるかも知れません。
まあ、所詮はラジオの音なので、そこまでこだわることもないんですが。。
ヘッドホン駆動の出力インピーダンスは、16~32Ωが一般的です。なので、スピーカーを十分にドライブするためには外付けのアンプが必要です。
音声のI2S出力ができるタイプ
音声出力としてアナログ信号の他に、I2S信号を出力できるものがあります。
以前、RDA5807 を使ってI2Sを出力するようにレジスタを設定し、I2S入力のあるClassDアンプにつないで試してみたことがあるんですが、ちゃんと聴こえはするものの、ノイズが増えて感度が落ちて気分も落ちたことがあります。
つまり、I2Sを利用するには本格的なノイズ対策が必要。
フルデジタルはあきらめてDACを使う方法も考えられますが、そこまでやるならアナログ出力でええやんてなりますね。。
DSPラジオは万能ではない
DSPラジオについては、とかくメリットだけが取り沙汰される傾向があるため、全てにおいて優れているかのように錯覚してしまうかも知れませんが、必ずしもそうではなく弱点もあります。
例えば、「DSPラジオだから高感度」などというコピーをよく見かけますが、「DSPラジオの仕組み=高感度」ではありません。
むしろ、ADCでダイナミックレンジを広く歪み無くSN良く数値化するためには一定の信号レベルが必要であり、そこがDSPラジオが弱小電波に弱い理由の1つになります。
ことに音質とノイズに関しては、ちゃんと設計されたスーパーラジオの方が有利で、特にAM/SW/LWではその差は歴然と言ってもよいかと思います。
DSPラジオのAMの音は、背景のホワイトノイズが多く、そのためか音声にザラつき感があり、遠い放送局はアナログラジオより聞き取りにくく感じます。
また、使用するDSPラジオICにもよりますが、一般に帯域が狭く設定されているため、モゴモゴとこもった音質であることが多いです。
私的には、FMならDSPラジオも有りだと思いますが、AM/SW/LWでノイズ感の少ない明瞭な音質を第一に求めるのなら、スーパーラジオを検討する方が得策かも知れません。
DSPラジオIC
かつては、新潟精密の NS9542 や、RDA Microelectronicsの RDA5800C などが電子工作で話題になりましたが、今では中国製を中心に多くの品種で溢れている状況です。
なお、どれも表面実装品ばかりで、DIPタイプは見たことがありません。
型番 | バンド | I/F | メーカー | 備考 |
---|---|---|---|---|
Si4702/Si4703 | FM | I2C/SPI | Silicon Labs | Si4705はRDS付き |
Si4704/Si4705 | FM | I2C/SPI | Silicon Labs | 小型アンテナ対応 |
Si4730/Si4731 | FM/AM | I2C/SPI | Silicon Labs | Si4731はRDS付き |
Si4734/Si4735 | FM/AM/SW/LW | I2C/SPI | Silicon Labs | Si4735はRDS付き |
Si4820 | FM/AM | AD | Silicon Labs | モノラル |
Si4824 | FM/AM/SW | AD | Silicon Labs | モノラル |
Si4825 | FM/AM/SW(Wide) | AD | Silicon Labs | モノラル、少ピン |
Si4831 | FM/AM | AD | Silicon Labs | ステレオ |
Si4835 | FM/AM/SW | AD | Silicon Labs | ステレオ |
Si4836 | FM/AM/SW(Wide) | AD | Silicon Labs | ステレオ、少ピン |
Si4822 | FM/AM | AD/(I2C) | Silicon Labs | モノラル |
Si4826 | FM/AM/SW | AD/(I2C) | Silicon Labs | モノラル |
Si4827 | FM/AM/SW(Wide) | AD/(I2C) | Silicon Labs | モノラル、少ピン |
Si4840 | FM/AM | AD/(I2C) | Silicon Labs | ステレオ |
Si4844 | FM/AM/SW | AD/(I2C) | Silicon Labs | ステレオ |
RDA5807FP | FM | I2C/SPI | RDA Micro | ヘッドホン駆動可 |
RDA5830 | FM/AM | I2C/SPI | RDA Micro | ヘッドホン駆動可 |
RDA5831 | FM/AM/SW/LW | I2C/SPI | RDA Micro | ヘッドホン駆動可 |
RDA7088 | FM | SW | RDA Micro | ヘッドホン駆動可 |
BK1068 | FM | SW | Beken | ヘッドホン駆動可 |
BK1079 | FM | SW | Beken | シンプル |
BK1080 | FM | I2C/SPI | Beken | ヘッドホン駆動可 |
QN8035 | FM | I2C | QUINTIC | ヘッドホン駆動可 |
QN8065 | FM | I2C | QUINTIC | シンプル |
KT0830EG | FM | I2C | KTMicro | ヘッドホン駆動可 |
KT0911 | FM/AM | AD/(I2C) | KTMicro | ヘッドホン駆動可 |
KT0913 | FM/AM | I2C/AD | KTMicro | ヘッドホン駆動可 |
KT0915 | FM/AM/SW/LW | I2C/AD | KTMicro | ヘッドホン駆動可 |
KT0922 | FM/AM | I2C/AD | KTMicro | ヘッドホン駆動可 |
KT0922M | FM/AM | I2C/AD | KTMicro | モノラル |
KT0923 | FM/AM | I2C | KTMicro | ヘッドホン駆動可 |
KT0932M | FM/AM | AD/(I2C) | KTMicro | モノラル |
DSP6951(AKC6951) | FM/AM/LW | I2C | 问石科技 | 出力アンプ内蔵 |
DSP6952(AKC6952) | FM/AM/LW | AD | 问石科技 | 出力アンプ内蔵 |
DSP6955(AKC6955) | FM/AM/SW/LW | I2C | 问石科技 | 出力アンプ内蔵 |
DSP6959(AKC6959) | FM/AM/SW/LW | AD | 问石科技 | 出力アンプ内蔵 |
C9612 | FM/AM | AD | C&A TEC | |
C9613 | FM/AM/SW | AD/(I2C) | C&A TEC | |
C9620 | FM/AM/SW/LW | AD/(I2C) | C&A TEC | |
C9631 | FM/AM/SW/LW | I2C | C&A TEC | |
AR1019 | FM | I2C | AIROHA | ヘッドホン駆動可 |
AR1015 | FM | I2C | AIROHA | ヘッドホン駆動可 |
AR1025 | FM | I2C | AIROHA | 小型アンテナ対応 |
RTC6215N | FM | SW | RichWave | ヘッドホン駆動可 |
SC1299(GS1299) | FM | SW | ZINGSEMI | ヘッドホン駆動可 |
他にもあるんですが、入手性の面から aitendo で見かけるものを主にしています。ただ、AR1320 や DSP4926、DSP6919 など、データシートが無いものは省きました。
※I/Fについて
「AD」と記載:特定のピンに印加する電圧によって制御するタイプ。
「SW」と記載:UP/DOWNなどの選局スイッチ入力を持つタイプ。
※RDSについて
RDS(ラジオ・データ・システム)は、FM放送において再生中の曲名などを受信機側で表示するための仕組みですが、日本では導入されていません。しかし、ICの入手性の都合でRDS付きの品種を選ぶこともあります。
※シリコンラボ Siシリーズのバージョンについて
型番の後ろについている「-A10」といった番号はバージョンを示しています。
DSPラジオICの入手先
現時点では、aitendo が圧倒的に品揃え豊富です。
シリコンラボのものなら、Mouser やDigi-Key(か、提携しているマルツ)にもあるんですが、在庫があるのはごく一部で入手性はイマイチです。
DSPラジオモジュール
日本で見かけるDSPラジオモジュールです。先のDSPラジオICリストにはないICを使ったモジュールもあります。
モジュール・型番 | DSP IC | 対応バンド | 備考 | |
---|---|---|---|---|
M6959 | DSP6959 (AKC6959) | FM/AM/SW/LW | メカニカル選局可 2.54mmピッチ aitendoオリジナル | |
M6951 | DSP6951 (AKC6951) | FM/AM/LW | 2.54mmピッチ aitendoオリジナル | |
M6955 | DSP6955 (AKC6955) | FM/AM/SW/LW | 2.54mmピッチ aitendoオリジナル | |
FM- TEA5767-M | TEA5767HN | FM | 古い世代のチップ | |
TEA5767SL | TEA5767HN | FM | FM-TEA5767-M を金属シールド化 | |
RDA5807-M | RDA5807HS | FM | ||
TJ1310 | AR1310 | FM | データシート無し スイッチI/F | |
BK1088-102BC -1.5V | BK1088 | FM/AM/SW/LW | ||
SP3777-M | SP3777AHN | FM | ||
Si4730-M | Si4730 | FM/AM | 当記事で使用 | |
RDA5830-M | RDA5830 | FM/AM | 当記事で使用 | |
AR1019-M | AR1019 | FM | ||
RRD-102V2.0 | RDA5807M | FM | 激安! |
こちらも、入手性の点からaitendoがメインになっていますが、中国の市場では、こういったDSPラジオモジュールが数多く売られており、その一部が日本の電子工作の世界に流れてきているような感じです。
作例としてネットでよく見かけるのは、ブレッドボードやユニバーサル基板が使える2.54mmピッチで、マイコン不要なメカニカルチューニングのものが多いようです。
オススメのモジュールは、シリコンラボが載っているのかRDAシリーズですかね。。
でも、各IC・モジュールともインターフェースの違いはあれど、性能的にはそんなに大きな違いはなく、実際に作ってみると、大体は満足できるレベルのラジオになります。
また、DSPラジオの回路は簡単なので、モジュールではなくチップ単体を購入し、変換基板を使っても良いかと思います。
Si4830/1 変換基板 モジュールと書いてありますが、部品は付いておらず専用の変換基板になります。もちろん、普通のSSOP⇔DIPの変換基板でもOK。 |
作例①:ミニAM/FMラジオ
小型のレトロ風ケースが可愛らしい、このBluetoothスピーカーを利用します。
千石電商で叩き売りされていて一目惚れし、思わず3台も買ってしまいました。
この製品は、Bluetoothの他にFMラジオとMP3プレイヤーの機能も持っていますが、それらは取り外して、このケースに自作のAM/FMラジオを組み込もうというわけです。
つまり、AMラジオが欲しいんですね。
今回は2つの異なるDSPラジオモジュールを使用して2台製作します。
ポータブルBluetoothスピーカー Amazonでも見つけることができ、カラーやロゴなど他にもバリエーションがあります。※2020/10 市場在庫切れのようです |
分解してみるとシンプル。
自作ラジオを組み込むスペースもあります。
音質的には高音域が少し高めでしょうか。クリアで結構良い音がします。低音域はサイズ相応というか、グレードの割にはしっかり出ていて、「おっ!」という感じです。
FMラジオを高感度にする方法
ところでこの製品、FMラジオの感度だけはかなり悪いです。
調べていて気付いたんですが、基板にFMアンテナへの接続ランドがあるにもかかわらず何も接続されていません。
3台とも同じなんで不良じゃなさそうです。
試しに、ここに50cmくらいのビニール線をつなげてみると、なんと!あれだけ感度が悪かったFMが普通に聴こえるようになったではありませんか!
ちなみに、元々あるこのFMラジオもDSPラジオで、コアのSoCに組み込まれています。
うーん、こんなに劇的に高感アップするのに、なんで何もつながっていないのか?まさかの設計漏れでしょうか?
思いのほか調子良く受信するんで、3台のうち1台はこのように80cm程度のビニール線をケース内に這わせて蓋をして作業完了。
本来のBluetoothスピーカー&FMラジオとして使うことにしました。
スピーカーが良いこともあってか一般的な市販の小型ラジオより音が良く、以前製作したFMトランスミッターの受信機にピッタリです。
自作ラジオを組み込む方法
で、調べてみると、コレ想像していたよりも品質が良さげです。そこで、ケースだけでなくバッテリーやスピーカーも利用することにしました。
さらに、基板の一部もわりと簡単に再利用できる事が分かりました。
元々あるスピーカーアンプやリチウムイオンバッテリーの充電コントローラー、LEDやスイッチやボリュームなどもそのまま利用します。使わないのは、コアである謎の20ピンのSoCだけで、基板から取り外してしまいます。
このSoCを取り外すだけで、主要な信号ラインを断つことができるため、パターンカットは一切不要になる。
ちなみにこのJLのロゴの付いたチップは、多くの中国製Bluetooth製品で使われている謎のチップです。
リアパネルにあるこの2つの基板押さえを取っ払って代わりの構造を用意すれば、8cmのバーアンテナも楽に収容できそうですが、今回は5cmのバーアンテナを使用します。
自作のラジオ基板とバーアンテナをケース内へ組み込み、7本の配線を元からある基板にハンダ付けします。
使用するDSPラジオ
今回は二台作るので、二種類用意しました。
Si4730モジュール
二台のうち一台は aitendo などにある Si4730 のモジュールを使用します。手元に届いたのは「-D60」 バージョンでした。
モジュールとしての正式な型番は、多分 PL102BA-S 。
ただ、この資料は他から流用して編集されており、間違いが多いので要注意です(後述)
モジュール内の回路図が載っていないので自分で調べました。
先の資料に掲載されている標準回路は参考にしない方が良いです。なぜなら、
・RSTに10Kの抵抗を入れているが、内部で分圧されるため入れない方が良い。
・I2Cのプルアップ抵抗が指示されているが、モジュールに内蔵されてるので不要。
・電源ラインのコイルを使ったフィルタはあっても良いが、無くても全然OK。
・L3のFM-Ant 180-600uHは誤りで、正しくはAM-Ant 180-450uH。
また、寸法図のサイズが実物と合っていないため、信じて基板作ると端子がズレます。
ピン配置以外は、Si4730 関連の公式ドキュメントが参考になります。
Si4730-D60 データシート
AN383(Si47xx デザインガイド)
RDA5830モジュール
もう一台には、これまた aitendo にある RDA5830 のモジュールを使用します。
モジュールとしての正式な型番は不明。
資料は、次の簡単なピン配列と寸法図しか見つかりません。
これもモジュール内の回路図は自分で調べるしかありませんでした。
FMIの部分を除き、データシートに載っている標準回路ほぼそのままですね。
音声出力(LOUT/ROUT)にチップ部品が入っていますが、ただの0Ωジャンパなので、外付けのカップリングコンデンサが必要です。
なお、RDA5830 はヘッドホンを直接駆動できるので、ステレオヘッドホンジャックを付けてステレオでも聴けるようにします。
両モジュールのピンアサイン
Si4730モジュールと RDA5830モジュールとではピン番号のナンバリングが異なりますが、物理配置的にはほぼ同じ。
1つのピンだけが異なっていて、Si4730 ではRST(リセット)、RDA5830 ではリセット端子自体がなくAMIN(バーアンテナ)になっています。
回路図
モジュールの異なる2つの回路は、ピンの違いのほか、FMI/AMIの入力コンデンサの有無と、ヘッドホンジャックの有無が異なりますが、その他は全く同じ回路になります。
全体的には、元からある回路に新しく回路を追加する形になってます。(赤色の配線)
本作では、FMアンテナ入力の前に簡易プリアンプ回路を設けています。
この回路は、シリコンラボドキュメントのAN738で短波のプリアンプとして、また、aitendoのDSPラジオキットのFM入力部で採用されているなど、結構よく見かける回路です。
トランジスタには、海外の高周波汎用の S9018 がよく使われるようですが、手持ちの三種のうち 2SC3356 が最も感度が良かったのでそれを使っています(後述)。
私的にはFMでマッチングが取れているとは思えず、大した感度アップにはならんだろうと思ってるんですが、作例②で使った製品の内蔵FMアンテナのプリアンプにも使われていて、それがなかなかの高感度だったもんですから、入れてみたくなりました。
入力にBPFを入れてやるともっと良くなるかも知れませんね。
各操作スイッチはそれぞれ抵抗分圧により異なる電圧を生成して制御側に伝えるようになっており、1本の信号線で済ませてあります。これもそのまま利用します。
この製品には元々主電源スイッチはありません。OFFする時は、ラジオモジュールの電源をOFFにして、PICをスリープ状態にします。電源スイッチは0Ω(0V)になっているので、スリープに入る前にポートをデジタル入力にしておいて、ON操作時には立ち下がりでPICをスリープから復帰させるようにします。
また、常時通電になるので定電圧レギュレータには、超低消費電力の MCP1703AT-3302E/CB を使っています。
無負荷時2uAで動作するので、電源スイッチは要りません。
ただ、ラジオ回路への電源にはFET(Q3)によるハイサイドスイッチを設けていて、動作中のみ電源を供給するようにしています。このFETを使ったスイッチは立ち上がりが鋭いため、ONした瞬間に電源ラインにディップが生じてPICにリセットがかかる可能性があるため、電源カップリングC6には容量大きめの22uFとしています。
元々ある充電コントローラーは LTC4054-4.2 で、最大800mAの急速充電が可能。周辺部とは完全に独立して動作するので、何も手を加える必要はないですね。
それから、スピーカーアンプには CS8571E という中国製のICが使われているんですが、コレがまたなかなかのスグレモノっぽい。超簡単な周辺回路、このクラスにしては低ノイズで低歪、ポップノイズ無し、3番ピンのHI/LOによって、ClassDとClassABを簡単に切り替えることが可能なんです。
(ClassDのスイッチング周波数は500KHz)
Bluetoothの時はClassDにして高効率に、FMラジオの時はClassABにしてスイッチングノイズが受信感度に影響しないようになっていて、この手のFM内蔵型Bluetooth機器では一般的なようです。
もちろん、新しく組み込むAMラジオでもClassDではノイズだらけになってしまうのでClassABで動作させます。そのために、CS8571E の4pinをGNDへ落としています。
RDA5830 版では、ヘッドホンの切り替えのために4極タイプのミニジャックを利用してプラグ挿入の検知を行い、PICからステレオ/モノラルの切り替えと、スピーカーアンプのシャットダウン制御を行います。
また、ヘッドホン時のボリュームは前面スイッチにてソフトウェアから制御します。
製作手順
小型化のために基板を自作しました。ガラスコンポジット感光基板を使います。
より詳しく⇒プリント基板の自作!感光基板を使った作り方で簡単製作
2つのモジュールごとに2種類のパターンです。
サンハヤトの感光基板専用インクジェットフィルムPF-3R-A4にパターンを印刷。
パターン図をmikanで開いて、外形、hole、表A、表C の4つのレイヤを反転印刷します。
右側の余った部分がもったいないので、ついでに作例②のパターンを面付けしています。
モジュールの裏はレジストされているんですが、クリスタルの表面(GND)が基板のパターンに接触する可能性があります。
そこで、このように0.5mmくらいのプラバンを挟み込んで、隙間を作ってハンダ付けします。
ICSP用のピンヘッダは、全ての部品を付けてから浮かせてハンダ付け。
RDA5830モジュール用基板の完成。
残すは、簡易プリアンプのトランジスタだけですが、後でトランジスタ比較をするために今は取り付けていません。
基板の表面にバーアンテナを取り付けます。
バーアンテナは、aitendoで売っていた700uHを解いて200uHにしたもの。
スポンジテープを挟み込んでいるのは、DSPラジオICからできるだけ離すためです。特に、Si4730 モジュールでは、こうしないとノイズで感度が落ちてしまいます。
元からある基板の処理。
不要なSocチップは、2つのハンダゴテを使い、このようにして取り外しました。
その下にあるクリスタルも、あっても問題ないんですが邪魔なので取り外します。
RDA5830モジュール基板では、ヘッドホンジャックへの4本の配線もハンダ付けしておきます。
ここで、簡易プリアンプのトランジスタの比較をしました。
比較したトランジスタは、S9018、2SC2714-Y、2SC3356。
アンテナなど周辺の配置が変わらないように、ハンダ付けするのではなくピンセットでトランジスタを置いて慎重に比較しました。
結果、
S9018 < 2SC2714-Y < 2SC3356 の順で、2SC3356 の勝利。
こんな感じで収めれば、基板押さえの間に配置され、リード線などがクッションになって固定されます。スポンジテープなどを挟み込んでも良いですね。
ヘッドホンジャックへの配線を行います。
こんな時はツールクリッパーが便利。
ツールクリッパー TX303 パーツショップでよく見かけるTSKのツールクリッパー。電子工作では基板の固定やハンダ付けの時にとても重宝します。 |
裏蓋に付いているボリューム押さえとの間に、ヘッドホンジャックへのリード線が噛みこまないように注意。
FMのアンテナ線は80cmくらいをこのように這わせました。リード線の長さや配置形状が感度を左右しそうですが、簡単には試せない orz
充電しながら聴くこともできますが、パソコンや充電器からのノイズで感度は落ちます。
ソフトウェア
PICは消費電流を抑えるために31KHz(LFINTOSC)で動作させています。消費電流は約12uA。大した処理は無いのでこれでも十分に動作してくれます。 PIC16F1705 データシートただ、デバッグするには重いので、初期化時の「OSCCONbits.IRCF = 0b0000;」をコメントアウトするとデフォルトの500KHzで動作し、ストレスが無くなります。
Si4730 版とRDA5830 版とでは、基本的な流れや操作方法は全く同じですが、RDA5830 の方ではヘッドホン処理を追加しています。
両DSPラジオICの制御方法は「コマンドの送信」vs「レジスタの設定」という違いはあれど、I2C経由で指示する内容を送信するということに違いはありません。また、選局やシークを指示したら、それが完了するまで待つという流れも同じです。
ただ、1つ大きく違うのはバンドの切替え方法で、Si4730 の方では再起動が必要なのに対し、RDA5830 の方ではレジスタの値を変更するだけという点が異なります。
どちらも多くのコマンドや設定がありますが、ほとんどはデフォルトのままで動きますので、割と簡単なプログラムで済みます。
選局操作は、プリセット周波数(ソースコードにハードコーディング)を切り替えていく方法と、シークの2種類の方法を用意しています。全チャンネルをスキャンして登録という機能は設けていません。
1 2 3 4 | static WORD s_wFreqsFM[] = { 765, 789, 802, 851, 881, 886, 906, 911, 919, 933, 971 }; static WORD s_wFreqsAM[] = { 558, 666, 828, 1008, 1143, 1179, 1314 }; |
Si4730版
Si4730 モジュールに固有の内容についてです。
指示内容 | コマンド・プロパティー |
---|---|
パワーアップ | POWER_UP(0x01) |
パワーダウン | POWER_DOWN(0x11) |
バンド切替え | ※パワーアップの時に引数でバンドを指定する |
選局 | FM_TUNE_FREQ(0x20) AM_TUNE_FREQ(0x40) |
シーク | FM_SEEK_START(0x21) AM_SEEK_START(0x41) |
ステータス取得 | FM_TUNE_STATUS(0x22) AM_TUNE_STATUS(0x42) |
プロパティー設定 | SET_PROPERTY(0x12) |
ボリューム | RX_VOLUME(0x4000)プロパティー |
その他、設定した項目(デフォルトではない)は次の通りです。
- FMデエンファシス →50us(日本仕様)
- FMブレンドステレオ閾値 →127(Force mono)
- FMブレンドモノラル閾値 →127(Force mono)
- AMシーク周波数(低)→522KHz
- AMシーク周波数(高)→1620KHz
- AMシークステップ → 9KHz
- AMフィルター帯域幅 → 4KHz
- デバッグモード? → 0x0000
Si4704/05/3x のプログラミングでは、余り目立たない場所にコソッと書いてある、とても重要な設定項目が存在します。それは、「デバッグモード?」の設定です。
これはデフォルトでは有効になっていて、そのままだとFMの音声に混じって約1秒間隔で「プツッ プツッ プツッ …」というノイズ音が入ってしまうんです。
AN332の最後の部分に、次のように書かれています。
0x12 0x00 0xFF 0x00 0x00 0x00
ノイズが発生する「可能性」と書かれていますが、当方の経験では必ず入ります。
そして、プロパティー「0xFF00」に、0x0000を設定することを「お勧め」と書いてありますが、必須になりますね。ミスしましたと公言したくないバグなのかもしれません。プロパティー「0xFF00」なんて、ここ以外にどこにも書かれてないし。
なんせ昔、これのせいで失敗したと思い込み、製作を断念した悔しい経験があります。
それから、Si47xxシリーズでは、選局やシークが完了したことを知る方法として一般的なステータスのポーリングの他に、マイコンとINTピンを接続し、割り込みによって知る方法が推奨されています。これは、ステータスのポーリングだとI2Cラインからのノイズによってシーク精度が落ちる可能性があるからと説明されています。
しかし、今回使用した Si4730 モジュールではINTピンが外に出ていないため、この割り込みによる方法は使えません。GET_INT_STATUSコマンドを64ms間隔で発行し、STCフラグを監視して完了を待ちます。
1 2 3 4 5 6 7 8 9 10 11 12 | // ●STCINTを待つ static void Si47xxWaitSTC(void) { s_Cmd[0] = GET_INT_STATUS; do { SleepDelay(0b00110); // 64ms Si47xxCmd(1, 0); } while ((s_Res[0] & STCINT) == 0); } |
RDA5830版
RDA5830 モジュールに固有の内容についてです。
指示内容 | レジスタ・フィールド |
---|---|
パワーアップ | 02H ENABLE[0] |
バンド切替え | 40H CHIP_FUNC[3:0] |
FM選局 | 03H FM_CHAN[15:8], TUNE[4], BAND[3:2], SPACE[1:0] |
AM選局 | 72H FREQ_AM[15:0] |
シーク | 02H SEEKUP[9], SEEK[8], SKMODE[7], 71H, 73H, 74H |
ステータス取得 | 0AH STC[14], READCHAN[9:0] |
ボリューム | 05H VOLUME[3:0] |
モノ/ステレオ | 02H MONO[13] |
ミュート | 02H DMUTE[14] |
その他、設定した項目(デフォルトではない)は次の通りです。
- FMデエンファシス →50us(日本仕様)
- Bassブースト →有効
- FMバンド →76–108MHz(Japan wide)
- AMシーク周波数(低)→522KHz
- AMシーク周波数(高)→1620KHz
- AMシークステップ → 9KHz
RDA5830 は RD5800C など、それより前の品種とはI2Cの通信フォーマットが異なっています。にもかかわらずデータシートの方は古いままなので、プログラミングガイドを見ないと通信さえできないと思われます。
具体的には、RDAシリーズは元々レジスタのアドレスを指定することができなかった(Writeの場合は先頭アドレス02H固定)のですが、RDA5830 では、シリアルEEPROMのように、アドレスを指定してアクセスするようになっています。
また、RDA58xxシリーズでは、当方での経験上、パワーアップ直後すぐに選局しようとしてもうまくいきません。このことはドキュメントには書かれていませんが、本作ではパワーアップと直後の選局の間に約750msのウェイトを設けています。
ソースとビルド
解凍して出てきたプロジェクトをパソコン上の適当な場所にコピーして、MPLAB X で開けばビルドできます。ビルドに必要な外部ライブラリなどはありません。
使用したIDEのバージョンは下記の通り。
MPLAB X IDE:v5.20
XC8:v2.05
MPLAB- X IDE | Microchip Technology Inc.
書き込みやデバッグには PICkit3 を使いました。
PICkit3 Microchip正規品。PICへのプログラムの書き込やデバッグができます。最近では安い中国製の互換品も出回っていますが微妙です。 |
なお、PICKitを接続していると、パソコンからのノイズの影響で感度が下ります。本来の性能ではないのでガッカリすることはないでしょう。
使用感
FMでの感度は、小型の割にはまぁまぁという感じなんですが、マンションの中心部では感度不足を感じます。この分だと、アンテナ次第でかなり高感度化しそうです。
音質は、Si4730 の方が明瞭クリアに感じました。RDA5830 の方はややマイルドでその代わりノイズが少なく感じるような気がします。また、BassBoostがいい感じです。
AMでの感度は、同じくらいか、Si4730 の方が少し上?のようです。音質も Si4730 の方が、断然聴きやすいですね。私感ですが、Si4730 のAMの帯域幅は、デフォルトの3KHzではなく4KHzに設定して正解でした。
作例②:木製FM/AMラジオ
丸みを帯びたデザインに温もりを感じるこのBluetoothスピーカーを利用します。
が、そんな事にごまかされないように気を付けて見ていきます。
木製レトロBluetoothスピーカー いくつか派生版のようなものがあって、カラーや仕様など微妙に異なる製品もいくつかあります。結構人気のようです。 |
材質は本物の木材(チェリーウッド)で出来ていて、しっとりと重みのある質感がなかなか本格的。ダイヤルを回して選局するところもレトロ感を増しています。
背面は、かなりしっかりしたプラ製。
音響的な面まで考慮されていると思われます。
内蔵バッテリーは1100mAh、microUSB。
取説カードみたいのが入っていて、製品特徴に書かれているのは、最近よく見る変な日本語翻訳。マッチな回線とその他の専門回路ですか…フムフム。マッチョな回路だったらもっと笑えたかも知れません。
まあ、綺麗なんですが、っぽくないですねぇ。
生で見るとちょっとオレンジがかっているような少し変わった赤色です。
で、このスピーカー、びっくりするほど音が良いんですよ。今どきのBluetoothスピーカーらしく、このサイズからは想像できないほどの低音が響いてきます。
分解してみると、やはり背面にパッシブラジエーターが付いていました。低音が豊かなのはこれの効果です。
下に見えるのは内蔵FMアンテナ。
スピーカの下にはオモリが仕込んであります。質感と安定感と低音域向上のためでしょう。
この製品もFMラジオとMP3プレイヤーの機能を持っているんですが、こんな風貌のケースからはやっぱりAMラジオが流れて欲しいですよね~。
ということで、作例①と同じように自作のAM/FMラジオを組み込むつもりで調査していたら・・・
なんと、シリコンラボの Si4825-A10 が載っているではありませんか!
Si4825 は、FM/AM/SWを受信できるDSPラジオIC。FMだけが利用されているということなんですが、手を入れるのがなんだか惜しくなってきました。さて、どうしたものか…
組み込み方法
この Si4825 を生かさない手はないということで、AMラジオの機能を有効化する方向で考えることにしました。
この製品には、AUX(外部入力)を聴けるという機能もあります。4ステップのモード切替ツマミで、OFF / FM / Bluetooth(MP3) / AUX の4つの機能を切替える仕様です。
このAUXを無効化して、代わりにAMラジオが聴けるようにならないかという観点で回路を調べてみると、思ったよりも簡単な改造で実現できそうなことが分かりました。
バーアンテナも、5cmならこのスペースに格納できそうです。8cmは厳しいかも知れません。
ちなみに短波(SW)は、外部アンテナを繋げないと使い物にならないので今回は考えません。
Si4825の制御
Si4825 は、電圧で受信バンドと周波数を設定するタイプです。ゆえにチューニングがダイヤル(ボリューム)の本製品に採用された理由の一つなんだろうと思います。
今回はその電圧を操作して、バンドをAMに切り替えてやるだけですね。
Si4825-A10 データシート
AN738(Si4825/36-A デザインガイド)
回路図
モード選択ツマミでAUXをセレクトした時にFMモードで起動するようにしたうえで、外付けの回路で Si4825 の受信バンドをAMにするようにします。
元からある回路内の赤色の配線は、新しく追加する回路です。
Si4825 は、TUNE1ピンの電圧を所定の比率で分圧してBANDピンに印加することで、受信バンドを設定する仕様です。その詳細が記載されているAN738では、受信バンドと分圧に使う抵抗値が一覧されていますが、今回の改造ではこれと同じ回路にはできません。
でも、要はTUNE1ピンの電圧を100%として、所定の比率で分圧した電圧をBANDピンに加えてやれば良いわけで、それを実現するための回路が追加の回路になります。
4066 などのアナログスイッチを使っても実現できますが、さほど簡単にはならないためトランジスタで組みました。
TUNE1ピンは基準電圧の供給源なんですが、出力抵抗がかなり高いため、また消費電流を抑えるためにも、全体的にインピーダンスを高く設計してあります。
上の回路図には書いてませんが、この製品には作例①でも採用したのと同じ回路のFMプリアンプが搭載されていて、内蔵アンテナで受けたFM波を増幅してから Si4825 に入力しています。
これがあのマッチな専門回路?コレの効果なのか分かりませんが、なかなかの高感度なんですよ。
どのくらいゲインを稼いでいるのかは分かりません。この回路なのでバッファリング程度の可能性もありますが、それにしてもこの極小サイズのアンテナで良く受かります。
それから、スピーカーアンプには ft2850 という中国製のICが使われています。これもClassDとClassABが切り替えられるタイプのもので、ラジオを受信する時はノイズを避けるためにClassABで動作させます。
試しにBluetoothモードにして、手持ちのラジオでClassD時のノイズを調べてみました。
スイッチング周波数は500KHzなので、近い周波数に合わせて近づけると、受信インジケータが振り切れて無音になります。ちなみに、音を出すとラジオ側でも歪んだ音が受信できます。
製作手順
今回は作例①と同時に作ったので、基板の余った部分を利用して表面実装部品で作りましたが、TO-92のトランジスタを使えばユニバーサル基板でも簡単に作れると思います。
基板のパターン。
⇒作例①の制作手順
本記事で使っている5cmのバーアンテナは、以前aitendoで買っておいたものだったんですが、2つしかなく作例①で使ってしまったので、自作することにしました。
下が作例①で使った5cmバーアンテナ700uH。これを解いて300uHにしました。
上はフェライトバーだけ買っておいたもの。
フェライトバーとリッツ線があったので自作することに。。
基本、巻くだけなので簡単です。
これで2m30cmくらいの7芯リッツ線を使ったと思います。
リッツ線は芯数が多いほど特性的には良いのですが、多くなるほど太くなるため巻数が稼げない、つまりインダクタンスが出せないので、小さいフェライトバーでは注意が必要です。
今回は、最低180uHあれば良いのでOK。
LCRメーター LCR40 インダクタンス測定に使用した高性能な自動判別型LCRメーター。ワンタッチ操作なのでとても簡単に計測できます。 |
元からある基板のパターンカットは一箇所。
機能選択ツマミの小型ロータリースイッチから出ているAUXのラインを切断して、D1(1N5817)でFMのラインへ接続します。
カソード側は、このようにロータリースイッチの一端にハンダ付け。
アノード側もこのようにハンダ付けし、リード線を1本出しておきます。
これは、回路図で[AM-SEL]と表記している信号線になります。
Si4825 のBAND(4ピン)につながっているR20を取り外します。隣のR21は、最初から何も付いていませんでした。
ここに新回路からの[BAND]電圧を接続します。
後は、バーアンテナを新基板(白と茶のリード線の部分)にハンダ付けすれば配線完了です。
一旦ここで動作確認と、VR1/2の調整を行います。→調整(バンド設定)方法
新基板を組み込みます。
バッテリーと元からある基板の間に入れて、スポンジテープを適当に挟み込む。
調整(バンド設定)方法
AN738を参考に、VR1とVR2を調整して下表で示すバンドを選択します。
Si4825 は世界共通のチップなので、FMの場合はデエンファシス(日本では50us)、AMの場合は周波数ステップ(日本では9KHz)も選べるようになってます。
受信バンド | R to GND | TUNE1電圧 | BAND電圧 |
---|---|---|---|
FM(Band15)76-108MHz, 50us | 197K | 1.051V | 0.414V |
AM(Band20)522-1620KHz, 9K | 237K | 0.994V | 0.471V |
本作の回路では、FMの時とAMの時とではTUNE1の電圧が違うことに注意。それぞれ、500Kをベースにした比率の電圧にします。
例えばFMの場合は、197K / 500K * 1.051V = 0.414V という具合です。
まず最初にVR2を調整してFMを、次にVR1を調整してAMを設定するようにします。
0.01Vの違いが影響するので、うまく設定できることを確認できたら、切り替わる上下のポイントを調べて、その中央に合わせておけば完璧ですね。
お好みで他のバンド(例えばワイドなBand22)などを選択しても良いでしょう。
周波数パネル照明の色を変えてみる
AMラジオの有効化とは関係ないんですが、元々ある周波数パネル照明の色がレトロっぽくないので変更してみました。
赤青の2色LEDが使われています。これを、1608サイズのチップLED二つに交換して、白色とウォーム色にしてみます。
LEDに印加される電圧は3Vで、青は470Ω、赤は100Ωが電流制限抵抗になっています。
普通は赤が高抵抗なんですが・・・
LEDは秋月電子で売ってたやつです。
Bluetoothの時は白色。
ををぉ~!
てか、これはレトロいうよりも未来っぽい。
電流制限抵抗も調整しようかと思ったのですが、結果的に元のままで良さげでした。
使用感
やっぱり、ダイヤル式のチューニングは雰囲気があって良いです。ただ、9KHzステップで切り替わるのでバリコンの感じとは少し違います。
FMでの感度は作例①と同じくらい?でマンションの中心部ではやや感度不足を感じます。音質はかなり良いんですが、スピーカーが良すぎなので他との単純比較はできませんね。
AMでの感度は、Si4730 より劣る気がしますが、そもそもバーアンテナが違うので、これも単純に比較はできません。音質はモゴモゴしているので、帯域幅は恐らく Si4730 のデフォルトと同じ3KHzではないかと思われます。
DSPラジオICとしての総合評価は RDA5830 ≦ Si4825 ≦ Si4730 ですかね~
結局一長一短な気もしますが、一番の印象としては、
DSPラジオ自作のポイント
実用的なDSPラジオを設計する際に押さえておきたいポイントです。
DSPラジオICとバーアンテナのコイルが近いと、ICからのノイズを拾ってしまいAGCが働くため、本来の電波の受信感度が落ちてしまいます。
どれくらい離せばよいかは、ICによりますし方向も関係してきますが、ほとんどの場合、数cmレベルになると実用にならなくなります。
例えば、シリコンラボのSiシリーズですと、少なくとも5cm以上は離す必要があります。
電池の消費電流を抑えるため、また、ノイズを低減するために、マイコンのクロック周波数は低くするほうが得策です。普通は32KHz程度で問題ないでしょう。
DSPラジオICとのシリアル通信速度にも影響しますが、I2CもSPIも同期式なので、周波数が低い分には問題ありません。
ラジオの電源を切ると、前回聴いていたバンドや周波数がリセットされてしまうようでは実用的とは言えませんよね。
マイコン内臓のEEPROMなど、不揮発性メモリに情報を記録すると良いでしょう。
当製作例では、PIC16F1705 を使っていますが、これにはEEPROMが内蔵されていないので注意が必要です。今回の回路では常に通電状態にあるためEEPROMは不要でした。
特にバッテリーを使う場合、残量不足になった場合はラジオをONできないようにするべきです。過放電によりバッテリーを痛めてしまう恐れがあるためですね。
マイコン内臓のADCで電源電圧を監視し、低下時にはLチカ等で通知すれば理想的です。
マイコンには一般に、電源電圧が低くなった時に自動的にリセットがかかるBOR機能がありますが、リセットが繰り返しかかる状況になることも念頭に入れます。
当製作例で使用した PIC16F1705 では、このリセットがかかるBOR以外にも、電源電圧が元に戻るまでの間ずっとリセット状態が維持されるBORの、2種類の機能を持っています。後者によりリセットがかかりっぱなしになるので、起動しないように見えます。
DSPラジオキット
DSPラジオキットといえば aitendoに色々あるんですが、マニュアルが無く回路図さえ無いことも多く、部品配置図だけが頼りというモノがほとんどです。
まぁ、ある意味面白いんですが、品質がイマイチという声もよく聞きますので、そこら辺は覚悟しておいた方がいいでしょう。
今のところ、おすすめと言えるのは TK-739 です。
TK-739 AM/FM DSPラジオ よく知られる人気のDSPラジオキット。aitendoモノとは違ってちゃんとした日本語マニュアル付きで初心者にも優しいです。 |
K-6951E AM/FM DSPラジオ 表示機付きのDSPラジオキット。スイッチキャップ、ツマミは付属対象外なので注意。詳細マニュアルは付いていないです。 |
K-6952MB AM/FM DSPラジオ 簡単系のDSPラジオキット。これもaitendoモノなので詳細マニュアルは付いていないです。ヘッドホン専用。 |
DSPラジオキット作例
これはオススメではないんですが、以前作ってみた時の写真が残ってたので。。
EWS機能付きDSPラジオキット [AKIT-EWS2BD]
DSPラジオにしては多くの部品が必要でした。
ICやマイコンの詳細は不明というところがなんだか寂しい。
EWS対応ということはチップは日本製?
ロッドアンテナは別売です。
なんか汚れてるし・・・
聴いてみると感度はイマイチでした。
一番不満だったのはスイッチ。固くて指が痛くなるんで、いつしか触りたくなくなってしまいました。せめてスイッチキャップを付けて欲しかったですね。
後、EWS(緊急警報放送)は実際動いたことはなく、本当に動くのか未だ不明です。月一で試験放送をやってるらしいんですが… 緊急警報放送
ダウンロード・ツール
製作に使用した全ファイルです。無断で二次配布することはご遠慮ください。ご紹介いただく場合は当記事へのリンクを張ってください。連絡は不要です。
ポータブルBluetoothスピーカー Amazonでも見つけることができ、カラーやロゴなど他にもバリエーションがあります。※2020/10 市場在庫切れのようです |
木製レトロBluetoothスピーカー いくつか派生版のようなものがあって、カラーや仕様など微妙に異なる製品もいくつかあります。結構人気のようです。 |