スポンサーリンク


RAKUTEN

  • スポンサーリンク

« 2013年3月 | メイン | 2013年5月 »

2013/04/29

AITENDO のDSPモジュールRDA5807-M その4

一応RDA5807-Mで普通のFM放送が受信できるようになりましたので、回路とソースをアップします。

Rda5807 回路図はこの通り。PIC12F683でI2C制御しています。

DSPラジオICの確認ようなので、スイッチや表示形無しで決め打ちパターンで動かしています。

ソフトは以下のファイルです。MPLABのプロジェクトに登録すればコンパイル・書き込みできます。

「PIC12FRADIOMAIN.c」をダウンロード :メインです。

「PIC12F_M5807DRV.c」をダウンロード :M5807制御用のルーチンです。

「PIC12F_I2C.c」をダウンロード :I2Cルーチンです。

「PIC12FRADIO.h」をダウンロード :ヘッダです。

現状の物は、FM76−91MHzモードにして、シーク機能を使って放送を10秒ごとに切り替えるだけです。試したところ数局が簡単に受信できて、感度も結構良いようです。

なお、50−65MHzに設定できるようにもしています。データシートによると、内部レジスタ0x07のビット9を0にするとこのバンドが使えると書いてありましたので、その設定を入れています。

しかし、その設定を使ってはまだ何も受信できていません。最初シーク機能でひっかからなかったので、周波数を51MHz〜53MHzで25KHz刻みで振るようにして、しばらく聞いているところですが、今のところ全く何も聞えません。

そもそも50MHzのアマチュア無線バンドが聞えるはずと思って試しているのですが。。。。設定が良くないのか、それとも誰も近くでは話していないのか、どちらとも分かりません。まあ、もうしばらく試してみます。

それではまたです。

2013/04/28

AITENDO のDSPモジュールRDA5807-M その3

今日からRDA5807-Mの設定ソフトを作成中です。インタフェースはI2Cなので、以前作ったBK-1088用のソースを流用して試しているのですが、RDA5807に乗っている石は結構くせがあるようで難航しています。

くせというのは、今のところわかったのが以下のような点です。

@I2CプロトコルにデバイスID(0010000b)はあるが、内部レジスタインデックスはない。

  このため、目的のレジスタにアクセスするためには、先頭からそのレジスタまでの

  全てのレジスタにアクセスしないといけない。

A先頭のレジスタ番号はライト時には0x02、リード時には0x0Aである。

  それより前のレジスタにアクセスするには、一度最後のレジスタまでアクセスして、

  折り返す必要がある。

BAitendoのページに有る参考コードによると、チップIDをリードしてそのIDに有った

  設定を行う必要があるらしい。コードによるとIDは0x5801〜0x5804の4通りが

  あるらしい。なお、今試しているモジュールのIDを読みだしたところ、0x58040x5802でしたので、今回はこれに決め打ちでソフトを作ります。

Dscf1972 文章だけではさびしいので確認中の様子を写真に撮りました。

とにかく、なんとかレジスタ読み書きができるようになりましたので、これから設定に入ります。

それではまたです。

2013/04/21

AITENDO のDSPモジュールRDA5807-M その2

今日やっとDSPモジュールとPICマイコンを配線してみました。

Dscf1968

基板は前回のフリスク用だと幅がちょっと狭くてOLEDモジュールの座りが良くないので千石電商のTNF34-49というのに変えました。

スイッチ3個は、青1個で周波数、ボリューム、他のモードを切り替えて、赤2個でアップ、ダウンする予定です。

 Dscf1971 とりあえず手元有ったスピーカと電池ボックスを繋いで、ロッドアンテナを並べてみました。もちろんソフトがないのでまだうんともすんとも言いません。

OLEDの配線もこれからです。ソフトを組んでラジオとして動くようにできてから繋いで動かそうと思います。

それではまたです。

2013/04/16

AITENDO のDSPモジュールRDA5807-M

ちょっとLEDの思いつきで寄り道していましたが、やっとやる気が出てきたのでDSPモジュールでのFM50MHz受信の方を進めることにしました。

物は先々週買ってありました。

Dscf1963 これがRDA5807-M。390円です。

ラベルには76MHz〜108MHzとなっていますけど、乗っているDSPラジオIC「RDA5807HS」のデータシートは50MHz〜となってるのですよね。ちょっと心配だけどここはデータシートを信じて進めることにします。

これ以外に買ってあるのが、以下のOLEDディスプレイFRISK用基板です。折角だから表示も欲しいと思って買ってきました。

Dscf1964 Dscf1965

このOLEDディスプレイはI2C,SPIインタフェースモードが有るので、ラジオモジュールと共通の線で制御できるはずです。つまり配線がとても楽。

とりあえず、基板にラジオモジュール、OLED、PICマイコンを置いてみたところ。

Dscf1966_3一応乗ることは乗りますね。ピッチが合わないので細工は要りそうですが、予想される配線が少ないのでなんとかなるでしょう。操作スイッチは小さいのを置けば良いし。

しかし、電池とスピーカーがなあ。FRISKケースに入れるために無理に小さい電池使ってもすぐなくなるし。小さいスピーカもあるけど音が貧弱だし。

とりあえずケースは置いておいて、暇を見つつ基板から動かしてみます。動いたら、電池、スピーカ、良いケースを見つくろうということで。

それではまたです。

2013/04/14

信号1本で複数のLEDを制御

少ない信号線でできるだけ多くのLEDを制御する方法について、またあれこれ考えまして、(ちょっといまいちですが)信号一本で3個制御をやってみました。

回路図は以下の通りです。各LEDにチップコンデンサとチップインダクタでLC共振回路を取り付けています。

Twowire

ソフトは以下です。

「TWOEWIRE.c」をダウンロード

PIC12F683のPWM機能を使って各LED共振回路にマッチした周波数を出しています。

実は、動画を良く見ると分かりますように、「真中のLEDだけ」が点灯している状態が有りません。左右のLEDとの分離が完全にはできていないのです。

 コンデンサの容量を1:2:3にしてありますので、共振周波数はそのルートで大体1:1.4倍:1.7倍になっています。元が矩形波ですので、2倍以上にするときっと高調波が問題になるだろうな、と考えてこうしていますが、このためあまり周波数の間隔が取れていません。LC回路のQもかなり良くないのでしょう。

 多分ちゃんとした正弦波発振回路を組んで周波数の間隔も広げれば分離できると思うのですが、回路が複雑になるので今回は妥協してしまいました。。。

それではまたです。