27
Overview of AVR 2010, 7, 16 조 조조 Reference : 조조조조조조조조 (AVR 조 ), 조조조조 조조조조 조조조조조조조조 AVR 조조조조조 조조 , 조조조조

Overview of AVR

Embed Size (px)

DESCRIPTION

Overview of AVR. 2010, 7, 16 조 승훈. Reference : 마이크로컨트롤러 (AVR 편 ), 한백전자 임베디드 마이크로프로세서 AVR 프로그래밍 실전 , 네로테크. Index. Introduction ATmega128 의 구조 전체 구조 핀 구조 포트 구조 코어 구조. Intro. 마이크로 프로세서와 마이크로 컨트롤러 마이크로 프로세서 (Micro-Processor) 컴퓨터의 프로세서를 단일 IC 칩에 집적시켜 만든 반도체 소자 - PowerPoint PPT Presentation

Citation preview

Page 1: Overview of AVR

Overview of AVR

2010, 7, 16조 승훈

Reference : 마이크로컨트롤러 (AVR 편 ), 한백전자 임베디드 마이크로프로세서 AVR 프로그래밍 실전 , 네로테크

Page 2: Overview of AVR

Index

Introduction

ATmega128 의 구조– 전체 구조– 핀 구조– 포트 구조– 코어 구조

Page 3: Overview of AVR

Intro

마이크로 프로세서와 마이크로 컨트롤러– 마이크로 프로세서 (Micro-Processor)

• 컴퓨터의 프로세서를 단일 IC 칩에 집적시켜 만든 반도체 소자• 단순히 프로세서 또는 MPU (Micro-Processing Unit) 라 부름• 1971 년 Intel 사에서 세계 최초로 마이크로 프로세서 개발

– 마이크로 컨트롤러 (Micro-Controller)• 지능화를 위해 단일 칩 내에 CPU 코어와 함께 한정된 용량의 주기억장치

(Rom, RAM) 와 입출력 인터페이스 등을 내장• 칩 하나만으로 기본적인 컴퓨터의 기능 수행• 최소의 부품으로 간단한 컴퓨터 구성 가능 , 시스템의 단순화 및 저비용화

가능• 범용 목적보다는 기기제어용으로 주로 사용• 융통성 및 확장성 용이• 신뢰성 향상 ( 부품 수가 적어 시스템 단순 , 낮은 고장률 , 보수 편리 )

Page 4: Overview of AVR

Intro

AVR 마이크로 컨트롤러– ATMEL 사가 1997 년 처음 발표한 8bit 제어용 마이크로 프로세서

– Alf-Egil Bogen 과 Vegard Wollan 의 진보된 RISC 기술을 기반되었다고 하여 첫 글자를 따서 AVR 이라 명명

(Advanced Virtual RISC 의 약자라는 의견도 있음 )

– 유사 RISC 구조 (RISC 구조를 따르나 , 명령어의 수가 많음 )

– 많은 장점 때문에 상대적으로 늦게 출시되었음에도 8051 이나 PIC를 능가하는 인기를 단시간 내에 얻음

Page 5: Overview of AVR

Intro

AVR 마이크로 컨트롤러의 특징– RISC (Reduced Instruction Set Code) 구조– 하버드 아키텍처 (Harvard Architecture)– 32 개의 8bit 범용 레지스터를 가지는 레지스터 중심 구조– CMOD 기술 채택으로 소비전력이 매우 적고 동작전압이 1.8-5.5V 로

큼– 다양한 동작 모드를 제공해 저전력 동작 지원– 1K-256Kbyte 플래시롬 , EEPROM 및 SRAM 이 작은 칩 하나에

내장– 유사 RISC 구조와 32 개의 레지스터 사용과 고집적으로 1MHz 당

1MIPS 의 속도– 8 핀에서 100 핀의 외형과 이에 상응하는 메모리와 가능을 갖는

다양한 시리즈 존재– 모델에 따라 매우 다양한 I/O 기능을 사용 가능– 외부 시스템 버스를 이용하여 데이터 메모리 또는 I/O 디바이스를

확장 가능– 다양한 인터럽트 소스와 처리 기능 보유– 무료 개발 도구인 AVR Studio 등 , 값싼 개발 도구 제공– ISP (In-System Program) 기능 제공

Page 6: Overview of AVR

Intro

