정보공간_1

[6기 전주 황규하] AVR로 알아보는 MCU 구조 - AVR Features 본문

IT 놀이터/Elite Member Tech & Talk

[6기 전주 황규하] AVR로 알아보는 MCU 구조 - AVR Features

알 수 없는 사용자 2014. 8. 4. 09:50

Atmega128 파헤치기

MCU의 구조를 이해하면 나중에 임베디드시스템을 공부하는데 기초적인 공부가 될 것이라고 생각합니다. 때문에 MCU의 구조적인 측면에서 게시하고자 합니다. 많은 MCU들이 있지만 비교적 구조가 간단한 Atmega128을 기준으로 글을 이어나가고자 합니다. 참고자료는 Atmel사에서 제공하는 Atmega128 datasheet를 사용했습니다. 또한 용어는 위키백과 및 zene Park 저자의 SPI 글을 참고했습니다.

 

1. Atmega128 Features
Atmega128 datasheet의 첫 페이지에 나와있는 특성을 요약해보면 다음과 같습니다.
- High-performance, Low-power Atmel AVR 8bit Microcontroller
- Advanced RISC Architecture
- High Endurance Non-volatile Memory segments
- QTouch library support
- JTAG (IEEE std. 1149.1 Compliant) Interface
- Peripheral Features
- Special Microcontroller Features
- I/O

하나 하나 이야기를 해보겠습니다.
8bit Microcontroller. 연산 및 레지스터에 한 번에 처리할 수 있는 양이 8bit라는 것이고, Microcontroller라는 이야기는 processor core를 포함하여 ram, rom, 입출력 장치 등이 한 칩 안에 포함되어 있다는 말입니다.
- RISC Architecture. 프로세서의 구조는 CISC 구조와 RISC 구조로 나누어집니다. Atmega128은 이 중 RISC구조를 택하고 있습니다. RISC 구조는 CPU 명령어의 개수를 줄여 하드웨어 구조를 좀 더 간단하게 만드는 방식입니다.
(참고 http://ko.wikipedia.org/wiki/RISC)
- Non volatile Memory segments. 비휘발성 메모리로서 128Kbytes Flash memory(프로그램이 스스로 작동 가능한 메모리), 4Kbytes EEPROM, 4Kbytes 내부 SRAM 등으로 구성되어있습니다.
Qtouch library support. Qtouch는 휠, 슬라이더, 키로 구성된 터치 디바이스 인데 이 라이브러리를 지원한다는 의미입니다.
- JTAG interface. JTAG은 임베디드 시스템 개발 시에 사용하는 디버깅 장비로, 이 인터페이스를 제공한다는 의미입니다.
- Peripheral Features. 주변 특징을 애기하며, 2개의 Timer/Counters, 2개의 확장 Timer/Counters, Real Time Counter, 2개의 PWM채널, 8채널 10비트 ADC 등등 Atmega128의 주변 모듈에 관해 간략히 설명해 놓았습니다. 자세한 부분은 앞으로 게시하는 글에서 하나하나 살펴보도록 하겠습니다.
- Special MIcrocontroller Features. 6가지 슬립모드, 외부 및 내부 인터럽트 소스 등등의 부분이 있는데 이 부분은 나중에 여유가 되면 한 번 더 살펴보도록 하곘습니다.
- I/O. 53개의 입출력 포트를 의미합니다.


2. Pin Configuration

 
Atmega핀을 살펴보면 AVCC, GND, AREF, VCC, /RESET등의 특정한 일을 하는 핀들과 PA ~ PG 까지 I/O 역할을 하거나 각자 맡은 특정한 역할을 하는 핀으로 나누어져 있다. 이 핀들은 프로그래밍을 할 때 설정하는 방법에 따라 역할이 정해집니다.



 
Atmel AVR core는 다양한 명령어를 32개의 General puporse 레지스터를 결합한다. 모든 32개의 레지스터는 ALU(산술 논리 장치)에 직접적으로 연결되어 있습니다. 한 클럭의 사이클에는 한 개의 명령어와 2개의 독립적인 레지스터의 접근이 이루어 질 수 있습니다.

3. Pin Descriptions
VCC 디지털 공급 전압
GND 그라운드
PortA~G - I/O Port ( 입력핀으로 설정할 경우 내부 풀업 저항 설정 가능) / 특정 역할
/RESET low level 신호가 최소 펄스 길이보다 길게 입력되면 프로그램을 처음부터 실행
XTAL1 Oscillator amplifierinverting 입력과 내부 클럭 실행 회로의 입력
XTAL2 Oscillator amplifierinverting 출력
AVCC A/D Converter의 공급전압, ADC를 사용하지 않아도 외부적으로 VCC와 연결 되어 있어야 함, ADC를 사용할 경우 low-pass filter를 통해 Vcc에 연결 되어있어야 함.
AREF A/D converteranalog reference
PEN SPI Serial Programming mode를 위한 enable . Power on Reset 동안 low로 유지하고 있으면 SPI Serail Programming mode로 진입

- 용어 정리


풀업 저항(Pull-up Resistor)


 풀업 저항은 Switch가 연결되지 않은 상태일 때, 전압공급 소스를 연결 시켜 주고, 연결된 상태에 있을 때, GND 소스를 연결 시켜주어 입력을 보장하기 위해 연결합니다. 반대의 경우는 풀다운 저항(pull-down resistor)라고도 부릅니다.

Oscillator(발진기)
Oscillator는 입력신호가 없어도 일정한 주파수의 신호가 출력되는 회로를 의미합니다.

A/D Converter
A/D Converter는 아날로그 신호를 디지털 신호로 변경해주는 회로로써, Atmega128에서는 하나가 존재합니다.

SPI
Serial Peripheral Interface는 직렬 주변기기 인터페이스로서 MCU와 주변장치간의 seril 통신을 위한 규약입니다. 이는 외부 주변장치와 clock을 통하여 동기화 하는 동기식 통신 방식이며 하나의 Master와 하나 또는 다수의 Slave Device간의 동신이 가능합니다.

다음 글에서는 AVR CPU Core에 대해서 하나씩 살펴보도록 하겠습니다.