本日は、FM / AM の基本処理追加とシーク動作出来るようにプログラムの修正をしました。とりあえずボタン2つ付けまして、周波数 Up/Down させるようにしました。あとはボリューム操作と AM/FM 切り替えを付けたら市販されているラジオキット相当になりそう。
text data bss dec hex filename 5380 34 97 5511 1587 Si4735Radio.elf
AMもバーアナテナ無しで、NHK第一、第二は受信出来ているので動作確認終ってます。大半のプログラムは出来てるという状態です。これで↑のように5511バイト。余裕あります。気になるのは、電池が、3.3Vから3.0V まで電圧下がりましたが、液晶のコントラストがすごく変化して薄くなりました。こいつの調整も必要そうというところです。
ngc6589様
初めまして! 最近 DSPラジオの si4735の機能を知りました。
ビット・トレード・ワンで売ってるのは知ってるのですが選局で
シーク機能が無く購入を考えてました。
そこで良かったらなのですが回路図とソースを公開してもらう事は
可能でしょうか? 宜しくお願いします。
前のメアドに なってました。 すみません。
sknet さん。はじめまして。
ブログ見ていただいてありがとうございます。
問い合わせの件ですが、まだ工作の道半ばのため回路図は書いていないしソースの公開も現在出来る状況ではありません。
わかる範囲で使い方のヒントは差し上げられるかとは思います。
尚、今回買ったSi4735チップはFM/AMともにシークコマンドは動作しています。
以上よろしくお願いします。
ngc6589様
返信 有難う御座います。
恥ずかしい事なのですがAVRでプログラムを1から作る技術は
ありません。モジュルを初期化したりしないといけないようです。
作ってるプログラムを自分仕様に変更する程度のレベルです。
機能的には 市販の機能まで使えればと思ってます。
回路図は Avrから モジュールへの コントロール2線は決まってるので
swのポートが解かれば回路図は必要ないと思います
LCDからも ほぼ同なじですが Swへの接続のPin番号とLcd接続のPin番号
を教えて頂ければと思います。16X2のLCDを使用するつもりです。
ソースとHEXファイルを完成時で良いのでメールで添付も無理でしょうか?
機能的には AM FM切り替え シーク機能 S表示が出来ればと思います。
ご無理言って申し訳ありません。 宜しくお願いします。
参考になるかわかりませんが、回路と今日時点のソースを
http://mkusunoki.net/?p=2108
にて公開いたしました。
今回使用している液晶モジュールは I2C接続 3.3V 動作のものです。
一般的な 5V 動作の4bit/8bit接続の液晶と違いますので注意下さい。
また、マイコン側が 5V 動作時は I2C 接続の 5V – 3.3V レベル変換を途中入れ
ていただく必要があります。
回路的には接続しただけの状態ですので、パット見ただけでご理解いただけると
思います。
masahiro様
ソース及び回路図の公開 有難うございます。
ラジオモジュルは今日 入荷してきたのですがAVRが、まだ入荷して
ないので来てからになります。
LCDは、何個か持ってるのですが全部5V用なので LCDだけ5V入力で
いけるのでしょうか? AVRとモジュルは3V動作とします。
それと回路図を拝見しましたがLCDコントロルの配線がしてませんので
LCDコントロールのSWは不要ですね!LCDの配線も少ないので一行表示かと
思います。 有難うございました。
追記
R1の値が無いのでお願いします。
後クロックはデフォルトみたいなので ヒューズ設定は変えなくても
良いみたいですね!
追記2
I2C接続のLCDは通常の5V用とは別物ですね!
勘違いしてました。 通常のLCDは14pinに対して
こちらは5pinで制御出来るんですね!
すいません。 初めて知りました><
今回 R1 は 100k です。一般的な AVR マイコンのリセットは 10k の抵抗と 47uF あたりの電解コンで時定数持った回路にするのが多いです。電源投入時にうまくスタートしないなどの事象があれば、変更されてみてはと思います。
液晶だけ 5V 動作というのは、余計面倒です。液晶モジュール側を 3.3V 対応させておられる方が多くいらっしゃいますので、その記事を参考にされると良いかと思います。「液晶モジュール 3.3V」ですぐ出てきます。ただ、私はやったことがありませんので実績なしです。
今回使用している液晶モジュールは http://strawberry-linux.com/catalog/items?code=27003 です。
クロックは内蔵クロックを8分周したおよそ1MHz動作です。マイコン買ってきたデフォルトです。
_delay_ms 関数で時間待ちを多用してます。 avrlibc のdelay.h です。ソースに #define F_CPU 1000000UL を書くか、コンパイラオプションに -DFCPU… とするかして、正しく _delay_ms を動くようにして下さい。
タイマ割り込みで作成されてもいいかと思いますが、今回は電源電圧変動でクロックもふらつくの前提でかなりアバウトな delay の使用となってます。
masahiro様
助言 有難う御座います。
I2C接続のLCDは 通常のLCDに比べてコントロールするのに3線で
済んでしまうのは楽ですね!例えが悪いかもですが IDE接続が ATA接続
になったくらい配線が少ないです。I2C接続のLCDを購入してみようと
思います。バックライトは消費電力が多くなりますがあった方が良いかもです。