①ATtiny13Aの内部クロック4.8[MHz]を分周させる。
②ATtiny28のハードウェア変調器(!!)を使う。
③38[kHz]の水晶を用いてインバータによる発振器を外に作る。
④38の2^n倍の水晶でマイコンを動作させ、分周して38[kHz]を作る。
⑤CTCモードで38[kHz]を作り、同じタイマで信号用の2.3[kHz]を作る。
①ATtiny13Aの内部クロック―×?
128分周で37.5[kHz]となるため都合は良さそう。
ただしRC発振である為、温度による周波数の変化がかなり大きい。
(データシートによればtiny13"A"だと±20[℃]で±1[MHz]近く変化している…)
エアコンの赤外線受光部が38[kHz]からのずれをどれだけ許容してくれるか実験してからではあるが、1[MHz]もずれてくれると期待薄だと思われる。
②ATtiny28のハードウェア変調器―×
日本語訳サイト、アプリケーションノートの「RC5赤外リモコン送信器」(AVR415: RC5 IR Remote Control Transmitter)にATtiny28には"ハードウェア変調器"が搭載されている旨の記載があった。
赤外線通信に対して有利になるような設計なのだろうか、データシートには38[kHz]の設定例もある。
一番の難点は入手性である――というかネットでは購入できるところが見つからない。
また最適化は反面、汎用性を落とす事にもなる為――とかそういう理由付けもして諦める事にする。
③発振器を外に作る―△
38[kHz]でなく2.3[kHz]で割込み処理をすればよい為ソフトウェア面で余裕が出る。
またCTC動作できるタイマが1つあればAVRマイコンの種類は問われない為汎用性も高い。
うまくいけば極めて正確な――文字通りあつらえたキャリア波が用意できる。
問題はうまく発振器が作れるかどうかである。
秋月さんの1段シュミットインバータでできるのか、マルツさんで74HC04を買って試してみるか…。
またスイッチング回路もきれいな矩形になるよう実験しなければ…。
つまりそういった面――部品点数が増える事やアナログ回路を検討しなければならない事――でのデメリットがある。
④38の2^n倍の水晶―△
①と同じく、4.8[MHz]が最も都合の良い周波数である。
マイコンにタイマが2つあって、1つはCTCモード、1つはPWM出力さえできればオリジナルの処理に近い事ができるのではなかろうか――というかATtiny85がより活用できる。
また③と同様にソフトウェア面に余裕が出る上、追加の回路は不要になる。
ただこれも入手性に難がある…。
2014.11/12の時点でおそらくaitendoさんでしか買えない。特殊なのかな…?
まごまごしている内に売り切れる、あるいは将来的に買いたくても買えない状況になるかもしれない。
⑤ソフトウェア的解決―△
今の時点で行っている事。
最も汎用性が高い。
ただわざわざ38[kHz]*2で割込みを掛けてHigh-Lowをトグルしているのはいまいち格好悪い…。
その為システムクロックを下げた時の挙動に不安がある。
結論
④4.8M水晶 ≒ ③38K発振器 >> ⑤ソフト >>>>>> ①tiny13-RC②tiny28―×
…くらいか。
4.8[MHz]の水晶が手に入るのであれば④でいいし、③なら(うまくまとめられるなら)部品には困らない上正確な挙動が得られる。
⑤なら不恰好だが一番手軽。
0 件のコメント :
コメントを投稿