A V R Foundation
Computer Architecture Lab.
SON SEONHO
AVR 의 개요
ATMEL사에서 제작 된 8Bit RISC 구조의 MPU
• 일반 Processor 보다 1 ~ 12배 빠르게 동작
•
ATMEL사의 비휘발성 메모리 기술 기반- Flash Memory와 EEPROM을 기본사양으로 내장
→ 개발과 양산의 편리성
→ 주변회로(Glue Logic)의 최소화
•
ISP(In-System Programming) 기능•
RSIC Architecture와 효율적인 코드밀도를 위한 최적화 명령을 가짐WatchDog 기능
•
AVR에는 WatchDog 기능 내장•
WatchDog타임아웃이 되기 전에 주기마다 소프트웨어 적으로 WatchDog Reset(WDR) 명령을 이용하여 그 값을 클리어시켜 주지 않으면 MCU를 Reset함으로써 시스템이 정상적으로 동작하고 있는지를 항상 감시하는 마이크로프로세서의 신뢰성 향상 기술
• 지정된 시간 이내에 워치독 타이머를 리셋시키지 않아 WatchDog Timeout이 발생하면 1클럭 주기의 WatchDog Timeout 신호를 출력하여 MCU를 Reset
AVR(AT90S2313)의 SPEC
■ 전력 고성능의 단일 사이클 명령 실행
■ 재 프로그램 가능한 2K 바이트의 내부 프로그램 메모리
■ 1,000번까지 재 프로그래밍 가능
■ 내부 EEPROM 용량 128바이트 (100,000번까지 쓰기/지우기 가능)
■ 내부 RAM 용량 128 바이트
■ 8비트 범용 작업 레지스터 32개
■ 프로그램으로 제어 가능한 I/O 포트 15개
■ 동작 전압은 2.7~6V
■ 동작 클럭은 0~20MHz
■ 20MHz 클럭 사용시 명령 사이클 타임은 50ns
■ 별도의 프리스케일러를 갖는 8비트 타이머/카운터
■ 별도의 프리스케일러를 가지며, 비교 ㆍ캡쳐 모드를 갖는 16비트 타이머/카운터
■ FULL Duplex UART
■ 8 , 9 , 10 비트의 분해느의 PWM
■ 외부와 내부 인터럽트 소스
■ 내부 오실레이터에 의한 워치독 타이머
■ 저전력 아이들(Idle) 및 전력 절약(Power Down) 모드
■ 소프트웨어 보호를 위한 프로그램 일기 방지(락) 기능
■ 20핀 디바이스
AVR(AT90S2313)의 블록도
AVR(AT90S2313)의 Memory
메모리 맵(Memory Maps)
-프로그램 가능한2Kbyte 플래시메모리 - 128byte의 SRAM
- 128byte의 프로그램 가능한 EEPROM
AVR(AT90S2313)의 Pin 기능
- VCC
전원 공급 핀
- GND
신호 접지 핀
- XTAL1 - XTAL2
발전기 입력단자로 크리스탈 또는 오실레이터를 접속한다.
- RESET
리셋 입력 핀으로 50ns 이상 Low 레벨이면 리셋이 발생한다.
- Port B(PB7...PB0) & Port D(PD7...PD0)
포트 B와 D는 양뱡향 포트로 내부 PULL-up 을 동작시킬 수 있고, 20mA를 Sink 할 수 있으므로 LED를 직접 구동할 수 있다. 여러 가지 특수 기능으로 사용 할 수 있다.
Programming & Downloading 순서
Coding → Compile
ISP Cable과 Emulator 연결
Tools→Chip Programmer 메뉴이용
*.ROM , *.HEX , *.EEP 파일 생성
ISP(In-System Programming)
•
ISP는 오직 3라인을 이용한 통신 방법 - MOSI (Master Out / Slave In)- MISO (Master In / Slave Out) - SCLK (SPI CLOCK)
•
ISP를 이용하여 Flash Memory에 Access하는 방법- AVR의 Reset Pin을 Low → 위의 3라인을 이용해 데이터 Read / Write
ISP(In-System Programming)
•
AVR(AT89S2313)과 ISP의 연결도•
Wavrasm•
Wavrsim ATMEL사에서 무료제공•
AVR Studio• CodeVision AVR-C Compiler - HPinfoTech사에서 제공
•
ImageCraft C Compiler※ Codevision AVR-C Compiler는 ㈜로보블럭시스템사 홈페이지에서 다운로드 가능
AVR Microprocessor Tool
)
CodeVision AVR-C Compiler
AVR Source – 순차적 LED 점등
#include <90s2313.h>
Char m_cnt = 0;
void main(void){
long i; // 4비트짜리 변수
DDRB=0xFF; // 출력방향 지정 PORTB=0xFF; // PORTB의 초기치
//PORTD의 초기치 DDRD=0x00;
PORTD=0x00;
//각종 장치들의 초기치 TCCR0=0x00;
TCNT0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ACSR=0x80;
while(1){
m_snt++; // 변수 1씩 증가 PORTB=~m_cnt; // 반전하여 출력 for(i=0 ; i<1000 ; i++); //딜레이 루틴 }
}