AVRのシステムクロックを20MHzに変更
今回は大会に備えてAVRのシステムクロック源を内部RC発振器から、
20MHzの水晶発振子に変更してみました。
また私がAVRを使い始めて間もないころに悩まされた
(データシートをしっかり読んでいればどうということはない)
AVRのちょっとした罠も同時に検証していきます。
マイコン: ATmega88p 開発環境: Atmel Studio6.1
AVRには内部に8MHzのRC発振器が搭載されています。
しかし出荷時に1/8に分周されているので、
実際のシステムクロックは1MHzになっているのです…。
それを確かめるためにAVRのヒューズビットを変更します。
(ヒューズビットの変更は少し注意が必要なので以下のサイトを参考にしてください。)
http://nora66.com/avr/kaihatu.html
CKDIV8にチェックが入っていると1/8されます。
今回は実際にシステムクロックがどうなっているのかを確かめるため、
CKOUTにもチェックを入れます。(PB0がGPIOからクロック出力に変更されます。)
確かに1MHzになっています。
次にCKDIV8のチェックをはずします。
8MHzになりました。
次に20MHzに変更してみます。以下のデータシートのように配線。
SUT_CKSELを上記のように変更。
20MHzになりました。(精度の高さに身震い)
単純なことですが、目で変化を確認できたのはよかったです。
ちなみに20MHzも1/8に出来ました。
最後にCKOUTのチェックをはずしておきましょう。
それでは。
ref.
Atmel Studio6 とDragonで開発開始
http://nora66.com/avr/kaihatu.html
ATmega88p 日本語データシート
http://www.avr.jp/user/DS/PDF/mega88P.pdf