AVRのハードウェア



左3つがAVRです。デザインはPICのほうがかっこいい?


   AVRの特徴

●AVRの特徴
私には洗練されてるなーと感じられました。16bit固定長命令セットにいかに必要な命令をインプリメントしているかが命令セットを見てみると感じられました。命令セットは数が多い気がしますが使いこなせたらエレガントなコーディングができそうです。Cだとその辺を自動でやってくれそうな気がします。余談ですがGCCは市販コンパイラよりコードサイズがだいぶ(a lot)小さくコンパイルできるそうです。GCCの作者本人いわく、「まだまだいけるよ」だそうです(笑)。

・RISCコア
1クロック1命令実行可能な8bitRISCコアを持ったマイクロコントローラです。1クロックで演算からレジスタの更新までを行うことができます。命令読み込み-実行のパイプラインでこれを実現しています。

・32本のレジスタと命令セット
もともとCで開発することを想定している32本ものレジスタを持っています。ダイレクトアドレッシングにより、charデータなどはポインタを使用するよりも効率よく取り扱うことができます。ポインタ使用時はディスプレースメント、ポストインクリメント、プリデクリメントなどいろいろできます。
分岐命令に便利なようにキャリーつき引き算時にはZフラグが伝播するようになっています(次々にANDされていきます)。また引き算を実行せずに比較してフラグのみ立てる命令があったり、さらにそのとき命令スキップしたり(PICのように)と便利な命令があります。

・ペリフェラル
種類により、その周辺に
RAM
プルアップI/O
内部オシレータ
タイマー
シリアル通信
PWM
ADC
コンパレータ
ウォッチドッグタイマ
EEPROM

などをもっています。それらは同じ空間(最大64K)にリニアに配置されています。またレジスタも同じ空間に配置されていてレジスタにポインタアクセスもできます。

・ISP書き込み
ISPプログラミング可能なコードflashメモリを備えています。簡単なI/Oがあればすぐにプログラミングできそうです。


   AVRの種類

●AVRの種類
よく使いそうなもの、使いたいものを挙げてみました。黄色West&Field秋月などで売ってるもの。

Part

FLASH

EEPROM

RAM

I/O

ExtInt
SPI UART

8bitTimer

16bitTimer

PWM

AnaComp
10bitADC

Clock
etc.

AT90S1200

1K

64

-

15

1

-

-

1

-

-

Y

-

12
OSC

AT90S2313

2K

128

128

15

2

-

1

1

1

1

Y

-

10
 

AT90S2323

2K

128

128

3

1

-

-

1

-

-

-

-

10
 

AT90S2333

2K

128

128

20

2

1

1

1

1

2

Y

6

8
BOD
AT90S2343

2K

128

128

5

1

-

-

1

-

-

-

-

10
OSC
AT90S4414

4K

256

256

32

2

1

1

1

1

2

Y

-

8
 

AT90S4433

4K

256

128

20

2

1

1

1

1

2

Y

6

8
BOD
AT90S4434

4K

256

256

32

2

1

1

2

1

3

Y

8

8
RTC

AT90S8515

8K

512

512

32

2

1

1

1

1

2

Y

-

8
 

AT90S8535

8K

512

512

32

2

1

1

2

1

3

Y

8

8
RTC

ATmega83

8K

512

512

32

2

1

1

2

1

4

Y

8

6
RTC,OSC,BOD

ATmega161

16K

512

1K

35

3

1

2

2

1

4

Y

-

6
RTC,BOD

ATmega163

16K

512

1K

32

2

1

1

2

1

4

Y

8

6
RTC,OSC,BOD

ATmega103

128K

4K

4K

48

8

1

1

2

1

4

Y

8

6
RTC
ATmega83,161,163 : ISP / Sell Programmable with boot loader.


戻る