ATmega128 의 특징– Atmel 사의 8bit 마이크로 컨트롤러– 고성능의 AVR Mega 시리즈 중에서도 가장 고성능 대용양의

마이크로 컨트롤러

– 프로세서 코어• 133 개의 명령어 • 32 개의 8-bit 범용 레지스터• 16MHz 에서 16MIPS 의 명령 처리 속도

– 메모리• 128KB 프로그램 플래시 메모리 (10,000 번 쓰기 / 삭제 가능 )• 4KB EEPROM (100,000 번 쓰기 / 삭제 가능 )• 4KB SRAM• 64KB 외부 메모리 인터페이스

Page 7: Overview of AVR

Intro

ATmega128 마이크로 컨트롤러 코어 – Power-on Reset, 안정된 전원공급을 위한 Programmable Brown-

out Detection– 내부 RC 오실레이터– 외부와 내부의 인터럽트 소스– 6 개의 Sleep 모드– 소프트웨어적으로 선택 가능한 클럭 주파수– 전체 풀업 Disable *I/O 와 Package– 프로그램 가능한 53 개의 I/O– 64-lead TQF (Thin Quad flat) / 64-pad MLF *Operation Voltage– 2.7 ~ 5.5V : ATmega128L * 속도 – 0 ~ 8 MHz : ATmega128L

Page 8: Overview of AVR

Intro

ATmega128 주변장치 – 2 개의 8 비트 타이머 / 카운터 , 2 개의 16 비트 타이머 / 카운터– 2 개의 8bit PWM (Pulse Width Modulation) 채널– 6 개의 프로그램 가능한 2~16bit PWM 채널– 분리된 프리스케일러 , 비교모드 , 캡쳐모드를 가진 2 개의 확장 16

비트 타이머 / 카운터– 분리 된 오실레이터에 의한 Real Time Count– Output Compare Modulator– 8 채널 , 10bit ADC– Two-wire Serial 인터페이스– 두 개의 시리얼 UART– Master/Slave SPI (Serial Peripheral Interface)– 프로그램 가능 한 Watchdog 타이머– 아날로그 비교기

Page 9: Overview of AVR

ATmega128 의 내부 구조

PORT F PORT A PORT C

PORT DPORT E PORT B

GPR

SPPC

ADC

ALU

Status

Timer

SRAMFlash

Interrupt

EEPROM

MCUCR

WDT

Osc

PORT G

UART0 UART1 TWISPI

Page 10: Overview of AVR

ATmega128 의 내부 구조

내부 파이프라인 처리 동작

1 사이클에 처리되는 ALU 동작

Page 11: Overview of AVR

ATmega128 핀 구조

PORT A

PORT C

PORT E

PORT B

PORT F

PORT D

PORT G

ADCExt. In-

put

< ATmega128 패키지 >• 총 64pin• TQFP 또는 MLF (Thin Quad Flat Pack)• 7 개의 범용 입축력 포트

< 제어 신호 > • RESET( 핀 20) : 시스템

리셋• XTAL1, 2 ( 핀 24, 23) 발진용 증폭기 입력 및 출력 단자• Vcc ( 핀 21, 52) 전원 입력 단자• GND ( 핀 22, 53, 63) 그라운드 입력 단자• AVCC ( 핀 64) AD 변환기 및 포트 F 에 대한 전압 공급• AREF ( 핀 62) : ADC 참고

전압• PEN( 핀 1) Programming

Enable

Page 12: Overview of AVR

ATmega128 포트 구조

I/O 포트의 기본 구조 1– 6 개의 8 비트 양방향 병렬 I/O 포트 (A ~ F) 와 1 개의 5 비트 병렬

I/O 포트 (G)– H 상태의 source drive 와 L 상태의 sink drive 능력이 대칭적– Read-Modify-Write 동작 가능 (A ~ E)– 최대 구동전류 (sinks up to 40mA)– 풀업저항의 사용 여부를 설정 (Pinwise Controlled Pull-Up Resis-

tors)– 데이터 입출력방향을 설정 (Pinwise Controlled Data Direction)– Three Control/Status Bits per Bit/Pin

Page 13: Overview of AVR

ATmega128 포트 구조

I/O 포트의 기본 구조 2– 각 포트는 3 개의 I/O 레지스터 영역으로 구성

• DDRx (Data Direction Register) : 입출력의 방향을 설정• PORTx (Data Register) : 데이터 출력에 해당하는 PORTx 레지스터• PINx (Port Input Pins Address) : 포트 입력 핀에 해당하는 PINx

