Atmel社 마이컴 (마이크로콘트롤러 ; 마이크로제어기 ; Micro-controller)

 

Atmel社 마이컴 (마이크로콘트롤러 ; 마이크로制御機 ; Micro-controller)

  이 마이컴은 Microprocessor인 CPU(Central Processing Unit)에 메모리와 I/O포트를 결합하여 하나의 대규모 집적회로인 VLSI형태의 소형 원칩 컴퓨터이다. 하드웨어 구성은 제어, 연산, 입력과 출력 등 컴퓨터의 일반적 기능을 갖는 소형 컴퓨터로 8pin, 14pin, 18pin, 20pin,28pin, 40pin 등 많은 종류가 있으며 메이커에 따라 여러 제어 기능을 하는 것이 많으며 A/D변환기가 내장된 마이컴도 많이 있다.
 대표적인 원칩 마이컴으로 8051, 80196, AVR, PIC 등이 있으
며 특히 AVR 은 Alf(Bogen) Vergard(Wollen) Risc 의 약자로서 ATMEL사에서 제작(1997년에 출시)된 RISC 구조의 MPU 이다. 비교적 저렴한 가격에 비해 8MHz에 8MISP라는 속도는 상당히 매력적이며 ADC, PWM, SPI 등등의 고기능을 손쉽게 구현할 수 있다는 장점이 있다. 또한 AVR의 강점으로 꼽을 수 있는 것은 제작사가 컴파일러 WAVRASM 과 디버거인 AVR Studio를 제공 한다는 것이다.   아래는 Atmel社의 AVR시리즈 목록이다.

AVR 특징
* 8-비트 RISC구조로 명령어가 간단하며 동작 속도가 빠르다.
* 최대 약 16MIPS (Million Instruction Per Second)의 성능을 보인다.
* 소비 전력이 적다.

* 다른 마이크로 컨트롤러에 비해 대용량의 SRAM을 가지고 있다. (ATMega128 의 경우 4Kbyte)
* ISP(In System Programmer)  기능을 지원하며 Flash memory의 내장하여 프로그래밍이 용이하다.
* 10 비트 ADC 내장하고 있다.(일부 패밀리)
* C언어에 최적화된 설계 (실제로 칩 설계와 동시에 C 컴파일러 설계하였다고 한다.)
* PIC의 OneChip특성과 8051의 Bus확장을 모두 채택하고 저가 장비와 컴파일러로 보급되고잇다.

AVR 패밀리 종류
* Tiny 시리즈(ATTiny2313 등) : RAM이 없거나 적은 모델이 대부분이며 핀 수 또한 적어 간단한 어플리케이션에 적합.
* Mega 시리즈(ATMega162 등) : 플레시 메모리와 램의 용량이 크고 핀 수 또한 많아서 복잡한 어플리케이션에 적합.

Pin ≒

TQFP44pin

ATmega8535 / 16 / 163 / 164P / 32 / 323 / 324P / 644(P) / 1284P

TQFP44pin

ATmega8515 / 161 / 162

TQFP64pin

ATmega165(P) / 169(P) / 325(P) / 329(P) / 645 / 649

TQFP64pin

ATmega64 / 103 / 128 / 1281 / 2561  << 주의 ISP

?

ATmega640/1280/256

?

ATmega3250(P)/3290(P)/6450/6490

 

다운로더
- AVR ISP
(In System Programmer) : Atmel AVR 의 내부 플래쉬와 EEPROM 에 데이타를 써넣기 위해 사용되는 Incircuit Programmer. SPI 라는 3선 통신방식으로 구현되며, 
                                                    타겟보드와 2열 10핀 헤더핀으로 연결할 수 있게 주로 만들어지며 보드의 공간절약을 위해 핀수를
                                                    6개(MOSI, MISO, SCK, RESET, VCC, GND)정도로 줄이기도 한다.

                                          주의  ATmega64, 103, 128, 1281, 2561 등 TQFP64(64pin) 계열의 AVR-ISP 연결방법은 다른 ATmega 시리즈와는 다름. (169는 제외)
                                                             MISO는 PE0/PDI(PD1이 아님)를 사용, MOSI는 PE1/PDO(PD0이 아님)를 사용.

 

