「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



AVRでFM音源を作っちゃおうというお話の続き。

MEGA8使って作ろうとか思っていたんですが、
よく考えたら
http://picavr.uunyan.com/avr_m_player.html
このボードにはtimer1を使った音声出力回路を
組み込んでいたのを思い出した!すっかり忘れてた。

timer1を、モード5(高速PWM、8ビット、
TOP値=0xFF)に設定すれば、256段階
のアナログ出力が簡単に出来るはず。
(せっかくの16ビットタイマーを8ビットだけ
 しか使わないのは少々もったいないけど、そこは
 目をつぶります)

20Mhzで256クロック分(8ビット)なら、
音声出力データおよそ1回につき2回のパルスが
出力される感じ。およそ80KHz。
うん、まぁこれならなんとなくいい感じじゃない?


それに、今から何か作るならやっぱり第3世代の
CPUをチョイスしたいもんなぁ…。

今、このPLAYERボードにはMEGA88を
挿してあるので、これをそのまま使ってしまおう。
メインアンプやスピーカーのこと考えなくても
いいし。うん、この線で行こう。これが一番
ラクチンだ。

あ、ローパスフィルターの周波数を10KHzに
設定していたんだったなぁ…。
まぁ、とりあえずいいか。音さえ出れば。

一つ問題は、AVR-studioのタイマー関係
のシミュレーションにはバグがあるって言うこと。

高速PWMに設定しているはずなのに、なぜか
フェーズコレクトPWMとしてシミュレーション
されちゃうんだよなぁ…

早く直してくれると良いんですが… ATMELさん。

まぁ、1クロック単位のシビアなタイミングが求め
られる訳じゃないし、万一フェーズコレクトモード
で動いちゃっても、音質は多分変わらないでしょう。

細かいこと考える前に、まずは音を出すのが最優先
だな。

ある程度纏まったものをアセンブラで作る時って、
結構細かいところまで明確化して、メモリマップ
とレジスタの使用用途を明確にしないと、なかなか
手が動かないんだよなぁ。
まぁ、ちょっとずつ頑張ろう…。



コメント ( 0 )




http://elm-chan.org/fsw/irctrl/00index.html

久しぶりにChanさんのサイトを拝見に行きました。
そしたら、赤外線リモコンの共通モジュールが公開
されていました。

各種マイコン対応のC言語ソース(っぽい…まだダウン
ロードしてないので詳細不明)が公開されていて、
多分殆どそのまま、もしくは若干の修正で大抵の
マイコンにそのまま組み込めるっぽい感じ。

うーん、いいですねぇ。こういうの、いつか作りたいって
思ってたんですよねぇ。

ピンチェンジ割り込み機能、キャプチャ機能が付いたタイマー、
コンペア機能が付いたタイマー、モジュレータが必要に
なるようです。で、モジュレータって、なんだ?

アレかな?38Khzのキャリア用パルスを作り出す
変調のことかな?

もしCPU内部で行おうとしたら、AVRシリーズだと
普段使っているようなMEGA168とかTINY2313
あたりでは対応してなかったなぁ。
(2つのPWMの出力を論理積取って出力する機能のこと)

たしかMEGA128とかには登載されていたような
記憶があるんですが… (いい加減な記憶に頼ってます)


外部に555とかで38Khzの方形波出しておいて、
マイコンからの出力とAND取るっていうのはだめ
なのかなぁ…。スマートじゃないけど。

いや、555使わなくても、3つあるタイマーのうち
一つから常時38KhzでPWM出力しておいて、
もう一つのタイマーからオン/オフ信号を出しておけば、
外部にAND回路足すだけでいいのか…?

そもそも、そんな処理方式にも対応できるのかな?


時間が出来たら、ダウンロードしてソースを拝読したい
と思います。



コメント ( 6 )