레지스터• DDR, PORT 는 읽고 쓰는 것이 가능 , PIN 은 읽는 것만 가능한 레지스터• I/O 포트의 풀업저항은 SFIOR 레지스터의 PUD(Pull-Up Disable) bit 를

1 로 셋하여 금지 , 내부 풀업 저항을 사용하려면 PUD bit 를 0 으로 설정 (DDRx=0, PORTx=1)

• 풀업저항 (Pull-Up Resistor) 회로가 연결되어 있지 않으면 잡음 등 불안정한 값이 읽어질 수 있기 때문에

스위치와 입력 핀 사이에 충분히 큰 저항을 두고 VCC 와 연결하여 명시적으로 HIGH 값을 주는 저항

Page 14: Overview of AVR

ATmega128 포트 구조

범용 입출력 신호– 포트 A-F 는 8 비트 양방향 입출력 단자– 포트 G 는 5 비트 양방향 입출력 단자

– 포트 A (PA7~PA0: 핀 44-51) : 외부메모리를 둘 경우 주소버스 (A7-A0) 와 데이터버스 (D7-D0) 로 사용

– 포트 B (PB7~PB0: 핀 10-17) : SPI 용 단자 혹은 PWM 단자로도 사용

– 포트 C (PC7~PC0: 핀 35-42) : 외부메모리를 둘 경우 주소버스(A15-A8) 로 사용

– 포트 D (PD7~PD0: 핀 25-32) : 타이머용 단자 혹은 외부 인터럽트용 단자로 사용

– 포트 E (PE7~OE0: 핀 2-9) : 타이머용 단자 , 외부인터럽트 , 아날로그 비교기 , USART 용 단자로 사용

– 포트 F (PF7~PF0: 핀 54-61) : AD 변환기 혹은 JTAG 인터페이스용 단자로도 사용

– 포트 G (PG4~PG0: 핀 19, 18,43, 34,33) : 외부 메모리 스트로브 신호 , RTC 타이머용 발진기 단자로 사용

Page 15: Overview of AVR

I/O 포트의 부수적 동작

포트 A– 외부메모리를 인터페이스 위한 데이터버스 및 어드레스 버스의

하위바이트로 동작– 어드레스 버스를 분리하는데 ALE(Address Latch Enable) 신호를

사용

Page 16: Overview of AVR

I/O 포트의 부수적 동작

포트 B– 타이머 / 카운터나 SPI 기능을 위한 신호들로 동작

Page 17: Overview of AVR

I/O 포트의 부수적 동작

포트 C– 외부 메모리를 인터페이스하기 위한 어드레스 버스의 상위 바이트로

동작

Page 18: Overview of AVR

I/O 포트의 부수적 동작

포트 D– 타이머 / 카운터나 외부 인터럽트 또는 USART1, TWI 직렬통신

포트 기능을 위한 신호들로 동작

Page 19: Overview of AVR

I/O 포트의 부수적 동작

포트 E– 타이머 / 카운터나 외부인터럽트 또는 USART0 직렬통신포트 ,

아날로그 비교기 , ISP 기능을 위한 신호로 동작

Page 20: Overview of AVR

I/O 포트의 부수적 동작

포트 G– PG4 ~ PG0 의 5 비트만 사용되며 부수적인 기능은 외부메모리

인터페이스나 타이머 / 카운터로 동작

Page 21: Overview of AVR

ATmega128 의 핀 구조

기 능구 분

핀이름

핀번호

핀명칭

설 명

I/O또는Ad-

dress

PA0(AD0)~

PA7(AD7)

51~44

Port A

PA0 ~ PA7 로 사용 될 때 일반 범용 I/O 핀으로 사용 될 때는 신호의 방향을 결정짓는 DDRA,

핀을 통해 출력될 데이터를 저장할 PORTA, 핀을 통해 입력될 데이터를 저장할 PINA 3 개의 레지스터 설정을 통해 제어되는 양방향성 I/O 포트로 사용

AD0 ~ AD7 로 사용될 때 외부 메모리에 접근하기 위해 사용될 때는 하위 어드레스 버스로 사용되며 , 이 경우 ALE 신호에 의해 상위 어드레스와 분리

I/OPB0~

PB7

10~17

Port B

PB0 ~ PB7 로 사용 될 때 Port A 와 마찬가지로 DDRB, PORTB, PINB 레지스터들에 의해

