atmega8 MPU で、赤外線リモコン装置を作ってみました。
詳細は、またの機会に掲載するとして、問題が発生し、原因と対策が分かったので、メモを残しておくことにします。
発生した問題は、
*5Vでは動作するが、3Vにすると動作しない。
という問題です。
赤外線LED駆動回路が悪いのかと思い、いろいろ調べましたが、関係なしです。
やっと気づいたのは、電圧でatmega8の内臓クロックの周波数がかなり変化するということでした。
5Vで、38KHzに調整した赤外線LEDの発光は、3Vでは35KHzになってしまっていました。
再度、内臓クロックについて調査すると、やはり、内臓クロックのキャリブレーションに関するアプリケーションノートが見つかりました。
これを参考に、OSCCALを変更するとよいということがわかりました。
そこで、SETUP時に調整することとしました。 調整値は、IC毎に違う可能性がありますが、とりあえず、手元のチップで調整した値にしておくことにします。(下図の通り)
時間管理を正確にする必要がある場合は、このキャリブレーションをきっちりしなくてはいけないですね。 電圧と温度でも変化するそうです。