AVRのクロック供給をまとめてみた

AVRを使ったボードの設計をしていて、クロックの供給方法がいくつかあり、どういう違いがあるのかまとめてみた。
ATMEL 8-BIT MICROCONTROLLER WITH 4/8/16/32KBYTES IN-SYSTEM PROGRAMMABLE FLASH DATASHEETを元にしています。

使用するクロックのデバイスごとに、以下のように設定を行う。
デバイスに対応する設定値は、データシートのTable 9-1を参照。

  • Low Power Crystal Oscillator
    • 外部の水晶発振子を接続。消費電力が少ない代わりに、外部のデバイスにクロックを供給したり、ノイズが多い環境では使えない
  • Full Swing Crystal Oscillator
    • 外部の水晶発振子を接続。消費電力が多分、上記の問題が解消される
  • Low Frequency Crystal Oscillator
    • 時計のクロック(32.768kHz)を使用する場合
  • Internal 128kHz RC Oscillator
    • 内部のRC発振回路を使用する場合。電圧、温度などにより変化する(この場合、キャリブレーションできないため、3V、25度で128KHzとなる)
  • Calibrated Internal RC Oscillator
    • 内部のRC発振回路を使用する場合。電圧、温度などにより変化する。キャリブレーションすることで、適切なクロックを得ることができる
  • External Clock
    • 外部の水晶発振器を接続する。この場合は、外部端子はXTAL1のみを使用する

ちなみに、水晶発振器、水晶発振子は違いがややこしい。
前者は発振回路を含んだパッケージになっているもの。製品によっては温度補償などもあるみたい。
後者はコンデンサなどを含む回路を接続する必要がある(マイコンの中に入っているものもある)。
AVRの場合は、Figure 9-2.にあるようにコンデンサを付ける必要がある。

上の表に戻って、上から3種類に関しては、さらにCKSEL[9]、SUT[0]、SUT[1]のそれぞれのビットで動作が変わる。
設定値で変わるのは、以下の2点。要はクロックが供給開始するタイミングからのdelay時間を規定している。

  • Start-up times from Power-down and Power-save
    • Power-down, Power-saveからの起動時間。(ここがあまり自身がなくて、おそらく、この時間までにクロックを安定させて欲しい、ってことだと思う)
  • Additional Delay from Reset
    • 外部のリセットからシステム内部のリセット(Internal Reset)の遅延時間。Figure 11-2.のT_TOUTに相当する

まとめは以上のとおり。

結局、どれが良いのか?という話になるけど、コストとかも考えると Low Power Crystal Oscillatorが 良いんだろうな。

Posted at : 2015-07-18 18:27:12 / Category : avr

AVRでSDとISPを共用する

AVRでSDとISPを共用する場合、どのように端子を接続すれば良いのか?
仕様書とかネットとか見て調べてみた。
(間違っていたらご指摘お願いいたします)

ISPの仕様書は以下を参照。

CPUはATMEGA328/168/88をターゲットに。

要点としては以下のとおりとなる。

  • コネクタの端子は以下のとおり
    • 端子配列
  • 実際の通信はSPIに従う
  • ResetがLowの時にSPIでデータを送る
  • ISPと他のデバイスと端子共用することができる
    • 外部からの駆動で影響を受けないように直列に抵抗を入れる

こんな感じの回路で良いのかな。

SD_ISP端子共用

Posted at : 2015-06-13 17:49:30 / Category : avr