SoftWare/임베디드

ATmega128이란?

CaLicS 2024. 1. 9. 15:57

지금까지는 임베디드의 제일 기초라 볼 수 있는 마이크로 프로세서 및 마이크로 컨트롤러에 대해서

간단하게 알아보았으니 이제 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개의 핀 구조를 가지고 있다.

ATmega128의 핀 배치

 

각 핀의 역할은

 

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

'SoftWare > 임베디드' 카테고리의 다른 글

ATmega128 프로그래밍 환경 구축 1  (0) 2024.01.18
컴퓨터의 기본 구조  (0) 2024.01.17
마이크로 컨트롤러란?  (0) 2024.01.08
마이크로 프로세서란?  (2) 2024.01.08
임베디드란?  (0) 2024.01.03