제어되는 양방향성 I/O 포트로 사용 됨 다른 용도로 사용될 때

Port A 와 달리 각 핀마다 서로 다른 용도로 사용

I/O 또는 Ad-

dress

PC0(A8)~

PC7(A15)

35~42

Port C

PC 0 ~ PC7 로 사용 될 때 Port A 와 마찬가지로 DDRB, PORTB, PINB 레지스터들에 의해

제어되는 양방향성 I/O 포트로 사용 됨 A8 ~ A15 로 사용 될 때

Port A 가 어드레스 버스로 사용될 경우와 마찬가지로 Port C 역시 외부 메모리에 접근하기 위해 사용 될 수 있으며 , 이 때는 Port A 가 하위 어드레스 버스로 사용된 것과 달리 Port C 는 상위 어드레스 버스로 사용 됨

Page 22: Overview of AVR

ATmega128 의 핀 구조

기 능구 분

핀이름

핀번호

핀명칭

설 명

I/OPD0~

PD7

25~32

Port D

PD0 ~ PD7 로 사용 될 때 Port A 와 마찬가지로 DDRB, PORTB, PINB 레지스터들에 의해

제어되는 양방향성 I/O 포트로 사용 됨 다른 용도로 사용될 때

Port A 와 달리 각 핀마다 서로 다른 용도로 사용

I/OPE0~

PE72~9 Port E

PE0 ~ PE7 로 사용 될 때 Port A 와 마찬가지로 DDRB, PORTB, PINB 레지스터들에 의해

제어되는 양방향성 I/O 포트로 사용 됨 다른 용도로 사용될 때

Port A 와 달리 각 핀마다 서로 다른 용도로 사용

I/O 또는 Ad-

dress

PFC0(ADC0)

~PF7

(ADC7)

54~61

Port F

PF 0 ~ PF7 로 사용 될 때 Port A 와 마찬가지로 DDRB, PORTB, PINB 레지스터들에 의해

제어되는 양방향성 I/O 포트로 사용 됨 ADC0 ~ ADC7 로 사용 될 때

ATmega128 내부에 있는 8 채널 (0~7) 의 10 비트 ADC(Analog to Digital Converter) 의 아날로그 입력으로 사용

I/OPG0~

PG4

33, 34,43, 18,19

Port G

PG0 ~ PG4 로 사용 될 때 Port A 와 마찬가지로 DDRB, PORTB, PINB 레지스터들에 의해

제어되는 양방향성 I/O 포트로 사용 됨 다른 용도로 사용될 때

Port A 와 달리 각 핀마다 서로 다른 용도로 사용

Page 23: Overview of AVR

ATmega128 의 핀 구조

기 능구 분

핀이름

핀번호

핀명칭

설 명

프로세서

프로그래밍

#PEN 1Programming

Enable

Power-On Reset 모드 , 즉 전원이 인가되면서 시스템이 Reset될 때 , 이 핀의 상태가 Low 일 경우

ATmega128 이 SPI 시리얼 프로그래밍 모드로 들어 갈 수 있도록 하는데 사용되며 , 평상시에는 아무런 기능이

없는 핀 .

시리얼통신

RXD0, TXD0,RXD1, TXD1

2, 3, 27, 28

USART0, USART1Transmit / Receive Data

동기와 비동기 방식을 모두 지원하는 시리얼 통신 포트 USART0, USART1 포트에서 데이터를 송수신 할 때

사용하는 핀

XCK0, XCK1

4, 30USART0, USART1

External ClockInput / Output

시리얼 통신이 동기 모드일 경우 데이터를 송수신하기 위해 필요한 클럭 신호용 핀

타이머 /카운터

OC3A, B, C, OC1A, B, C,

0C0

5, 6, 7, 17, 15,

16, 17, 14

Timer / Counter0, 1, 2, 3 Output Compare

Match and PWM Output

ATmega128 내부에 있는 타이머 / 카운터 0, 1, 2, 3의 출력을 비교하기 위해 사용하는 용도이거나 혹은

PWM 모드에서 PWM 신호 출력용으로 사용

T3, T2, T1 8, 32, 31Timer / Counter1, 2, 3

Clock InputAtmega128 내부에 있는 타이머 / 카운터 1, 2, 3 의

클럭 신호 입력용으로 사용되는 핀

