モジュールガイドただ、この資料は他から流用して編集されており、間違いが多いので要注意です(後述)モジュール内の回路図が載っていないので自分で調べました。先の資料に掲載されている標準回路は参考にしない方が良いです。・RSTに10Kの抵抗を入れているが、内部で分圧されるため入れない方が良い。・I2Cのプルアップ抵抗が指示されているが、モジュールに内蔵されてるので不要。・電源ラインのコイルを使ったフィルタはあっても良いが、無くても全然OK。寸法図のサイズが実物と合っていないため、信じて基板作ると端子がズレます。関連の公式ドキュメントが参考になります。モジュールを使用します。モジュールとしての正式な型番は不明。資料は、次の簡単なピン配列と寸法図しか見つかりません。配列・寸法図ガイドこれもモジュール内の回路図は自分で調べるしかありませんでした。RDA5830モジュール内の回路図FMIの部分を除き、データシートに載っている標準回路ほぼそのままですね。音声出力(LOUT/ROUT)にチップ部品が入っていますが、ただの0Ωジャンパなので、外付けのカップリングコンデンサが必要です。ヘッドホンを直接駆動できるので、ステレオヘッドホンジャックを付けてステレオでも聴けるようにします。RDA5830モジュールとではピン番号のナンバリングが異なりますが、物理配置的にはほぼ同じ。リセット端子自体がなくAMIN(バーアンテナ)になっています。回路図モジュールの異なる2つの回路は、ピンの違いのほか、FMI/AMIの入力コンデンサの有無と、ヘッドホンジャックの有無が異なりますが、その他は全く同じ回路になります。作例1の回路図(Si4730版)>別ウィンドウで開く作例1の回路図(RD5830版)>別ウィンドウで開く全体的には、元からある回路に新しく回路を追加する形になってます。(赤色の配線)本作では、FMアンテナ入力の前に簡易プリアンプ回路を設けています。この回路は、シリコンラボドキュメントのAN738で短波のプリアンプとして、また、aitendoのDSPラジオキットのFM入力部で採用されているなど、結構よく見かける回路です。感度が良かったのでそれを使っています(後述)。私的にはFMでマッチングが取れているとは思えず、大した感度アップにはならんだろうと思ってるんですが、作例2で使った製品の内蔵FMアンテナのプリアンプにも使われていて、それがなかなかの高感度だったもんですから、入れてみたくなりました。入力にBPFを入れてやるともっと良くなるかも知れませんね。各操作スイッチはそれぞれ抵抗分圧により異なる電圧を生成して制御側に伝えるようになっており、1本の信号線で済ませてあります。これもそのまま利用します。この製品には元々主電源スイッチはありません。OFFする時は、ラジオモジュールの電源をOFFにして、PICをスリープ状態にします。電源スイッチは0Ω(0V)になっているので、スリープに入る前にポートをデジタル入力にしておいて、ON操作時には立ち下がりでPICをスリープから復帰させるようにします。無負荷時2uAで動作するので、電源スイッチは要りません。ラジオ回路への電源にはFET(Q3)によるハイサイドスイッチを設けていて、動作中のみ電源を供給するようにしています。このFETを使ったスイッチは立ち上がりが鋭いため、ONした瞬間に電源ラインにディップが生じてPICにリセットがかかる可能性があるため、電源カップリングC6には容量大きめの22uFとしています。最大800mAの急速充電が可能。周辺部とは完全に独立して動作するので、何も手を加える必要はないですね。いう中国製のICが使われているんですが、コレがまたなかなかのスグレモノっぽい。超簡単な周辺回路、このクラスにしては低ノイズで低歪、ポップノイズ無し、3番ピンのHI/LOによって、ClassDとClassABを簡単に切り替えることが可能なんです。(ClassDのスイッチング周波数は500KHz)Bluetoothの時はClassDにして高効率に、FMラジオの時はClassABにしてスイッチングノイズが受信感度に影響しないようになっていて、この手のFM内蔵型Bluetooth機器では一般的なようです。新しく組み込むAMラジオでもClassDではノイズだらけになってしまうのでClassABで動作させます。4pinをGNDへ落としています。版では、ヘッドホンの切り替えのために4極タイプのミニジャックを利用してプラグ挿入の検知を行い、PICからステレオ/モノラルの切り替えと、スピーカーアンプのシャットダウン制御を行います。ために基板を自作しました。ガラスコンポジット感光基板を使います。75x100x1mm。2つのモジュールごとに2種類のパターンです。サンハヤトの感光基板専用インクジェットフィルムPF-3R-A4にパターンを印刷。4つのレイヤを反転印刷します。右側の余った部分がもったいないので、ついでに作例2のパターンを面付けしています。現像してエッチング完了。穴あけ、基板カット、感光皮膜除去して完成。モジュールの裏はレジストされているんですが、クリスタルの表面(GND)が基板のパターンに接触する可能性があります。そこで、このように0.5mmくらいのプラバンを挟み込んで、隙間を作ってハンダ付けします。ICSP用のピンヘッダは、全ての部品を付けてから浮かせてハンダ付け。こんな感じでPICKitを接続します。RDA5830モジュール用基板の完成。残すは、簡易プリアンプのトランジスタだけですが、後でトランジスタ比較をするために今は取り付けていません。Si4730モジュール用基板の完成。基板の表面にバーアンテナを取り付けます。バーアンテナは、aitendoで売っていた700uHを解いて200uHにしたもの。スポンジテープを挟み込んでいるのは、DSPラジオICからできるだけ離すためです。モジュールでは、こうしないとノイズで感度が落ちてしまいます。ケースへの組み込みイメージです。基板抑えの間に配置します。元からある基板の処理。不要なSocチップは、2つのハンダゴテを使い、このようにして取り外しました。その下にあるクリスタルも、あっても問題ないんですが邪魔なので取り外します。元からある基板にリード線5本をハンダ付け。念の為ホットボンドで固定しておきます。裏面には2本をハンダ付け。RDA5830モジュール基板では、ヘッドホンジャックへの4本の配線もハンダ付けしておきます。ヘッドホンジャックの取り付け位置にキリでマーキング。Φ5mmくらいのドリルで穴を開けて、リーマーで広げる。こんな感じに収まります。組立前に、PICにファームを転送して動作確認をします。ここで、簡易プリアンプのトランジスタの比較をしました。比較したトランジスタは、S9018、2SC2714-Y、2SC3356。アンテナなど周辺の配置が変わらないように、ハンダ付けするのではなくピンセットでトランジスタを置いて慎重に比較しました。ケースへ組み込みます。こんな感じで収めれば、基板押さえの間に配置され、リード線などがクッションになって固定されます。スポンジテープなどを挟み込んでも良いですね。ヘッドホンジャックへの配線を行います。こんな時はツールクリッパーが便利。TX303パーツショップでよく見かけるTSKのツールクリッパー。電子工作では基板の固定やハンダ付けの時にとても重宝します。裏蓋に付いているボリューム押さえとの間に、ヘッドホンジャックへのリード線が噛みこまないように注意。FMのアンテナ線は80cmくらいをこのように這わせました。orzもう会うことはないでしょう、多分。元通りにネジ止めして完成!充電しながら聴くこともできますが、パソコンや充電器からのノイズで感度は落ちます。ソフトウェアPIC16F1705PICは消費電流を抑えるために31KHz(LFINTOSC)で動作させています。消費電流は約12uA。大した処理は無いのでこれでも十分に動作してくれます。0b0000;」をコメントアウトするとデフォルトの500KHzで動作し、ストレスが無くなります。方ではヘッドホン処理を追加しています。両DSPラジオICの制御方法は「コマンドの送信」vs「レジスタの設定」という違いはあれど、I2C経由で指示する内容を送信するということに違いはありません。選局やシークを指示したら、それが完了するまで待つという流れも同じです。方ではレジスタの値を変更するだけという点が異なります。どちらも多くのコマンドや設定がありますが、ほとんどはデフォルトのままで動きますので、割と簡単なプログラムで済みます。選局操作は、プリセット周波数(ソースコードにハードコーディング)を切り替えていく方法と、シークの2種類の方法を用意しています。全チャンネルをスキャンして登録という機能は設けていません。モジュールに固有の内容についてです。RX_VOLUME(0x4000)プロパティーその他、設定した項目(デフォルトではない)は次の通りです。プログラミングでは、余り目立たない場所にコソッと書いてある、とても重要な設定項目が存在します。それは、「デバッグモード?」の設定です。...」というノイズ音が入ってしまうんです。AN332の最後の部分に、次のように書かれています。0x00ノイズが発生する「可能性」と書かれていますが、当方の経験では必ず入ります。プロパティー「0xFF00」に、0x0000を設定することを「お勧め」と書いてありますが、必須になりますね。ミスしましたと公言したくないバグなのかもしれません。プロパティー「0xFF00」なんて、ここ以外にどこにも書かれてないし。昔、これのせいで失敗したと思い込み、製作を断念した悔しい経験があります。それから、Si47xxシリーズでは、選局やシークが完了したことを知る方法として一般的なステータスのポーリングの他に、マイコンとINTピンを接続し、割り込みによって知る方法が推奨されています。これは、ステータスのポーリングだとI2Cラインからのノイズによってシーク精度が落ちる可能性があるからと説明されています。モジュールではINTピンが外に出ていないため、この割り込みによる方法は使えません。GET_INT_STATUSコマンドを64ms間隔で発行し、STCフラグを監視して完了を待ちます。モジュールに固有の内容についてです。DMUTE[14]その他、設定した項目(デフォルトではない)は次の通りです。それより前の品種とはI2Cの通信フォーマットが異なっています。かかわらずデータシートの方は古いままなので、プログラミングガイドを見ないと通信さえできないと思われます。シリアルEEPROMのように、アドレスを指定してアクセスするようになっています。RDA58xxシリーズでは、当方での経験上、パワーアップ直後すぐに選局しようとしてもうまくいきません。このことはドキュメントには書かれていませんが、本作ではパワーアップと直後の選局の間に約750msのウェイトを設けています。開けばビルドできます。ビルドに必要な外部ライブラリなどはありません。使用したIDEのバージョンは下記の通り。PICkit3Microchip正規品。PICへのプログラムの書き込やデバッグができます。最近では安い中国製の互換品も出回っていますが微妙です。PICKitを接続していると、パソコンからのノイズの影響で感度が下ります。本来の性能ではないのでガッカリすることはないでしょう。使用感FMでの感度は、小型の割にはまぁまぁという感じなんですが、マンションの中心部では感度不足を感じます。この分だと、アンテナ次第でかなり高感度化しそうです。方が明瞭クリアに感じました。方はややマイルドでその代わりノイズが少なく感じるような気がします。BassBoostがいい感じです。方が少し上?のようです。方が、断然聴きやすいですね。AMの帯域幅は、デフォルトの3KHzではなく4KHzに設定して正解でした。作例2:木製FM/AMラジオ丸みを帯びたデザインに温もりを感じるこのBluetoothスピーカーを利用します。梱包の箱にもなんだか高級感が漂っています。そんな事にごまかされないように気を付けて見ていきます。木製レトロBluetoothスピーカーいくつか派生版のようなものがあって、カラーや仕様など微妙に異なる製品もいくつかあります。材質は本物の木材(チェリーウッド)で出来ていて、しっとりと重みのある質感がなかなか本格的。ダイヤルを回して選局するところもレトロ感を増しています。背面は、かなりしっかりしたプラ製。音響的な面まで考慮されていると思われます。内蔵バッテリーは1100mAh、microUSB。取説カードみたいのが入っていて、製品特徴に書かれているのは、最近よく見る変な日本語翻訳。マッチな回線とその他の専門回路ですか...フムフム。マッチョな回路だったらもっと笑えたかも知れません。Bluetoothの時は青。綺麗なんですが、っぽくないですねぇ。生で見るとちょっとオレンジがかっているような少し変わった赤色です。このスピーカー、びっくりするほど音が良いんですよ。今どきのBluetoothスピーカーらしく、このサイズからは想像できないほどの低音が響いてきます。分解してみると、やはり背面にパッシブラジエーターが付いていました。低音が豊かなのはこれの効果です。下に見えるのは内蔵FMアンテナ。スピーカの下にはオモリが仕込んであります。質感と安定感と低音域向上のためでしょう。ダイレクト接続している構造。この製品もFMラジオとMP3プレイヤーの機能を持っているんですが、こんな風貌のケースからはやっぱりAMラジオが流れて欲しいですよね~。FM/AM/SWを受信できるDSPラジオIC。FMだけが利用されているということなんですが、手を入れるのがなんだか惜しくなってきました。生かさない手はないということで、AMラジオの機能を有効化する方向で考えることにしました。この製品には、AUX(外部入力)を聴けるという機能もあります。4つの機能を切替える仕様です。このAUXを無効化して、代わりにAMラジオが聴けるようにならないかという観点で回路を調べてみると、思ったよりも簡単な改造で実現できそうなことが分かりました。バーアンテナも、5cmならこのスペースに格納できそうです。8cmは厳しいかも知れません。ちなみに短波(SW)は、外部アンテナを繋げないと使い物にならないので今回は考えません。電圧で受信バンドと周波数を設定するタイプです。ゆえにチューニングがダイヤル(ボリューム)の本製品に採用された理由の一つなんだろうと思います。今回はその電圧を操作して、バンドをAMに切り替えてやるだけですね。受信バンドをAMにするようにします。作例2の回路図>別ウィンドウで開く元からある回路内の赤色の配線は、新しく追加する回路です。TUNE1ピンの電圧を所定の比率で分圧してBANDピンに印加することで、受信バンドを設定する仕様です。その詳細が記載されているAN738では、受信バンドと分圧に使う抵抗値が一覧されていますが、今回の改造ではこれと同じ回路にはできません。要はTUNE1ピンの電圧を100%として、所定の比率で分圧した電圧をBANDピンに加えてやれば良いわけで、それを実現するための回路が追加の回路になります。アナログスイッチを使っても実現できますが、さほど簡単にはならないためトランジスタで組みました。TUNE1ピンは基準電圧の供給源なんですが、出力抵抗がかなり高いため、また消費電流を抑えるためにも、全体的にインピーダンスを高く設計してあります。これがあのマッチな専門回路?コレの効果なのか分かりませんが、なかなかの高感度なんですよ。どのくらいゲインを稼いでいるのかは分かりません。この回路なのでバッファリング程度の可能性もありますが、それにしてもこの極小サイズのアンテナで良く受かります。いう中国製のICが使われています。これもClassDとClassABが切り替えられるタイプのもので、ラジオを受信する時はノイズを避けるためにClassABで動作させます。試しにBluetoothモードにして、手持ちのラジオでClassD時のノイズを調べてみました。スイッチング周波数は500KHzなので、近い周波数に合わせて近づけると、受信インジケータが振り切れて無音になります。ちなみに、音を出すとラジオ側でも歪んだ音が受信できます。今回は作例1と同時に作ったので、基板の余った部分を利用して表面実装部品で作りましたが、TO-92のトランジスタを使えばユニバーサル基板でも簡単に作れると思います。