Introduction
저전력 CMOS 8bit Microcontroller.
RISC Architecture
대부분의 명령을 Single Clock Cycle에 수행.
이를 통해 1MIPS per MHz에 가까운 성능을 낸다.
System Designer가 전력 소모와 처리 속도 사이에서 최적화 가능토록 했다.
특징
고성능, 저전력 AVR 8-bit Microcontroller
진보된 RISC Architecture
133개의 강력한 Instructions
대개 1 Clock Cycle에 수행 가능.
32 * 8 일반목적 Register & 주변 제어 Register
Fully Static Operation
SRAM을 이용하여 정적 동작이 가능하단 의미.
이를 통해 저전력을 달성한 것.
16MHz에서 최대 16MIPS의 처리량
Single Clock Cycle에 처리 가능한 명령만 실행한다면 그렇겠네!
On-Chip 2-cycle Multiplier
내장 2-cycle 곱셈기
아하! 곱셈이 하드웨어적으로 지원되는구나!
내구성 높은 비휘발성 메모리들
128Kbytes의 프로그래밍 가능한 Flash Program Memory
보조기억장치 역할!
4Kbytes의 EEPROM
Embedded System에 필요한 Read-Only 값 담아두라고 있는 물건.
4Kbytes의 SRAM
주기억장치!
기록/삭제 사이클
Flash Memory는 10,000회
EEPROM은 100,000회
섭씨 85도에서 20년, 섭씨 25도에서 100년 간 데이터 유지 가능.
Note) 제조사에서, 1PPM 미만의 데이터 손실을 '데이터 유지'라고 칭한 것.
독립적인 Lock Bits로 Boot Code Section 설정 가능.
Lock Bits: 특정 메모리 영역에 대한 RW 권한을 설정하는 비트.
이 비트는 일반 코드 영역과 독립적인 곳에 존재함.
Lock Bit를 잘 설정하면 Application Code를 업데이트하더라도 Boot code section은 건드리지 못하도록 할 수 있다는 의미.
64Kbytes의 외장 메모리 추가 가능.
왜 64K냐고? 총 16개의 핀을 Address 지정 핀으로 쓸 수 있어서!
2^16...
요로코롬...
PA0-PA7 -> A0-A7
PC0-PC7 -> A8-A15
Programming Lock 기능
이 또한 Lock Bit로 설정 가능하다.
플래시 메모리를 잠그거나
부트 섹션을 일반 코드로는 못 건드리게 잠그거나
Application Code가 Boot Code 수정 못하게 잠그거나...
Programming Lock은 아래 목적을 위해 존재하는 보안 기능이다.
펌웨어 복제 방지
EEPROM에 존재하는 보안이 필요한 데이터의 보호
여기에 Key 같은 게 들어있을 수도 있으니까?
부트로더 보호
Programming Lock은, 풀고 싶으면 Chip Erase로 Chip을 다 지워야 한다.
ISP를 위한 SPI Interface
ISP, In-System Programming.
메모리를 보드에 장착한 후에 그 내용물을 변경하는 것을 말함.
JTAG Interface 지원(IEEE std. 1149.1)
과거부터 쓰인 ISP 방식은 칩에 프로그램 업로드만 가능했다.
하지만 JTAG을 쓰면 코드를 한줄한줄 디버깅할 수 있다!
디버깅 전용!
Boundary Scan 지원
회로 내의 Interconnection을 테스트하는 방법을 뜻함.
광범위한 On-Chip 디버깅 지원
JTAG으로 Flash, EEPROM, Fuse 및 Lock Bit 설정 가능.
Fuse Bits: 칩의 동작 모드 같은 것을 설정하는 비트.
Atmel QTouch 라이브러리 지원
정전식 터치 버튼, 슬라이더, 휠 같은 것 지원한다는 얘기.
Atmel QTouch, QMatrix 가지고 있다.
QTouch: 싱글 채널 터치 감지.
QMatrix: 멀티 채널 터치 감지.
최대 64개의 감지 채널 구성 가능.
부가 요소
2개의 8-bit 타이머/카운터(TC)
TC0 / TC2
분리된 Prescaler 사용 가능.
Prescaler: 타이머에 공급되는 클럭의 속도를 조절하는 장치. '분주기'
가령 16MHz에서, 분주비를 1:4로 하여 클럭을 받는다면 4MHz의 Clock을 받게 된다.
TC1, 2, 3는 같은 Prescaler 모듈을 공유하지만, 다른 Prescaler Setting을 사용할 수 있다고 한다.
각각을 비교할 수 있는 모드가 있다.
2개의 16-bit 타이머/카운터(TC)
TC1 / TC3
역시 분리된 Prescaler 사용 가능하다.
비교 모드, 캡처 모드도 있다.
독립된 Oscillator 가진 RTC
이거 은근 다행이네?
2개의 8-Bit PWM 채널
Pulse-Width Modulator
6개의 2-16비트 사이에서 해상도 조절 가능한 PWM 채널
출력 비교기
8-Chnnel, 10-bit ADC(Analog-Digital Converter)
8개의 Single Ended 채널
7개의 Diffrential 채널
2개의 1x, 10x, 200x 중 하나의 Gain을 선택 가능한 Diffrential 채널
Byte 기반 2-wire serial interface
Dual Programmable Serial USART
USART: CLK를 이용하는 직렬통신 방식. 빠르다!
Master/Slave SPI Serial Interface
Programmable Watchdog Timer
칩에 Oscillator 포함!
On-Chip 아날로그 비교기
Microcontroller로서의 특수 기능
Power-on Reset : 전원이 공급되면 리셋된다!
Initial State에서 작동을 시작하도록 하는 것!
Programmable Brown-out Detection
'전류 부족'이라는 위험 조건을 탐지하는 것.
BOD가 On 상태이면, 전류 강하 등 위험 상황 시 MCU를 리셋한다.
보정되어 있는 내장 RC Oscillator
내/외장 인터럽트 소스
6가지의 Sleep Mode.
Idle / ADC Noise Reduction / Power-save / Power-down / Standby / Extended Standby
소프트웨어적인 Clock 주기 선택
Fuse Bit로 설정 가능한 ATmega 103 호환 모드
언젠가... 써 볼까...?
전역 Pull-up disable
0도 아니고 1도 아닌 애매한 전압 수준이 있다. 이 상태를 Float 상태라고 한다.
이 애매한 상태를 1로 잡아당겨버리는 것을 Pull-up한다고 한다.
애매하면 그냥 1로 만들어버리는 장치가 '풀업 저항'
이거 설정하는 거.
I/O 및 Packages
53개의 설정 가능한 I/O Line들
패키징은 64-Lead TQFP 버전과 64-Pad QFN/MLF 버전이 있다.
TQFP: Thin Profile Plastic Quad Flat Package
얇은 패키지!
핀(Lead)들이 네모난 칩 밖으로 삐져나와 있음!
실력만 괜찮다면 인두로 땜질 가능?
QFN/MLF: Quad Flat No-Lead/Micro Lead Frame Package
핀이 네모난 칩 밖으로 안 삐져나와 있거나(패키징 아래에 있거나),
아주 살짝, 미세하게 삐져나와 있음!
땜질용은 아닌듯?
동작 전압
2.7-5.5V
동작 속도
0-16MHz