노트 :

Atmel AVR - ATmega128 본문

CS

Atmel AVR - ATmega128

IT_달토끼 2023. 5. 2. 18:41

 

 

 

Atmel AVR(Advanced Virtual RISC)은 1996년 Atmel 사(2016년에 Microchip 사에 인수됨)에서 개발된 하버드 구조로 수정한 8비트 RISC 단일칩 MCU이다.

 

 

 

 

 

Atmel 사의 AVR은 크게 Tiny, AT90, Mega 시리즈로 나눌 수 있다.

 

Tiny 시리즈 핀수가 8~24핀 정도의 작은 외형으로 대부분 외부 시스템 버스가 없고 내부에 1~2Kbyte 정도의 플래시 메모리를 가지고 있어 용량도 작은 편이다. UART를 지원하지 않고 RTC타이머가 없으며 16비트 타이머가 없고 8비트 타이머만 1~2개 있는 등 기능이나 성능이 비교적 낮지만 가격이 저렴하여 소형제어기에 적당하다.
Mega 시리즈 28~100핀 정도의 외형을 갖고 내부에 8~256Kbyte정도의 플래시 메모리와 256byte~4Kbyte정도의 EEPROM과 512byte~4Kbyte의 SRAM을 내장하고 있다. 20MHz의 클럭에서 20MIPS의 속도를 갖는 등 성능과 기능이 높으나 가격도 높다. 
AT90 시리즈 중간 정도 사양을 가진 시리즈로 AT90S의 경우에는 사양화되었다.

 

TinyAVR(ATtiny 시리즈), MegaAVR(ATmega 시리즈), XMEGA(ATxmega 시리즈), Application-specific AVR, FPSLIC(AVR에 FPGA 추가), 32-bit AVRs의 6가지로 나누기도 한다.

 

AVR은 ISP(In-Systme Programming) 인터페이스를 갖추고 있어서 별도의 롬라이터 없이 컴퓨터에서 시리얼 포트 등에 연결하는 ISP장비를 통해 손쉽게 프로그램을 짜 넣을 수 있어서 인기가 많다. 

 

AVR 중 ATmega128이 가격, 기능, 확장성 등의 이유로 교육용으로 가장 흔하게 사용되는데, 아두이노 우노가 ATmega128이 기반이다.

 

ATmega128은 모두 64개의 핀으로 구성되어 있으며, 핀의 기능은 크게 아래와 같다.

 

▶ 8비트 병렬 입출력이 가능한 6개의 포트(A, B, C, D, E, F) + 5비트 병렬 입출력이 가능한 1개의 포트(G)

전원 (VCC [21, 25], GND [22, 53, 63])

리셋(RESET [20])

 

ATmega128의 핀배치는 다음과 같다.

 

출처: microchip.com

 

포트 상세
포트A PA7~PA0 44~51 내부 풀업저항이 있는 8비트 양방향 입출력 단자, 외부 메모리를 둘 경우에는 주소버스와 데이터버스로 사용된다.(외부메모리 하위 어드레스 바이트 버스)
포트B PB7~PB0 10~17 내부 풀업저항이 있는 8비트 양방향 입출력 단자, SPI(Serial Peripherial Interface)용 단자 혹은 PMW(Pulse Width Modulation) 단자로도 사용된다. 
포트C PC7~PC0 35~42 내부 풀업저항이 있는 8비트 양방향 입출력 단자, 외부 메모리를 둘 경우에는 주소버스로 사용된다.(외부 메모리 상위 어드레스 바이트 버스)
포트D PD7~PD0 25~32 내부 풀업저항이 있는 8비트 양방향 입출력 단자, 타이머용 단자 혹은 외부 인터럽트용 단자로도 사용된다.
포트E PE7~PE0 2~9 내부 풀업저항이 있는 8비트 양방향 입출력 단자, 타이머용 단자, 외부 인터럽트, 아날로그 비교기, USART(Universal Synchronous Asynchronous Receiver and Transmitter)용 단자로도 사용된다. ISP를 사용한 칩 내부 플래시 및 EEPROM의 프로그래밍에 사용되는 PDIM PDO의 기능을 함께 가지고 있다.
포트F PF7~PF0 54~61 내부 풀업저항이 있는 8비트 양방향 입출력 단자, AD변환기 혹은 JTAG 인터페이스용 단자로도 사용된다. 
포트G PG4~PG0 19,18,43,34,33 내부 풀업저항이 있는 5비트 양방향 입출력 단자, 외부 메모리 접속을 위한 스트로브 신호용, RTC(Real Time Counter) 타이머용 발진기 단자로도 사용된다.

 

 

 

 

 

참고:

michrochip.com

wikipedia.org

namu.wiki

최한호, 서계원 김재경, 「한번에 이해되는 AVR ATmega128 마이크로컨트롤러」, 인피니티북스