CPUのデータシートを見ると、例えば
「最大周波数40MHz」とか書いてあります。
しかし、その後読んでいくと実際に繋げる水晶振動子は20MHzと書いてあったりします。
さらに、読んでいくと32kHzの水晶振動子の話が出てきて、
さらに読んでいくと内蔵低速オシレータだのなのだの、セラミック発振子、LC発振器だの「クロック」に関することが山のように出てきて、はっきりいってわけわからめ!
なにこれ!?
ってなことで、クロックに関してざっくりしたことを説明したいと思います。
まず、クロック(周波数)というのは内部の回路を動かすための速度です。
1クロックごとに回路の状態が変化していきますので、40MHzであれば、秒間4000万回状態が変化するわけです。
あらためて数字にすると結構凄いですね。わずか100円程度のCPUであってもこれだけの速度で動きますから。
さて、で、このクロックというのをどうやって作っているかというのが、まず複数あります。
・水晶振動子
→水晶振動子をCPUに取り付けると、CPUが水晶振動子を駆動してクロックを作る
・外部クロック供給
→他の部品でクロックを作ってCPUに入れる
・セラミック発振子
→水晶振動子に似た安い部品。精度悪い。
・内蔵発振器
→CPU内臓のクロック生成機能。追加部品いらないので安いが、だいたい精度最悪。
普通は水晶振動子でクロックを作ります。
数十円のお値段で精度が一番いいので、無難です。
内蔵発振器は一番お安いですが、精度が悪いので問題が出る時があります。
(通信速度がずれてしまうので通信の時に問題が出るなど)
そしてクロックを作った後に、このクロックを掛け算したり割ったりして内部クロックを作ります。
たとえば、20MHzを2倍して40MHzです。
こういう機構があるので、CPUの動作速度と水晶振動子の動作速度は違うのです。
これで全体はなんとなくわかったかと思います。
そして、おまけとして「低速クロック」というのがあります。
これは32kHzの水晶振動子か内蔵発振器で作ります。
これは、物凄く低速で動く機器(32kHz程度の処理速度でいい機器)か、時計の駆動に使います。
CPUの処理を止めておいて(スリープ・スタンバイ)、時間だけカウントするという事ができるのですが、その際に使用します。
これはオプションなので、CPUは常に高速で動き続け、CPUと止めて時間を計測する必要がなければ、低速クロックは不要です。
こんな風になっているので、ぱっと見るといろいろあってわけわからなくなりやすいのです。
以上、小田切でした。