ATmega128이란?
지금까지는 임베디드의 제일 기초라 볼 수 있는 마이크로 프로세서 및 마이크로 컨트롤러에 대해서
간단하게 알아보았으니 이제 ATmega에 대해서 알아보도록 하겠다.
ATmega128의 특징
ATmega128은 하버드 구조를 갖는 Atmel사의 8비트 마이크로컨트롤러이다.
파이프라인이 적용되어 대부분의 명령어 수행에 1 클럭 사이클이 소요되며 시스템 클럭
1[MHz]당 1[MIPS]의 성능을 발휘한다.
여기서 하버드구조란, 컴퓨터에서 명령을 메모리로부터 읽는 것과 데이터를 메모리부터
읽는 것을 동시에 할 수 있는 것을 말한다.
1. 진보된 RISC구조
- 대부분 1 클럭 사이클에 실행되는 133개의 강력한! 명령어
- 32개의 8비트 범용 목적 레지스터와 주변 장치 제어 레지스터
- 16[MHz]에서 16[MIPS]까지 동작 가능
- 2클럭 사이클에 동작하는 곱셈기 내장
2. 오랜 기간 유지되는 비휘발성 메모리 내장
- ISP가 지원되는 128[KB]의 플래시 메모리(최대 10,000회 다시 쓰기 가능)
- 4[KB] EEPROM(최대 100,000회 다시 쓰기 가능)
- 데이터 유지 기간 : 85[℃]에서 20년, 25[℃]에서 100년
- 4[KB] 내부 SRAM
- 최대 64[KB]까지 외부 메모리 확장 가능
- 소프트웨어 유출 방지를 위해 프로그램 방식에 의한 잠금 기능 보유
- SPI 인터페이스를 통한 ISP 가능
3. JTAG(IEEE std. 1149.1) 인터페이스
- On-chip 디버깅 지원
- JTAG 인터페이스 이용한 플래시 메모리, EEPROM, 퓨즈 그리고 락 비트 프로그램 가능
4. 주변 장치 특징
- 별도의 프리스케일러와 비교 모드가 제공되는 두 개의 8비트 타이머/카운터
- 별도의 프리스케일러, 비교 모드 그리고 캡쳐 모드가 제공되는 두 개의 확장된 16비트 타이머/카운터
- 별도의 발진기를 이용한 RTCA
- 두 개의 8비트 PWM 채널
- 2~16비트 내에서 프로그램 가능한 정밀도를 갖는 6개의 PWM 채널
- 8개의 입력 채널을 갖는 10비트 ADC
- Tow-wire 직렬 인터페이스
- 두 개의 USART
- 마스터/슬레이브 SPI 인터페이스
- 프로그램 가능한 와치독 타이머
- 아날로그 비교기
5. 특별한 기능
- 전원 인가 시 자동 Reset 및 전원 불안 시 자동 Reset 가능
- 내부 RC 발진기
- 외부/내부 인터럽트 발생 기능
- 6가지의 슬립 모드 : Idel, ADC 노이즈 저감, Power-save, Power-down, 대기와 확장 대기
- 소프트웨어로 선택 가능한 동작 클럭 주파수
- IO 포트의 모든 풀업 저항 해제 가능
6. I/O와 패키지
- 53개의 프로그램 가능한 I/O
- 64핀 TQFP와 64핀 QFN/MLF
7. 동작 전압
- ATmega128L : 2.7[V] ~ 5.5[V]
- ATmega128 : 4.5[V] ~ 5.5[V]
8. 동작 속도
- ATmega128L : 0 ~ 8[MHz]
- ATmega128 : 0 ~ 16[MHz]
ATmega128의 외부 구조
ATmega128은 이 처럼 64개의 핀 구조를 가지고 있다.
각 핀의 역할은
VCC
전원 입력으로 ATmega128L은 2.7[V] ~ 5.5[V]가 ATmega128은 4.5[V] ~ 5.5[V]가 인가된다.
GND
전원의 GND에 연결된다.
PORT A~F
ATmega128은 내부에서 풀업 저항이 제공되는 8비트 입출력(I/O) 포트를 6개 구비하고 있다. PA7 ~ PA0는 포트 A에, PB7 ~ PB0는 포트 B에, PC7 ~ PC0는 포트 C에, PD7 ~ PD0는 포트 D에, PE7 ~ PE0는 포트 E에, PF7 ~ PF0는 포트 F에 사용된다.
PORT G
PG4 - PG0은 내부에서 풀업 저항이 제공되는 5비트 입출력 포트 G에 사용된다.
RESET
ATmega128을 초기화하는 리셋 신호가 입력된다. 이 핀으로 공급되는 신호가 1.5[usec] 이상 Low 상태가 유지되었다가 High 상태가 되면 ATmega128은 리셋된다.
XTAL1, XTAL2
ATmega128의 동작에 필요한 시스템 클럭이 공급된다. 수정 발진기의 입/출력이 연결되거나, 오실레이터가 연결된다.
AVCC
ATmega128 내부에 존재하는 ADC(Analog-to-Digital Converter)를 위한 전원이 공급된다. 일반적으로 Low pass 필터를 통하여 VCC로 연결된다.
ARFE
Atmega128 내부에 존재하는 ADC(Analog-to-Digital Converter)의 변환 동작의 기본이 되는 기준 전압이 입력된다.
PEN
SPI(Serial Peripheral Interface) 직렬 프로그래밍 모드의 동작 여부를 결정한다. 내부적으로는 High 상태가 유지되며, 외부 회로에 의해 Power-on Reset 시 Low 상태가 되면 ATmega128은 SPI 직렬 프로그래밍 모드로 진입한다.
입출력 포트로 사용되는 핀들은 포트별로 다음과 같은 추가적인 기능을 수행할 수 있도록 설계되어 있다.
PORT A
외부 메모리용 Address(A7 ~ A0)와 Data(D7 ~ D0)
PORT B
Timer/Counter의 비교 출력, SPI Bus
PORT C
외부 메모리용 Address(A15 ~ A8)
PORT D
Timer/Counter clock 입력, 외부 인터럽트 입력, USART1
PORT E
외부 인터럽트 입력, USART0
PORT F
ADC 입력, JTAG
PORT G
외부 메모리 제어 신호, Address Latch Enable