여기에서는 AVR에 입문하는데 적합한 디바이스로 ATmega8(A)의 개략적인 특징에 대해서 설명하도록 하겠다. AVR의 이름을 보면 끝에 A가 붙는 것들이 있는데 (ATmega8A, ATmega128A등) 이것은 기존에는 5V용과 저전압(3.3V)용이 따로 구분되어 있었는데 (ATmega8, ATmega8L이 각각 존재했었다.) ATmega8A는 이 두 AVR을 하나의 uC로 통합한 것이다. 즉, ATmega8A는 5V와 3.3V 두 전압에서 모두 구동이 가능하고 (데이터쉬트상의 구동전압은 2.7V~5.5V이다.) 전력 특성을 개선하였으면서 사용법은 기존의 ATmega8/8L과 동일하다.


 실습용으로 ATmega8A를 선택한 이유는 일단 28핀 PDIP패키지가 제공되어 (TQFP, MLF패키지도 있음) 초보자들이 납땜을 해서 (혹은 빵판에 꽂아서) 실험을 하기에 편리하며 이 칩과 내장 주변기기를 제어하는 방법을 잘 알아두면 상위계열이나 하위 계열의 디바이스들을 모두 쉽게 다룰 수 있게 된다는 점이다. 따라서 만약 ATmega8A의 하드웨어를 충분히 숙지하고 개발이 익숙해진다면 거의 모든 (ATmega2560과 같은 최상위의 디바이스도 포함해서) AVR디바이스를 별다른 추가 학습 없이 다룰 수 있게 된다. 본 절에서는 ATmega8A의 특징에 대해서 알아보도록 한다.


[그림 1] ATmega8(A)의 외형. 좌측으로부터 PDIP, TQFT,  MLF


 ATmega8(A)는 AVR RISC 구조로 제조된 저전력 소모용 CMOS 8bit μC이다. 한 개의 클록 사이클 안에 강력한 명령을 수행하여 1MHz 당 최대 1MIPS(million instructions per second)의 처리속도를 낼 수 있으며 시스템 디자이너가 처리속도 대비 전력 소모를 최적화 할 수 있도록 제조되었다. AVR의 핵심은 산술연산장치 (ALU)에 직렬로 연결된 32개의 범용레지스터를 가지며 이들을 이용한 풍부한 명령어들이 마련되어 있다는 것이다. 단일 클록 사이클 이내 실행되는 한 개의 단일 명령어로써 두 개의 독립적인 레지스터를 처리할 수 있도록 하였다. 이러한 구조는 재래식 CISC uC보다 10배 이상 빠른 처리속도를 낼 수 있을 정도로 보다 효과적인 코드 방식을 지원한다.


 ATmega8(A)는 내부에 프로그램 가능한 8K바이트의 프로그램 가능한 플래시 메모리, 128byte 의 SRAM이 있고 128byte의 프로그램 가능한 EEPROM이 내장되어 있다. AVR계열의 μC는 ISP (in-system programming) 기능을 가지고 있다고 앞에서 말한 바가 있다. 즉 롬라이터(rom writer)같은 부가적인 장비 없이 PC와 연결하여 SPI 직렬 인터페이스를 통해서 내부의 플래시메모리에 프로그램을 써 넣을 수 있어서 편리하게 실험하는데 아주 유용한 기능이다. 한 개의 단일 칩에 기능이 향상된 RISC 8bit μC를 내장형 프로그래머블 플래시 및 다양한 부가장치를 조합함으로 사용자가 사용하기 쉽고 수많은 다른 제어 응용 분야에서도 비용면에서 효과적인 강력한 uC이다.


 데이터쉬트에 소개된 ATmega8A의 하드웨어 특징을 정리하면 다음과 같다.

  • 고성능, 저전력 소모용 RISC 구조 설계

  • 130개의 강력한 명령어 (대부분 단일 클록에 실행 가능)

  • 32×8 범용 레지스터

  • 16MHz에서 최대 16MIPS의 처리 속도

  • 2사이클 곱셈기 내장

  • 데이터와 비휘발성 프로그램 메모리 구조

  • 8K byte 플래시메모리 내장 (최대 10,000번 읽기/쓰기 가능)

  • 512 byte EEPROM 내장 (최대 100,000번 읽기/쓰기 가능)

  • 1K byte의 내부 SRAM

  • 상온(25도)에서 100년간 데이터 보존 (플래시롬/EEPROM)

  • 크기 조절 가능한 부트로더 영역 (부트 프로그램에 의한 ISP가능)

  • 플래시롬과 EEPROM 데이터 보호용 프로그래밍 잠금 기능.

  • 주변장치의 특성

  • 23개의 프로그램 가능한 I/O 포트

  • 2개의 8bit 타이머/카운터 내장

  • 1개의 16bit 타이머/카운터 내장

  • 별도의 오실레이터 연결 가능한 실시간 카운터

  • 6채널(PDIP) 10bit ADC 내장

  • 별도의 오실레이터가 내장된 프로그램 가능한 워치도그 타이머

  • 마스터/슬레이브 SPI (serial programming interface) 내장

  • 프로그램 가능한 직렬 USART 내장

  • 아날로그 비교기 내장

  • 휴식모드 (idle mode) 및 절전모드 (power down mode)로 전환 가능

  • 동작 전압 및 클럭 주파수 : 2.7~5.5V, 0~16 MHz

  • 패키지 : 28핀의 PDIP형, 32핀의 TQFP와 MLF


초보자가 실험하기에는 28핀을 갖는 PDIP 패키지가 좋은데 빵판에 꼽아서 회로를 꾸밀수 있기 때문이다.



Posted by 살레시오
,