IC3, IC1 9, 29Timer / Counter1, 3 In-

put CaptureTrigger

Atmega128 내부에 있는 타이머 / 카운터 1, 3 이 캡쳐모드로 동작 할 때 , 트리거 신호용으로 사용되는

TOSC2, TOSC1

18, 19Timer / Counter0 RTC

Oscillator

ATmega128 내부에 있는 타이머 / 카운터 0 가 RTC (Real Time Clock) 모드로 동작 할 경우 외부 발진자를

연결하기 위한 단자로 사용 됨

Page 24: Overview of AVR

ATmega128 의 핀 구조

기 능구 분

핀이름

핀번호

핀명칭

설 명

SPI

#SS 10SPI Slave

Select Input SPI 채널에서 슬레이브를 선택 할 때 사용하는 핀

SCK 11 SPI Serial ClockSPI 채널에서 마스터의 경우엔 클럭 출력용으로 , 슬레이브의 경우엔 클럭 입력용으로 사용하는 핀

MOSI 12SPI Master Out-

put,Slave Input

SPI 채널에서 마스터의 경우엔 클럭용으로 , 슬레이브의 경우엔 데이터 입력으로 사용하는 핀

MISO 13SPI Master Input,

Slave OutputSPI 채널에서 마스터의 경우엔 데이터 입력용으로 , 슬레이브의 경우엔 데이터 출력용으로 사용되는 핀

Reset #RESET 20 Reset ATmega128 을 리셋하기 위해 사용되는 핀

클럭 XTAL2, XTAL1

23, 24

Oscillator 외부 발진자와 연결 될 때 사용

디지털전원

VCC21, 52

Digital SupplyVoltage

Atmega128 이 내장된 회로의 디지털 전원 입력용으로 사용되는 핀으로서 , Atmega128 과 ATmega128L 에 따라 달리 사용

GND22, 53

Circuit Ground 전원의 그라운드 (접지 ) 단자로 사용되는 핀

Page 25: Overview of AVR

ATmega128 의 핀 구조

기 능구 분

핀이름

핀번호

핀명칭

설 명

아날로그

전원

AVCC 64Analog Supply

VoltageATmega128 이 내장된 회로의 아날로그 전원 입력용으로 사용되는 핀으로서 , ADC 의 입력 전원으로 사용

GND 63 Analog Ground AVCC 의 접지용 단자로 디지털 전원의 AND 와 연결

AREF 62Analog Refer-

enceVoltage

ADC 에서 기준으로 사용되는 전압

TWI(I2C)

SCL 25 TWI Serial ClockTWI(I2C) 채널의 클럭 신호용으로 사용되는 핀

SDA 26 TWI Serial DataTWI(I2C) 채널의 데이터 송수신용으로 사용되는 핀

인터럽트

INT0 ~INT7

25~28

6~9

External Inter-rupt

주변 하드웨어의 ( 외부 ) 인터럽트 신호용으로 사용되는 핀

외부 데이터 메모리 입출력

#WR 33 Write Strobe외부 데이터 메모리에 데이터를 쓸 때 , 이를 신호로 알리기 위해 사용되는 핀

#RD 34 Read Strobe외부 데이터 메모리에서 데이터를 읽어 올 때 , 이를 신호로 알리기 위해 사용되는 핀

Page 26: Overview of AVR

ATmega128 의 핀 구조

기 능구 분

핀이름

핀번호

핀명칭 설 명

ISP

PDI 2Programming

Data Input

ATmega128(슬레이브 ) 이 ISP(In-System Pro-gramming) 을 수행하는 PC( 마스터 ) 로 보내는 데이터 신호용으로 사용되는 핀

PDO 3Programming Data

Output

ISP 를 수행하는 프로그램에 의해 PC( 마스터 ) 가 ATmega128(슬레이브 ) 로 보내는 데이터 신호용으로 사용되는 핀

SCK 11 Serial ClockISP 를 수행하는 프로그램에 의해 PC( 마스터 ) 가 ATmega128(슬레이브 ) 로 보내는 클럭 신호용으로 사용되는 핀

ADCAIN0 4

Analog ComparePositive Input

ADC 의 양 (+) 극성 입력으로 연결되는 핀

AIN1 5 Analog Compa ADC 의 음 (-) 극성 입력으로 연결되는 핀

Page 27: Overview of AVR

ATmega128 코어 구조

Data Memory

Program Memory

Control Register