発振器について
AVR用の発振子の代表的な選択肢として、セラミック発振子と水晶発振子がある。
セラミック発振子
村田製作所のセラロックが有名。
安価(秋月で50円程度)で、消費電力が少ない。欠点は、ノイズに弱いこと、他のデバイスへのクロック供給に使えないこと。
振幅が狭く、ノイズが乗りやすいから、ノイズの多い環境では使用すべきでない。しかし、USBの基準クロックとして、いまのところ問題なく使えている。ノイズ対策が必要なら、水晶発振子に変えるべき。
ヒューズは、12MHzのセラミック発振子を使用する場合、以下のようにする。
- CKSEL3..1 を 111
- CKSEL0 を 0
- SUT1..0 を 10
SUT1〜0は、MakefileでBODリセットを有効にする設定になっていたから、それに従った。BODリセットは、電圧がドロップしたときにリセットする機能で、電圧低下によりAVRの挙動が不安定になる前に、リセットする機能である。
水晶発振子
ノイズに強く、幅広い温度で安定した発振をする。欠点は、高価(秋月で100円程度)で、消費電力が大きいこと。振幅はフルスイングであるため、ノイズに強いし、他のデバイスにクロックを供給することもできる。安定性を求めるなら、水晶発振子を選んだほうがよい。
ヒューズは、ピン数により異なる。
(1) 12MHzの水晶発振子で、クロックのピンが1本の場合
(1) 12MHzの水晶発振子で、クロックのピンが1本の場合
- CKSEL3..0 を 0000
- SUT1..0 を 00
(2) 12MHzの水晶発振子で、クロックのピンが2本の場合
- CKSEL3..0 を 0111
- SUT1..0 を 01