Atmel AVR

AVR（AVR）は、Atmel社が1996年に開発した、RISCベースの8ビットマイクロコントローラ（制御用IC）製品群の総称である。2016年以降はMicrochip社によって製造・販売されている。

 概要 
何かの略称ではなく「AVR」で一語である、とAtmelでは言っている。尤も、初期はアーキテクチャ開発者であるノルウェー科学技術大学の2人の学生アルフ・エギル・ボーゲン（Alf-Egil Bogen）とヴェガード・ウォラン（Vegard Wollan）の名を取り、「アルフとヴェガードによるRISC」の意味があったという。

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

ISP (In-System Programming) に対応し、コンパレータを内蔵する等、i8051ピンコンパチ品や外部にRAMやI/Oを増設する外部バスのあるものもあり、電子工作を行う人の間で人気がある。ISPには、In Circuit Serial Programming (ICSP) やJTAGという仕組みがある。

品種によっては、USBコントローラを内蔵した上でDFU対応Bootloaderをプログラムした状態で出荷されるものがあり、それらは外付け回路無しにUSB接続でプログラミング可能である。

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

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

プログラム格納用のROMは全品種でFlashROMを採用している。ハーバード・アーキテクチャである。

 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タイマPWMFlash memEEPROMSRAMtiny2313181142kByte128Byte128Bytetiny4313181144kByte256Byte256Bytetiny44012512Byte0Byte32Bytetiny54012512Byte0Byte32Bytetiny940121kByte0Byte32Bytetiny1040121kByte0Byte32Bytetiny1361021kByte64Byte64Bytetiny20121132kByte0Byte128Bytetiny24121142kByte128Byte128Bytetiny26162042kByte128Byte128Bytetiny40181124kByte0Byte256Bytetiny44121144kByte256Byte256Bytetiny4562064kByte256Byte256Bytetiny8562068kByte512Byte512Byte

 AVRのレジスタセット 
呼称説明R0-25汎用レジスタR0-R15は即値演算不可X(R26,R27)インデックスレジスタXY(R28,R29)インデックスレジスタYZ(R30,R31)インデックスレジスタZPCプログラムカウンタSPスタックポインタSREGステータスレジスタ

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

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

 関連項目 
PIC - Microchip社が開発したマイクロコントローラ。元AVRの競合製品だが現在は併売されている
Arduino - AVRを利用したオープンソースハードウェア
組み込みシステム
シーケンス制御

 外部リンク 
Atmel本社

AVR
Category:命令セットアーキテクチャ