본문 바로가기

AVR(ATmega128)로 장난하기

AVR(ATmaga128) 기초지식(1)_AVR ATmega128이란?



1. AVR란?


  ATMEL사가 개발한 AVR은 현재 8비트 AVR과 32비트 AVR을 제공하고 있는 마이크로 컨트롤러이다. AVR의 다양한 명령과 쉬운 구조를 띄고 있어 마이크로 컨트로로러 이해하는데 쉽게 접근할 수 있으며, 가격이 저렴하고 응용하기 쉬워 산업시장에서도 많이 사용되어 지고 있다.

  AVR은 1개의 클록 사이클에 1개의 명령을 처리 할 수 있으며, 1.8V에서 5.5V까지 어느 전압이든 동작 시킬 수 있다. 또한 picoPower 기술이 적용된 제품의 경우 저 전력 설계가 가능하고, 32개의 범용 레지스터와 RISC 구조의 디자인은 C언어에 적합하여 제품을 빠르게 개발하는데 도움이 된다. 재부에 플래시 메모리를 제공함으로서 새로 개발되는 제품의 크기를 줄일 수 있고, 제품의 크기가 줄면서 원가 절감에도 도움이 된다. 또한 6핀 또는 10핀 인터페이스로 제공되는 ISP(In-System Programming)기능이나 JTAG 기능은 쉽게 제품을 개발하는데 도움이 된다.


2. AVR의 제품 종류


Avr의 제품은 여러 스팩으로 다양하게 출시되고 있습니다. 크게 용량과 기능으로 나누면 4개의 제품군으로 나눌 수 있는데, 그 아래 파생모델이 수종류로 분류됩니다.


(1)tinyAVR

최대 8KBytes의 플래시 프로그램 메모리와 512Bytes의 SRAM과 EEPROM 데이터 메모리를 가진 범용 마으크로컨트롤러 계열입니다.


(2)megaAVR

곱셈기가 내장된 최대 256KBytes의 플래시 메모리와 4KBytes의 EEPROM 메모리 그리고 8KBytes의 SRAM을 가진 고성능 마이크로컨트롤러 계열입니다.


(3)xmegaAVR

일반 8비트 마이크로컨트롤러에 비해 증진된 성능과 새로운 주변회로를 포함고 있으며 DMA오 이벤트 시스템을 내장하고 저 전력/고성능 시장에 적합한 마이크로 계열입니다.


(4)AutomotiveAVR

자동차 등에서 사용하는 CAN 통신 회로를 내장하고, 자동차에 특성화된 마이크로 컨트롤러 계열입니다.


지금은 마이로칩사가 아트멜사를 인수했습니다. 인수한 후에도 아트멜에서 판매하던 마이컴 제품군을 그대로 판매하고 있으니 아래 홈페이지에 방문하시면 더 많은 자료를 받아 보실수 있습니다.



http://www.microchipkorea.com/html/main/main.asp



3. ATmega128의 특징


ATmega128은 ATMEL사가 개발한 8비트 AVR마이크로 컨트롤러의 megaAVR 패밀리 계열중 하나의 프로세서입니다. 이 프로세서는 64핀으로 구성되었으며, TQFP형 패키지의 저 전력 8비트 CMOS 마이크로컨트롤러이다. 내부 구조는 RISC 아키텍처(RISC like Architecture)구조로 이루어져 있으며 대부분 1클록에서 수행되는 어셈블리어 명령어를 가지고 있어서 입력 클록 1MHz에서 1MIPS의 처리능력을 가집니다. 한편, ATmega128은 최적화된 전력 소모 구조를 가지고 있어서 다른 마이크로컽트롤러에 비해 상대적으로 작은 전력을 전력을 소모하며, 처리 능력도 뛰어납니다. 한편, ATmega128은 다음과 같은 특징들을 가지고 있습니다.


개선된 RISC 구조이다

   - 대부분 단일 클록에서 실행되는 133개이 명령어이다.

   - 8비트로 구성된 32개의 범용 작업 레지스터

   - 16MHz에서 16MIPS(Million Instruction Per Second)의 처리율

   - 2 사이클에서 실행되는 내장 곱셈장치

프로그램 메모리와 데이터 메모리

   - ISP가 지원되는 128K바이트의 플래시 메모리(10,000번의 쓰기/지우기 횟수)

   - 부트 코드 영역

   - 4K바이트의 EEPROM(100,000번의 쓰기/지우기 횟수)

   - 4K바이트의 내부 SRAM

   - 소프트웨어에 의한 LOCK 동작

