« 2013 CQ WW DX CWコンテスト | トップページ | Xテーブル »

2013/12/15

I2C制御DSPラジオ(BK1088) 6

久しぶりの更新だ。しばらく空いてしまい、思い出しながら少しづつ進めていた。
Dscf0306

ロータリーエンコーダーを2つ使って、周波数の設定と音量の設定を行うようにした。最初、音量はADコンバータを使って、ボリューム(可変抵抗器)で制御したのだが、耳で聴こえる感覚と回転角が不自然になってしまった。Bカーブのボリュームだから、回転角に比例して電圧が変化すれば、レジスターは2dBステップ(log値)なので、自然に聴こえると思ったが、そうは行かなかった。深く追求するよりもロータリーエンコーダーに変えて自然に変化するようになった。

周波数の設定もタイミングを取らないと上手くチップに書き込めなかったり、周波数の設定や音量を変化させると、I2Cが動くタイミングでノイズが混入したり、カットアンドトライが続く。特にLCD表示を書き換えるとI2Cのデータが出るためにノイズの混入が多い。これをチップにミュートを掛けてノイズを低減させた。まだ、完全ではない。
また、main関数のループでI2Cが動いていると、RF(AMとSW)にもノイズが入る。データが変化した時のみに、処理が動くようにフラグで制御した。完全に止めるためには、CPUをスリープさせるなど、根本的な対策が必要かもしれない。
これも、私のレベルでは、ハードルが高い。この辺りのノイズ対策はブレッドボードではなく、組み込み時にチューニングが必要だ。

回路図とソースコードの公開の準備をしている。

【2013.12.21追記】=============
回路図を描いてみた。追加しておく。
Dsp_radio20131221

オーディオ出力はLoutに100uF電解コンデンサー+20Ωを介して、スピーカーに直接接続している。(Routはテストしていない)20Ωを接続している理由は、微少であるが、ピーといったノイズ?が混入しているので、これを入れることで目立たなくなるからだ。何が原因であるか、詰める必要があるが、今はこのまま使っている。
高効率のスピーカを使用しているので、普通に聴く分には十分な音量だが、もっと欲しい場合は外付けのアンプを付ければいい。この場合は、レジスターで音量を可変しなくても、アナログのボリュームを付ければ、事足りるだろう。リモコンとか使いたいなら、レジスターの音量調整を使えばいいだろう。
セットに仕上げるのは、大変だ。

【2013.12.22追記】=============
自分の備忘録として、ソース・ファイル、HEXファイルを置いておきます。
デバッグ用に0x05レジスターの内容を表示しています。LEDもデバッグ用です。
Mikro C PRO v5.8.0でビルドしています。
関係各位のソースを参考にしています。(感謝!、感謝!)

「20131215_2.zip」をダウンロード


|

« 2013 CQ WW DX CWコンテスト | トップページ | Xテーブル »

電子工作 PIC」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/60805/58761196

この記事へのトラックバック一覧です: I2C制御DSPラジオ(BK1088) 6:

« 2013 CQ WW DX CWコンテスト | トップページ | Xテーブル »