Atmel AVR - ATmega128
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의 핀배치는 다음과 같다.
포트 | 핀 | 상세 | |
포트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 마이크로컨트롤러」, 인피니티북스