1

2

3

4

5

6

 

MISO

VTG

SCK

MOSI

RST

GND

 

2

6,17,38

3

1

4

16/28/39

162


Old Board



 


MYKIT DEBUGER BOARD
 

PIC

 

1

2

3

4

5

6

 

TXD

MCLR

Vdd

Vss

PGD

PGC

NC

RXD

 

1

2

3

4

5

6

7

8

PROGRAMMER

 

1

2

3

4

5

6

 

 

RST

VTG

GND

MOSI

MISO

SCK

 

PIN

128

TXD0

 

 

 

PDI(RXD0)

PDO(TXD0)

 

RXD0

3

20

21,52

22,53,63

2(PE0)

3(PE1)

11(PB1)

2

162

7

4

6,17,38

16,28,39

1

2

3

5

2313

3

1

20

10

17

18

19

2

TARGET BD

1

2

3

4

5

6

7

8

TXD

RST

VTG

GND

MOSI

MISO

SCK

RXD

                        128 경우 MOSI 대신 PDI(SPI Serial Programming Data Input)
                                 MISO 대신 PDO(SPI Serial Programming Data Output)



 

※ Incircuit Programmer : 타겟보드의 칩에 라이팅 하기위해 칩을 분리하지 않고 보드에 실장된 상태로 바로 라이팅 하는 도구.

 

에뮬레이터
- AVR JTAG :
코드의 라인별 스탭실행이나 디버깅을 지원하는 JTAG 에뮬레이터를 사용하면 편리한 개발 환경을 실현할 수 있음. 
                        
JTAG 모드시 지원가능 디바이스 : ATmega16, ATmega162, ATmega169, ATmega32, ATmega323, ATmega64, ATmega128

 

TCK : Test Clock
TDO : Test Data Output
TMS : Test Mode Select
Vsupply : Normally target Vdd
TDI : Test Data Input
VTref : Target voltage
nSRST : Target system reset

 

개발 Tool Kit (S/W)

-  AVR용 C컴파일러  :  IAR EWAVR  : 안정성, ANSI표준성, 부동변수 연산, 코드 효율 우수
                                   CodeVison AVR C  : Wizard형식으로 쉬운 개발환경. 학생 초보자 많이 사용
                                   ICC-AVR  :  
                             AVR-GCC  :  무료 컴파일러로 중소기업이나 메니아에 널리 사용 (AVR Studio 통합 환경과 함께 사용)
-  AVR용 ASM컴파일러 : AVR STUDIO4

ALL07     AT1006           
 

   Tiny

   Classic

   Mega

   Mega

   Other

ATtiny12

ATtiny13

ATtiny15

ATtiny22

ATtiny24

ATtiny26

ATtiny2313

ATtiny44

ATtiny45

ATtiny461

ATtiny84

ATtiny85

ATtiny861




AT90S1200

AT90S2313

AT90S2323

AT90S2333

AT90S2343

AT90S4414

AT90S4433

AT90S4434

AT90S8515

AT90S8535

ATmega8

ATmega16

ATmega32

ATmega48

ATmega64

ATmega88

ATmega103

ATmega128

ATmega1280

ATmega1281

ATmega161

ATmega162

ATmega163

ATmega164P

ATmega165

ATmega165P

ATmega169

ATmega323

ATmega325

ATmega329

ATmega644

ATmega645

ATmega649

ATmega2560

ATmega2561

ATmega3250

ATmega3290

ATmega6450

ATmega6490

ATmega8515

ATmega8535

AT90CAN32

AT90CAN64

AT90CAN128

AT90PWM2

AT90PWM2B

AT90PWM3

AT90PWM3B

AT86RF401

AT89S51(MCS-51)

AT89S52

AT90USB162

AT90USB646

AT90USB647

AT90USB1286

AT90USB1287

 


AVR의 종류
(Program Memory)
 

