GGFT3の日記

自分の作ったものをこそこそと紹介していきたいです。 

AVRのシステムクロックを20MHzに変更

今回は大会に備えてAVRのシステムクロック源を内部RC発振器から、

20MHzの水晶発振子に変更してみました。

 

また私がAVRを使い始めて間もないころに悩まされた

(データシートをしっかり読んでいればどうということはない)

AVRのちょっとした罠も同時に検証していきます。

マイコン: ATmega88p   開発環境: Atmel Studio6.1

 

AVRには内部に8MHzのRC発振器が搭載されています。

しかし出荷時に1/8に分周されているので、

実際のシステムクロックは1MHzになっているのです…。

 

それを確かめるためにAVRのヒューズビットを変更します。

(ヒューズビットの変更は少し注意が必要なので以下のサイトを参考にしてください。)

http://nora66.com/avr/kaihatu.html

 

f:id:GGFT3:20140308162843p:plain

CKDIV8にチェックが入っていると1/8されます。

今回は実際にシステムクロックがどうなっているのかを確かめるため、

CKOUTにもチェックを入れます。(PB0がGPIOからクロック出力に変更されます。)

 

f:id:GGFT3:20140308153709j:plain

確かに1MHzになっています。

 

次にCKDIV8のチェックをはずします。

f:id:GGFT3:20140308153606j:plain

8MHzになりました。

 

次に20MHzに変更してみます。以下のデータシートのように配線。

f:id:GGFT3:20140308164449p:plain

 

f:id:GGFT3:20140308164807p:plain

SUT_CKSELを上記のように変更。

 

f:id:GGFT3:20140308155222j:plain

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