300 likes | 732 Views
Overview of AVR. 2010, 7, 16 조 승훈. Reference : 마이크로컨트롤러 (AVR 편 ), 한백전자 임베디드 마이크로프로세서 AVR 프로그래밍 실전 , 네로테크. Index. Introduction ATmega128 의 구조 전체 구조 핀 구조 포트 구조 코어 구조. Intro. 마이크로 프로세서와 마이크로 컨트롤러 마이크로 프로세서 (Micro-Processor) 컴퓨터의 프로세서를 단일 IC 칩에 집적시켜 만든 반도체 소자
E N D
Overview of AVR 2010, 7, 16 조 승훈 Reference : 마이크로컨트롤러(AVR편), 한백전자 임베디드 마이크로프로세서 AVR 프로그래밍 실전 ,네로테크
Index • Introduction • ATmega128의 구조 • 전체 구조 • 핀 구조 • 포트 구조 • 코어 구조
Intro • 마이크로 프로세서와 마이크로 컨트롤러 • 마이크로 프로세서 (Micro-Processor) • 컴퓨터의 프로세서를 단일 IC칩에 집적시켜 만든 반도체 소자 • 단순히 프로세서 또는 MPU (Micro-Processing Unit)라 부름 • 1971년 Intel사에서 세계 최초로 마이크로 프로세서 개발 • 마이크로 컨트롤러 (Micro-Controller) • 지능화를 위해 단일 칩 내에 CPU코어와함께 한정된 용량의 주기억장치(Rom, RAM)와 입출력 인터페이스 등을 내장 • 칩 하나만으로 기본적인 컴퓨터의 기능 수행 • 최소의 부품으로 간단한 컴퓨터 구성 가능, 시스템의 단순화 및 저비용화 가능 • 범용 목적보다는 기기제어용으로 주로 사용 • 융통성 및 확장성 용이 • 신뢰성 향상 (부품 수가 적어 시스템 단순, 낮은 고장률, 보수 편리)
Intro • AVR 마이크로 컨트롤러 • ATMEL사가 1997년 처음 발표한 8bit 제어용 마이크로 프로세서 • Alf-EgilBogen과 VegardWollan의 진보된 RISC 기술을 기반되었다고 하여 첫 글자를 따서 AVR이라 명명 (Advanced Virtual RISC의 약자라는 의견도 있음) • 유사 RISC구조 (RISC구조를 따르나, 명령어의 수가 많음) • 많은 장점 때문에 상대적으로 늦게 출시되었음에도 8051이나 PIC를 능가하는 인기를 단시간 내에 얻음
Intro • AVR 마이크로 컨트롤러의 특징 • RISC (Reduced Instruction Set Code) 구조 • 하버드 아키텍처 (Harvard Architecture) • 32개의 8bit 범용 레지스터를 가지는 레지스터 중심 구조 • CMOD 기술 채택으로 소비전력이 매우 적고 동작전압이 1.8-5.5V로 큼 • 다양한 동작 모드를 제공해 저전력 동작 지원 • 1K-256Kbyte 플래시롬, EEPROM 및 SRAM이 작은 칩 하나에 내장 • 유사 RISC 구조와 32개의 레지스터 사용과 고집적으로 1MHz당 1MIPS의 속도 • 8핀에서 100핀의 외형과 이에 상응하는 메모리와 가능을 갖는 다양한 시리즈 존재 • 모델에 따라 매우 다양한 I/O 기능을 사용 가능 • 외부 시스템 버스를 이용하여 데이터 메모리 또는 I/O 디바이스를 확장 가능 • 다양한 인터럽트 소스와 처리 기능 보유 • 무료 개발 도구인 AVR Studio 등, 값싼 개발 도구 제공 • ISP (In-System Program) 기능 제공
Intro • ATmega128의 특징 • Atmel사의 8bit 마이크로 컨트롤러 • 고성능의 AVR Mega 시리즈 중에서도 가장 고성능 대용양의 마이크로 컨트롤러 • 프로세서 코어 • 133개의 명령어 • 32개의 8-bit 범용 레지스터 • 16MHz에서 16MIPS의 명령 처리 속도 • 메모리 • 128KB 프로그램 플래시 메모리 (10,000번 쓰기 / 삭제 가능) • 4KB EEPROM (100,000번 쓰기 / 삭제 가능) • 4KB SRAM • 64KB 외부 메모리 인터페이스
Intro • ATmega128 마이크로 컨트롤러 코어 • Power-on Reset, 안정된 전원공급을 위한 Programmable Brown-out Detection • 내부 RC 오실레이터 • 외부와 내부의 인터럽트 소스 • 6개의 Sleep 모드 • 소프트웨어적으로 선택 가능한 클럭 주파수 • 전체 풀업Disable *I/O와 Package • 프로그램 가능한 53개의 I/O • 64-lead TQF (Thin Quad flat) / 64-pad MLF *Operation Voltage • 2.7 ~ 5.5V : ATmega128L *속도 – 0 ~ 8 MHz : ATmega128L
Intro • ATmega128 주변장치 • 2개의 8비트 타이머/카운터, 2개의 16비트 타이머/카운터 • 2개의 8bit PWM (Pulse Width Modulation) 채널 • 6개의 프로그램 가능한 2~16bit PWM 채널 • 분리된 프리스케일러, 비교모드, 캡쳐모드를 가진 2개의 확장 16비트 타이머/카운터 • 분리 된 오실레이터에 의한 Real Time Count • Output Compare Modulator • 8채널, 10bit ADC • Two-wire Serial 인터페이스 • 두 개의 시리얼 UART • Master/Slave SPI (Serial Peripheral Interface) • 프로그램 가능 한 Watchdog 타이머 • 아날로그 비교기
ATmega128의 내부 구조 PORT F PORT C PORT A Osc ADC PC WDT SP SRAM Flash MCUCR GPR Timer Interrupt ALU EEPROM Status SPI UART0 TWI UART1 PORT E PORT B PORT D PORT G
ATmega128의 내부 구조 • 내부 파이프라인 처리 동작 • 1사이클에 처리되는 ALU 동작
ATmega128 핀 구조 ADC PORT F • < ATmega128 패키지 > • 총 64pin • TQFP 또는 MLF • (Thin Quad Flat Pack) • 7개의 범용 입축력 포트 Ext. Input PORT A • <제어 신호> • RESET(핀 20) : 시스템 리셋 • XTAL1, 2 (핀 24, 23) • 발진용 증폭기 입력 및 출력 단자 • Vcc (핀21, 52) • 전원 입력 단자 • GND (핀22, 53, 63) • 그라운드 입력 단자 • AVCC (핀 64) • AD변환기 및 포트F에 대한 전압 공급 • AREF (핀 62) : ADC 참고 전압 • PEN(핀1) Programming Enable PORT E PORT C PORT B PORT G PORT D
ATmega128 포트 구조 • I/O 포트의 기본 구조 1 • 6개의 8비트 양방향 병렬 I/O포트 (A ~ F) 와 1개의 5비트 병렬 I/O포트(G) • H상태의 source drive 와 L상태의 sink drive 능력이 대칭적 • Read-Modify-Write 동작 가능(A ~ E) • 최대 구동전류 (sinks up to 40mA) • 풀업저항의 사용 여부를 설정(Pinwise Controlled Pull-Up Resistors) • 데이터 입출력방향을 설정(Pinwise Controlled Data Direction) • Three Control/Status Bits per Bit/Pin
ATmega128 포트 구조 • I/O 포트의 기본 구조 2 • 각 포트는 3개의 I/O 레지스터 영역으로 구성 • DDRx (Data Direction Register) : 입출력의 방향을 설정 • PORTx (Data Register) : 데이터 출력에 해당하는 PORTx레지스터 • PINx (Port Input Pins Address) : 포트 입력 핀에 해당하는 PINx레지스터 • DDR, PORT는 읽고 쓰는 것이 가능, PIN은 읽는 것만 가능한 레지스터 • I/O포트의 풀업저항은SFIOR 레지스터의 PUD(Pull-Up Disable) bit를 1로 셋하여 금지, 내부 풀업 저항을 사용하려면 PUD bit를 0으로 설정 (DDRx=0, PORTx=1) • 풀업저항(Pull-Up Resistor) • 회로가 연결되어 있지 않으면 잡음 등 불안정한 값이 읽어질 수 있기 때문에 스위치와 입력 핀 사이에 충분히 큰 저항을 두고 VCC와 연결하여 명시적으로 HIGH값을 주는 저항
ATmega128 포트 구조 • 범용 입출력 신호 • 포트A-F는 8비트 양방향 입출력 단자 • 포트G는 5비트 양방향 입출력 단자 • 포트A (PA7~PA0:핀44-51) : 외부메모리를 둘 경우 주소버스(A7-A0)와 데이터버스(D7-D0)로 사용 • 포트B (PB7~PB0:핀10-17) : SPI용 단자 혹은 PWM단자로도 사용 • 포트C (PC7~PC0:핀35-42) : 외부메모리를 둘 경우 주소버스(A15-A8)로 사용 • 포트D (PD7~PD0:핀25-32) : 타이머용 단자 혹은 외부 인터럽트용 단자로 사용 • 포트E (PE7~OE0:핀2-9) : 타이머용 단자, 외부인터럽트, 아날로그 비교기, USART용 단자로 사용 • 포트F (PF7~PF0:핀54-61) : AD변환기 혹은 JTAG 인터페이스용 단자로도 사용 • 포트G (PG4~PG0:핀19, 18,43, 34,33) : 외부 메모리 스트로브 신호, RTC 타이머용 발진기 단자로 사용
I/O 포트의 부수적 동작 • 포트 A • 외부메모리를 인터페이스 위한 데이터버스 및 어드레스 버스의 하위바이트로 동작 • 어드레스 버스를 분리하는데 ALE(Address Latch Enable)신호를 사용
I/O 포트의 부수적 동작 • 포트 B • 타이머 / 카운터나 SPI 기능을 위한 신호들로 동작
I/O 포트의 부수적 동작 • 포트 C • 외부 메모리를 인터페이스하기 위한 어드레스 버스의 상위 바이트로 동작
I/O 포트의 부수적 동작 • 포트 D • 타이머 / 카운터나 외부 인터럽트 또는 USART1, TWI 직렬통신 포트 기능을 위한 신호들로 동작
I/O 포트의 부수적 동작 • 포트 E • 타이머 / 카운터나 외부인터럽트 또는 USART0 직렬통신포트, 아날로그 비교기, ISP 기능을 위한 신호로 동작
I/O 포트의 부수적 동작 • 포트 G • PG4 ~ PG0의 5비트만 사용되며 부수적인 기능은 외부메모리 인터페이스나 타이머/카운터로 동작
ATmega128 코어 구조 Data Memory Program Memory Control Register