① tinyAVR ATtinyXX ( 1 - 4kB )

     - 대량으로 생산되는 간단한 응용분야에 사용(가격이 낮고 기능이나 성능도 낮음).

     - 핀 수가 8핀에서 28핀 정도이며 외형이 작음.

     - 내부 발진기를 내장하는 모델도 있음.
 

② classicAVR AT90XXXX ( 1 - 8kB )

     - 비교적 큰 512바이트 이하 정도의 EEPROM과 SRAM을 내장.

     - 핀 수가 20핀에서 40핀 정도.

     - 특징이나 장점이 뚜렷하지 않아 시장에서 대부분의 모델 단종됨.


③ megaAVR ATmegaXXX
( 8 - 256kB )

     - 가장 규모가 크고 높은 응용 분야에서 사용(가격이 높고 기능이나 성능도 높음).

     - 핀 수가 28핀에서 100핀 정도.

     - 최근 출시되는 모델들은 20MHz 클럭에서 20MIPS의 명령 처리속도를 가짐.

     - 플래시 메모리의 용량에 따라 모델이 ATmega8, 16, 32, 64, 128, 256 등으로 정착됨.

 


    ATmega & ATtiny

Flash (Kbytes) EEPROM (Kbytes) SRAM (Bytes) Max I/O Pins F.max (MHz) Vcc (V) 16-bit Timers 8-bit Timer PWM (channels) 10-bit A/D (Channels)  

ATmega48

4KB 0.25 512 23 20 1.8-5.5 1 2 6 6/8

 TQFP 32 MLF 28 MLF 32 PDIP 28

ATmega48 Automotive

4

0.25 512 23 16 2.7-5.5 1 2 6 8

 QFN 32 TQFP 32

ATmega48P

4

0.25 512 23 20 1.8-5.5 1 2 6 8

 TQFP 32 MLF 28 MLF 32 PDIP 28

ATmega8

8KB

0.5 1024 23 16 2.7-5.5 1 2 3 6/8

 TQFP 32 MLF 32 PDIP 28

ATmega8515

8KB 0.5 512 35 16 2.7-5.5 1 1 3 --

 TQFP 44 MLF 44 PDIP 40

ATmega8535

8KB 0.5 512 32 16 2.7-5.5 1 2 4 8

 TQFP 44 MLF 44 PDIP 40

ATmega88

8 0.5 1024 23 20 1.8-5.5 1 2 6 6/8

 TQFP 32 MLF 32 PDIP 28

ATmega88 Automotive

8 0.5 1024 23 16 2.7-5.5 1 2 6 8

 QFN 32 TQFP 32

ATmega88P

8 0.5 1024 23 20 1.8-5.5 1 2 6 8

 TQFP 32 MLF 32 PDIP 28

ATmega16

16KB

0.5 1024 32 16 2.7-5.5 1 2 4 8

 TQFP 44 MLF 44 PDIP 40

ATmega162V

16 0.5 1024 35 16 1.8-5.5 2 2 6 --

 TQFP 44 MLF 44 PDIP 40

ATmega162

16 0.5 1024 35 16 2.7-5.5 2 2 6 --

 TQFP 44 MLF 44 PDIP 40

ATmega164P

16 0.5 1024 32 20 1.8-5.5 1 2 6 8

 TQFP 44 MLF 44 PDIP 40

ATmega164P Automotive

16 0.5 1024 32 16 2.7-5.5 1 2 6 8

 QFN 44 TQFP 44

ATmega165

16 0.5 1024 54 16 1.8-5.5 1 2 4 8

 TQFP 64 MLF 64

ATmega165P

16 0.5 1024 54 16 1.8-5.5 1 2 4 8

 TQFP 64 MLF 64

ATmega168

16 0.5 1024 23 20 1.8-5.5 1 2 6 6/8

 TQFP 32 MLF 32 PDIP 28

ATmega168 Automotive

16 0.5 1024 23 16 2.7-5.5 1 2 6 8

 QFN 32 TQFP 32

ATmega168P