JTAG(IEEE standard 1149.1과 호환) 인터페이스

   - JTAG를 통한 Boundary Scan 방법

   - On chip Debug 지원

   - JTAG 인터페이스를 통한 Flash, EEPROM, 퓨즈, Lock 비트 설정

내장 입출력 장치

   - 별도로 동작하는 프리스케일러와 출력 비교 장치로 구성된 2개의 8비트 타이머/카운터

   - 프리스케일러, 출력 비교 장치와 입력 캡처로 구성된 2개의 16비트 타이머/카운터

   - 외부 오실레이터에 의한 Real Time Counter

   - 2개의 8비트 PWM 채널

   - 2비트에서 16비트까지 조절이 가능한 6개의 PWM 채널

   - 8채널의 10비트 ADC

     *8개의 싱글 입력

     *7개의 차동 입력

     *1x, 10x, 200x 이득으로 이루어진 2개의 차동 입력

   - 바이트 중심의 TWO-Wried Interface(동기 2선식 통신)

   - 2개의 USART(Universal Synchronous &  Asynchron

     ous Receiver/Transmitter, 범용 동기/비동기 통신)

   - SPI(Serial Peripheral Interface, 동기 3선식 통신)

   - 별도의 오실레이터로 이루어진 Watchdog Timer

   - Analog Comparator

   - 53개의 범용 입출력 포트

특수 동작 기능

   - Power-on RESET

   - Brown-out 검출기

   - 외부 및 내무 인터럽트 소스

   - 6개의 Sleep mode(Idle mode, ADC Noise Reduction mode, Power-save

     mode,Power-down mode, Standby mode, Extended Standby mode)



AVR ATmega128 핀 기능

 포트A(PA7~PA0) 

 핀44~51

 8비트 양방향성 입출력 포트, 비트별로 내부 풀업 저항을 연결할 수 있으며, 외부 메모리를 연결할 경우에는 어드레스(A7~A0)/데이터 버스(D7~D0)로 멀티플레스 된다.

 포트B(PB7~PB0)

 핀10~17

 내부 풀업 저항이 있는 8비트 양방향성 입출력   포트로, 여러가지의 별도 기능을 가진 포트이다.

 포트C(PC7~PC0)

 핀35~42

 내부 풀업 저항이 있는 8비트 양방향성 입출력   포트로, 외부 메모리를 연결할 경우에는 상위 어   드레스(A15~A8)버스로 동작한다.

 포트D(PD7~PD0)

 핀25~32

 내부 풀업 저항이 있는 8비트 양방향성 입출력   포트로, 여러가지의 별도 기능을 가진 포트이다.

 포트E(PE7~PE0)

 핀2~9

 내부 풀업 저항이 있는 8비트 양방향성 입출력 포트로,외부 인터럽트 등 여러가지의 별도 기능을 가진 포트이다.

 포트F(PF7~PF0)

 핀54~61

 8비트 입출력 포트로 ADC에 대한 아날로그 입력이다.

 포트G(PG7~PG0)

 핀18,19

 33,34,43

 내부 풀업 저항이 있는 5비트 양방향성 입출력 포트로, 여러가지의 별도 기능을 가진 포트이다.

 /RESET

 핀20

 리셋 입력

 XTAL1

 핀24

 반전 발진 증폭기 및 내부 클록 회로에 대한 입력

 XTAL2

 핀23 

 반전 발진 증폭기로부터의 출력 

 TOSC1 

 핀19 

 반전 타이머/카운터 발진 증폭기에 대한 입력

 TOSC2

 핀18

 반전 타이머/카운터 발진 증폭기에 대한 출력

 /WR

 핀33

 외부 SRAM에 쓰기 신호

 /RD

 핀34

 외부 SRAM 읽기 신호

 ALE

 핀43

 외부 메모리가 enable될 때 사용되는 Address   Latch Enable

 /PEN

 핀1

 저전압 직렬 프로그래밍 모드에 대한 프로그래밍 enable 핀

 Vcc

 핀21,52  

 공급 전압 핀

 GND

 핀22,53

 그라운드 핀

 AGND

 핀63

 아날로그 그라운드

 AVcc

 핀64

 ADC 및 포트 F에 대한 공급 전압

 AREF

 핀62

 ADC 레퍼런스 전압