CS/마이크로프로세서

[마이크로프로세서] ATmega AVR 개요

nowkoes 2023. 10. 6. 00:00

ATmega AVR

개요

출처: https://www.microchip.com/en-us/product/atmega128

 

 ATmega AVR은 ATMEL(현 Microchip) 사에서 제작한 RISC 구조의 저전력 CMOS 마이크로컨트롤러다. 이 마이크로컨트롤러는 다양한 종류의 I/O 메모리, 페리페럴(Peripheral) 옵션(CPU 외부에 위치한 장치들)을 제공하고 있어, 다양한 임베디드 시스템 개발에 활용되고 있다.

 

 특히 AVR RISC 구조는 CISC에 비해 10배 이상 빠른 속도로 프로그램이 실행될 수 있는 코드 체계를 갖추고 있다. 즉, 대부분의 명령이 단일 클럭(1MHz당 1MIPS)으로 실행하며, 프로그램 메모리와 데이터 메모리를 동시에 접근할 수 있다. 또한 ISP(Im-System Programming) 방식을 최초로 도입해 프로그램 개발 시간을 단축하였다. 또한 레지스터를 기반으로 연산 처리를 수행한다. 

  • 여기서 ISP란 마이크로컨트롤러를 보드에 장착한 상태로 프로그래밍 개발 및 디버깅을 하는 기법을 의미한다.

 

 또 다른 AVR의 특징으로는 프로그래밍이 가능한 플래시 메모리를 갖고 있다는 점이다. 이때 프로그램은 직렬 프로그래밍 인터페이스 방식의 ISP 기능을 이용하여 대략 10,000번까지 재프로그램이 가능하다. 또한 모델에 따라 데이터 메모리로서 32Byte에서 8KB까지 비교적 큰 SRAM을 내장하고 있으며, 64Byte에서 4KB까지의 EEPROM을 내장하고 있어 데이터 백업이 가능하다.

 

 이번 시간에는 마이크로 컨트롤러를 다룰 때 자주 사용하는 ATmega AVR, 그중 128에 대한 간략한 개요를 파악해 보도록 하겠다. 


본문

구조

ATmega128의 기본 구조(좌)와 포트 번호(우)

 

 ATmega 128은 다음과 같은 구조로 이루어져 있다. 이를 크게 분류하자면 입출력 포트, 타이머/카운터, PWM 채널, ADC, USART, 직렬 인터페이스로 나눌 수 있는데, 총 64개의 포트가 있다.

 

  • 입출력 포트: 53개의 프로그램 가능한 디지털 입출력 포트를 제공. 각 포트는 8개의 핀으로 구성되어 있으며, 각 핀은 입력이나 출력으로 설정할 수 있음.
  • 8비트 타이머/카운터: Prescaler(타이머/카운터의 클럭 주파수를 나누는 기능을 가진 하드웨어)와 비교 모드를 갖는 2개의 타이머/카운터가 있음. 이를 통해 일정 시간 간격으로 이벤트를 발생시키거나, 입력 신호의 주파수를 측정하는 등 작업을 수행할 수 있음
  • 16비트 타이머/카운터: 프리스케일러, 비교 모드, 캡처 모드를 갖는 2개의 확장 타이머/카운터가 있음
  • PWM(Pulse Width Modulation) 채널: 펄스 폭 변조 기능을 이용해 모터의 속도를 제어하거나, LED의 밝기를 조절하는 PWM이 6개 있음
  • 8채널 10비트 ADC: 내장된 아날로그-디지털 변환기를 통해, 아날로그 신호를 디지털 값으로 변환할 수 있음. 이는 센서로부터 읽은 값을 디지털 형태로 처리하기 위해 사용
  • USART: Universal Synchronous/Asynchronous Receiver/Transmitter의 약자로, 컴퓨터의 비동기/동기 직렬 통신을 처리하는 모듈이 2개 내장되어 있음
  • I2C(Inter-integrated Circuit) 통신: 바이트 기반의 2선식 직렬 인터페이스를 제공함
  • SPI(Serial Peripheral Interface) 통신: 마스터/슬레이브 모드를 갖는 SPI 직렬 인터페이스를 제공함

기능

 

 포트 A부터 G까지는 범용 입출력으로 사용하며, 각 포트마다 중복된 기능이 있다. 이때 외부 메모리와 인터페이스 하지 않을 때 내부 풀업 저항을 가진다는 것도 체크해 두자.

 

상태가 정해지지 않은 플로팅 상태(좌), 풀업 저항(중앙), 풀다운 저항(우)

 

 여기서 인터페이스(Interface)는 기본적으로 두 시스템 또는 기능이 서로 상호작용하고 소통하기 위한 매개체 또는 방법을 의미한다. 즉, 외부 메모리와 ATmega의 PORT A 간 데이터 교환 또는 통신이 일어나지 않는 상황을 의미한다. 풀업(Pull up) 저항스위치를 닫을 때 0V, 열면 5V가 입력되는 저항을 의미한다.


요약

ATmega AVR
1. 정의: RISC 구조의 저전력 CMOS 마이크로컨트롤러
2. 특징
 a. 다양한 I/O 메모리 및 페리페럴 옵션 제공
 b. CISC에 비해 10배 이상 빠른 코드 실행 속도
 c. 단일 클럭(1MHz당 1MIPS)으로 대부분의 명령을 실행
 d. ISP(In-System Programming) 도입으로 프로그램 개발 시간 단축
 e. 프로그래밍 가능한 플래시 메모리 포함(재프로그래밍 가능, 약 10,000회)
 f. 데이터 백업 가능한 EEPROM 내장, 다양한 크기의 SRAM 내장
3. ATmega 128
 a. 구조
  - 입출력 포트: 53개의 디지털 입출력 포트 제공
  - 타이머/카운터: 8비트와 16비트 타이머/카운터 포함
  - PWM 채널: 펄스 폭 변조(PWM) 기능이 있는 6개 채널 포함
  - ADC: 8채널 10비트 아날로그-디지털 변환기 포함
  - USART: 비동기/동기 직렬 통신 모듈 포함
  - I2C 및 SPI 통신: 바이트 기반의 2선식 직렬 인터페이스 및 마스터/슬레이브 모드를 갖는 SPI 직렬 인터페이스 제공
 b. 기능
  - 전원, 리셋, 클럭: 컨트롤러의 작동 및 통신을 위한 기본 요소
  - ADC 전원: 아날로그-디지털 변환기의 전원 관리
  - 프로그래밍: ISP를 통한 내부 프로그래밍 가능
  - 범용 입출력: 포트 A부터 G까지 범용 입출력 포트 제공
  - 메모리 인터페이스: 외부 메모리와의 데이터 통신
  - 데이터 백업: EEPROM을 사용하여 중요 데이터 백업
  - 아날로그 데이터 처리: ADC를 이용하여 아날로그 신호를 디지털 데이터로 변환
반응형