16 0.5 1024 23 20 1.8-5.5 1 2 6 8

 TQFP 32 MLF 32 PDIP 28

ATmega169

16 0.5 1024 54 16 1.8-5.5 1 2 4 8

 TQFP 64 MLF 64

ATmega169P

16 0.5 1024 54 16 1.8-5.5 1 2 4 8

 TQFP 64 MLF 64

ATmega32

32KB

1 2048 32 16 2.7-5.5 1 2 4 8

 TQFP 44 MLF 44 PDIP 40

ATmega324P

32 1 2048 32 20 1.8-5.5 1 2 6 8

 TQFP 44 MLF 44 PDIP 40

ATmega324P automotive

32 1 2048 32 16 2.7-5.5 1 2 6 8

 QFN 44 TQFP 44

ATmega325

32 1 2048 54 16 1.8-5.5 1 2 4 8

 TQFP 64 MLF 64

ATmega3250

32 1 2048 69 16 1.8-5.5 1 2 4 8

 TQFP 64 TQFP 100

ATmega3250P

32 1 2048 69 20 1.8-5.5 1 2 4 8

 TQFP 100

ATmega325P

32 1 2048 54 20 1.8-5.5 1 2 4 8

 TQFP 64 MLF 64

ATmega328P

32 1 2048 23 20 1.8-5.5 1 2 6 8

 TQFP 32 MLF 32 PDIP 28

ATmega329

32 1 2048 54 16 1.8-5.5 1 2 4 8

 TQFP 64 TQFP 100 MLF 64

ATmega3290

32 1 2048 69 16 1.8-5.5 1 2 4 8

 TQFP 64 TQFP 100

ATmega3290P

32 1 2048 69 20 1.8-5.5 1 2 4 8

 TQFP 100

ATmega329P

32 1 2048 54 20 1.8-5.5 1 2 4 8

 TQFP 64 MLF 64

ATmega406

40 0.5 2048 18 1 4-25 1 1 1 --

ATmega64

64KB

2 4096 54 16 2.7-5.5 2 2 8 8

 TQFP 64 MLF 64

ATmega640

64 4 8192 86 16 1.8-5.5 4 2 16 16

ATmega644

64 2 4096 32 20 1.8-5.5 1 2 6 8

 TQFP 44 MLF 44 PDIP 40

ATmega644P

64 2 4096 32 20 1.8-5.5 1 2 6 8

 TQFP 44 MLF 44 PDIP 40

ATmega644P Automotive

64 2 4096 32 16 2.7-5.5 1 2 6 8

 QFN 44 TQFP 44

ATmega645

64 2 4096 54 16 1.8-5.5 1 2 4 8

 TQFP 64 MLF 64

ATmega6450

64 2 4096 69 16 1.8-5.5 1 2 4 8

 TQFP 64 TQFP 100

ATmega649

64 2 4096 54 16 1.8-5.5 1 2 4 8

 TQFP 64 TQFP 100 MLF 64

ATmega6490

64 2 4096 69 16 1.8-5.5 1 2 4 8

 TQFP 64 TQFP 100

ATmega64RZAPV

64 2 4096 32 20 1.8-5.5 1 2 6 8

 TQFP 44 MLF 44 PDIP 40

ATmega64RZAV

64 2 4096 32 20 1.8-5.5 1 2 6 8

 TQFP 44 MLF 44 PDIP 40

ATmega128

128KB

4 4096 53 16 2.7-5.5 2 2 8 8

 TQFP 64 MLF 64

ATmega1280

128 4 8192 86 16 1.8-5.5 4 2 16 16

 TQFP 100 CBGA 100

ATmega1281

128 4 8192 54 16 1.8-5.5 4 2 9 8

ATmega128RZAV

128 4 8192 54 16 1.8-5.5 4 2 9 8

 TQFP 64 MLF 64

ATmega128RZBV

128 4 8192 86 16 1.8-5.5 4 2 16 16

 TQFP 100

ATmega2560

256KB

4 8192 86 16 1.8-5.5 4 2 16 16

 TQFP 100

ATmega2561

