ATmega AVR
개요
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에 대한 간략한 개요를 파악해 보도록 하겠다.
본문
구조
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를 이용하여 아날로그 신호를 디지털 데이터로 변환
'CS > 마이크로프로세서' 카테고리의 다른 글
[마이크로프로세서] ATmega 128 디지털 입출력 제어 (2) | 2023.10.14 |
---|---|
[마이크로프로세서] ATmega 128 구조 (0) | 2023.10.10 |
[마이크로프로세서] 메모리 분류 (0) | 2023.10.05 |
[마이크로프로세서] 분류 (2) | 2023.10.02 |
[마이크로프로세서] 개요 (0) | 2023.09.28 |