現在、AVRは内蔵の8MHzクロックで動作させています。 もともと手持ちのものが古い(2世代目)ATmega8Lで、2.7V~5.5Vでの駆動が可能な代わりに8MHzまでの動作となっているためです。 姉妹品のATmega8は最高16MHzですが、4.5V~5.5Vでないと動作しません。 3.3V動作のSDカードまでバッファを介したくなかったため、これはこれで悪くないチョイスではありました。
しかし、現行のAVRは3世代目に入っており、mega8系の後継にはATmega88(他に48/168/328)があります。 これは、2.7V~5.5Vで20MHz動作が可能となっています。 さらに低電圧(1.8V~)対応版として、ATmega88Vがあります。 型名の最後にVがつくものはみなこのバージョンで、こちらは10MHzまでの動作です。
電力消費を減らしたP/PVバージョンもあるのですが、そこまでは拘らないので別にいいです。
いずれにしても、ATmega88が後継としてはいいチョイスということです。 幸い、以前日本に行ったときにためしに一つ買っておきました。
ただ、8MHz以上の周波数で動作させる場合は、必ず外部にクリスタルが必要です。
というわけで、今月頭に日本に行ったときに20MHzのクリスタルとコンデンサを少々買っておきました。
現在のSDカードドライバは、データの連続読み込み部分をかなりチューンしてありますが、1バイト読み込むためにはPC本体側で29クロック必要です。 そのため、inir(24クロック)は使えません。
また、セクタをまたぐアクセスにはそこそこ時間がかかります。 とは言っても、
- 大部分の命令を1クロックで実行する
- avr-gccが賢く最適化する
という感じでZ80とは根本的に異なるので、体感するようなことはほとんどないのですが。
でも、やはりZ80側をフルパワーで動作させても追従させてあげたいので、88に差し替えてみようかと思っています。 幸いI/Oも結構空いていることですし。
でも、ATmega8L、5個も買っちゃったんだよなぁ...。
匿名
画面が真っ暗、でもカーソルは出てる状況。
探して、ここにたどり着きました。
パスワード入力で、復活!
修理に出す寸前でした。ホントにありがとう!