256 4 8192 54 16 1.8-5.5 4 2 9 8

 TQFP 64 MLF 64

ATmega256RZAV

256 4 8192 54 16 1.8-5.5 4 2 9 8

 TQFP 64 MLF 64

ATmega256RZBV

256 4 8192 86 16 1.8-5.5 4 2 16 16

 TQFP 100

Flash (Kbytes) EEPROM (Kbytes) SRAM (Bytes) Max I/O Pins F.max (MHz) Vcc (V) 16-bit Timers 8-bit Timer PWM (channels) 10-bit A/D (Channels)

ATtiny11

1 -- -- 6 6 2.7-5.5 -- 1 -- --

 SOIC (208mil) 8 PDIP 8

ATtiny12

1 0.0625 -- 6 8 1.8-5.5 -- 1 -- --

 SOIC (208mil) 8 PDIP 8

ATtiny13

1 0.0625 64B + 32 reg 6 20 1.8-5.5 -- 1 2 4

 SOIC (150mil) 8 SOIC (208mil) 8 MLF 20 PDIP 8

ATtiny15L

1 0.0625 -- 6 1.6 2.7-5.5 -- 2 1 4

SOIC (208mil) 8 PDIP 8

ATtiny2313

2 0.125 128 18 20 1.8-5.5 1 1 4 --

 SOIC (300mil) 20 MLF 20 PDIP 20

PIC16F84A

1

0.064

68

13 20    -5.5 ? ?   --

 SOIC (300mil) 18   PDIP 18

ATtiny24

2 0.125 128 12 20 1.8-5.5 1 1 4 8

 MLF 20 PDIP 14 SOIC (150mil) 14

ATtiny24 Automotive

2 0.125 128 12 16 2.7-5.5 1 1 4 8

 rrow SOIC 14 QFN 28

ATtiny25

2 0.125 128 6 20 1.8-5.5 -- 2 4 4

 SOIC (208mil) 8 MLF 20 PDIP 8

ATtiny25 Automotive

2 0.125 128 6 16 2.7-5.5 -- 2 4 4

 rrow SOIC 8

ATtiny26

2 0.125 128 16 16 2.7-5.5 -- 2 2 11

 SOIC (300mil) 20 MLF 32 PDIP 20

ATtiny261

2 0.125 128 16 20 1.8 - 5.5 1 2 2 11

 SOIC (300mil) 20 PDIP 20 SOIC 20

ATtiny28L

2 -- 32 11 4 1.8-5.5 -- 1 -- --

TQFP 32 MLF 32 PDIP 28

ATtiny44

4 0.25 256 12 20 1.8-5.5 1 1 4 8

 MLF 20 PDIP 14 SOIC (150mil) 14

ATtiny44 Automotive

4 0.25 256 12 16 2.7-5.5 1 1 4 8

 rrow SOIC 14 QFN 20

ATtiny45

4 0.25 256 6 20 1.8-5.5 -- 2 4 4

 SOIC (208mil) 8 MLF 20 PDIP 8

ATtiny45 Automotive

4 0.25 256 6 16 2.7-5.5 -- 2 4 4

 rrow SOIC 8

ATtiny461

4 0.25 256 16 20 1.8 - 5.5 1 2 2 11

 MLF 32 PDIP 20 SOIC 20

ATtiny84

8 0.5 512 12 20 1.8-5.5 1 1 4 8

 MLF 20 PDIP 14 SOIC (150mil) 14

ATtiny84 Automotive

8 0.5 512 12 16 2.7-5.5 1 1 4 8

 QFN 20

ATtiny85

8 0.5 512 6 20 1.8-5.5 -- 2 4 4

 SOIC (208mil) 8 MLF 20 PDIP 8

ATtiny85 Automotive

8 0.5 512 6 16 2.7-5.5 -- 2 4 4

 rrow SOIC 8

ATtiny861

8 0.5 512 16 20 1.8 - 5.5 1 2 2 11

 MLF 32 PDIP 20 SOIC 20

 

 

 

 

 

 

 

 

 

 

 

* PORT A *

