Atmel AVR

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Atmel AVR ATmega8 PDIP.

Atmel AVR(アトメル AVR)は、Atmel社が製造している、RISCベースの8ビットマイクロコントローラ(制御用IC)製品群の総称である。1996年に開発された。

概要[編集]

PIC同様に回路構成が簡単でCPU、メモリRAMROM)、I/O、データ記憶用のEEPROM、クロック発振回路、タイマーなどが1チップに収められており、書き込まれたプログラムにより制御される。

ISP (In-System Programming) に対応し、コンパレータを内蔵する等、後発である故にPICに不足する点を補うような構成を持ち、i8051ピンコンパチ品や外部にRAMやI/Oを増設する外部バスのあるものもあり、電子工作を行う人の間で人気があるとともに、PICのライバルとして認識されている。ISPには、In Circuit Serial Programming (ICSP) やJTAGという仕組みがあり、AVRだけでなくPICにもICSPは備わっている。

また、ラインが変わっても基本的なCPUコアのアーキテクチャが変わらず、RAM空間がリニアである等、C言語でのプログラミングを意識しており、さらにアセンブラを含んだ統合開発環境「AVR Studio」が無償配布され、GCCも対応しているため安価に開発環境を構築できる。

MCSエレクトロニクス社より4Kバイト(2Kワード)までのコード生成が無償試用できるBascomAVRというBASICを基調としたコンパイラーが公開されている。液晶表示コマンド等、即実用可能なコマンド満載でC言語やマシン語にアレルギーのある人でも簡単にAVRを試用できる。(ただしRAM未搭載のものは殆どのコマンド使用不可)

プログラム格納用のROMは全品種でFlashROMを採用しており、PICのようなUV-EPROMPROM、マスクROMタイプはない。ハーバード・アーキテクチャである点はPICと同じである。

ほとんどの命令を1クロックで実行するため、MHzあたりの計算量は1MIPSに達する。

AVRという名前は、チップを設計したAlf Egil Bogen と Vegard Wollanの名前と、RISC から取られている。

AVRの種類[編集]

起源となった90Sシリーズと、それを大容量化、I/Oを拡張したMegaシリーズ、高機能化・低消費電力化・低電圧対応したTinyシリーズがあり、今後は、MegaシリーズとTinyシリーズを主力する方向であるが、90Sシリーズもまだ多く使われている。

既に品種数がかなり多く、廃品種となったものも多いため、流通量が多い主な品種や著名な品種のみを取り上げ、特定顧客・特殊用途向けは割愛する。

  • 90Sシリーズ
    • 90S1200
    • 90S2313
    • 90S4433
    • 90S8515
    • 90S8535
  • Megaシリーズ
    • Mega1280/2560
    • Mega8/48/88/168/328
    • Mega161/162
    • Mega163/323
    • Mega169/329/649
    • Mega8515
    • Mega8535
    • Mega16/32
    • Mega64/128
  • Tinyシリーズ
Tinyシリーズ I/Oピン数 8bitタイマ 16bitタイマ PWM Flash mem EEPROM SRAM
tiny2313 18 1 1 4 2kByte 128Byte 128Byte
tiny4313 18 1 1 4 4kByte 256Byte 256Byte
tiny4 4 0 1 2 512Byte 0Byte 32Byte
tiny5 4 0 1 2 512Byte 0Byte 32Byte
tiny9 4 0 1 2 512Byte 0Byte 32Byte
tiny10 4 0 1 2 512Byte 0Byte 32Byte
tiny13 6 1 0 2 1kByte 64Byte 64Byte
tiny20 12 1 1 3 2kByte 0Byte 128Byte
tiny24 12 1 1 4 2kByte 128Byte 128Byte
tiny26 16 2 0 4 2kByte 128Byte 128Byte
tiny40 18 1 1 2 4kByte 0Byte 256Byte
tiny44 12 1 1 4 4kByte 256Byte 256Byte
tiny45 6 2 0 6 4kByte 256Byte 256Byte
tiny85 6 2 0 6 8kByte 512Byte 512Byte

AVRのレジスタセット[編集]

呼称 説明
R0-25 汎用レジスタ

R0-R15は即値演算不可

X(R26,R27) インデックスレジスタX
Y(R28,R29) インデックスレジスタY
Z(R30,R31) インデックスレジスタZ
PC プログラムカウンタ
SP スタックポインタ
SREG ステータスレジスタ

命令セット[編集]

  • 16ビット固定長
  • C言語でのプログラミングを意識した直交性の高い命令群
  • メモリへのアクセスはロードとストアのみであり、演算はレジスタとレジスタあるいはイミディエイトのみ
  • PICでは、サポートされなかったイミディエイト減算やキャリー付加減算のサポート
  • Megaシリーズは乗算命令をサポート

主なアドレッシングモード[編集]

呼称 説明
イミディエイト 直接8ビットの値を指定する。
直接 直接16ビットの番地を指定する。
間接 X,Y,Zレジスタで番地を指定する。ディスプレースメント付、ポストインクリメント、プリデクリメントも可。

関連項目[編集]

外部リンク[編集]