PA7 : 
AD7(External memory interface address and data bit 7)
PA6 : 
AD6(External memory interface address and data bit 6)
PA5 : 
AD5(External memory interface address and data bit 5)
PA4 : 
AD4(External memory interface address and data bit 4)
PA3 : 
AD3(External memory interface address and data bit 3)
PA2 : 
AD2(External memory interface address and data bit 2)
PA1 : 
AD1(External memory interface address and data bit 1)
PA0 : 
AD0(External memory interface address and data bit 0)


* PORT B *

PB7 : OC2/OC1C(Output Compare and PWM Output for Timer/Counter2 or Output Compare and PWM Output C for Timer/Counter1)
PB6 : OC1B(Output Compare and PWM Output B for Timer/Counter1)
PB5 : OC1A(Output Compare and PWM Output A for Timer/Counter1)
PB4 : OC0(Output Compare and PWM Output for Timer/Counter0)
PB3 : MISO(SPI Bus Master Input/Slave Output)
PB2 : MOSI(SPI Bus Master Output/Slave Input)
PB1 : SCK(SPI Bus Serial Clock)
PB0 : /SS(SPI Slave Select Input)


* PORT C *

PC7 : 
A15(External memory interface address bit 15)
PC6 : 
A14(External memory interface address bit 14)
PC5 : 
A13(External memory interface address bit 13)
PC4 : 
A12(External memory interface address bit 12)
PC3 : 
A11(External memory interface address bit 11)
PC2 : 
A10(External memory interface address bit 10)
PC1 : 
A9(External memory interface address bit 9)
PC0 : 
A8(External memory interface address bit 8)


* PORT D *

PD7 : T2(Timer/Counter2 Clock Input)
PD6 : T1(Timer/Counter1 Clock Input)
PD5 : XCK1(USART1 External Clock Input/Output)
PD4 : IC1(Timer/Counter1 Input Capture Trigger)
PD3 : INT3/TXD1(External Interrupt3 Input or USART1 Transmit Pin)
PD2 : INT2/RXD1(External Interrupt2 Input or USART1 Receive Pin)
PD1 : INT1/SDA(External Interrupt1 Input or TWI Serial Data)
PD0 : INT0/SCL(External Interrupt0 Input or TWI Serial Clock)


* PORT E *

PE7 : INT7/IC3(External Interrupt 7 Input or Timer/Counter3 Input Capture Trigger)
PE6 : INT6/ T3(External Interrupt 6 Input or Timer/Counter3 Clock Input)
PE5 : INT5/OC3C(External Interrupt 5 Input or Output Compare and PWM Output C for Timer/Counter3)
PE4 : INT4/OC3B(External Interrupt4 Input or Output Compare and PWM Output B for Timer/Counter3)
PE3 : AIN1/OC3A(Analog Comparator Negative Input or Output Compare and PWM Output A for Timer/Counter3)
PE2 : AIN0/XCK0(Analog Comparator Positive Input or USART0 external clock input/output)
PE1 : PDO/TXD0(Programming Data Output or UART0 Transmit Pin)
PE0 : PDI/RXD0(Programming Data Input or UART0 Receive Pin)


* PORT F *

PF7 : ADC7/TDI(ADC input channel 7 or JTAG Test Data Input)
PF6 : ADC6/TDO(ADC input channel 6 or JTAG Test Data Output)
PF5 : ADC5/TMS(ADC input channel 5 or JTAG Test Mode Select)
PF4 : ADC4/TCK(ADC input channel 4 or JTAG Test Clock)
PF3 : ADC3/(ADC input channel 3)
PF2 : ADC2/(ADC input channel 2)
PF1 : ADC1/(ADC input channel 1)
PF0 : ADC0/(ADC input channel 0)


* PORT G *

PG4 : TOSC1(RTC Oscillator Timer/Counter0)
PG3 : TOSC2(RTC Oscillator Timer/Counter0)
PG2 : ALE(Address Latch Enable to external memory)
PG1 : RD(Read strobe to external memory)
PG0 : WR(Write strobe to external memory)