• 검색 결과가 없습니다.

11주차 주차

N/A
N/A
Protected

Academic year: 2022

Share "11주차 주차"

Copied!
33
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

11주차 주차

ATmega128

ATmega128의 의 구조와 구조와 메모리 메모리

(2)

1. ATmega128

1. ATmega128의 의 특징 특징

고성능, 저전력의 8비트 마이크로컨트롤러

진보된 RISC 구조

대부분 단일 클럭에서 실행되는 강력한 133개의 명령어 구조

16MHz에서 거의 16MIPS로 동작

32개의 8 bit 범용 작업 레지스터와 추가된 주변장치 제어 레지스터

2 사이클 내에서 수행되는 강력한 곱셈기 내장

메모리

프로그램을 읽고 쓸 수 있는프로 램을 읽고 쓸 수 있는 128KB의 플래시 프로그램메모리128KB의 플래시 프로그램메모리 내장내장

4Kbytes의 EEPROM 내장

4Kbytes의 내부 SRAM 내장

플래시 프로그램메모리는 10,000번, EEPROM은 100,000번 읽기/쓰기 가능

64Kbytes까지 확장가능한 외부 메모리 기능 제공

ISP를 위한 SPI 제공

(3)

주변 장치 (Peripherals)

2개의 8 bit 타이머/카운터와 2개의 16 bit 타이머/카운터 지원

외부 오실레이터에 의한 실시간 카운터

6개의 PWM 채널

8채널, 10비트 ADC (Analog to Digital Converter) 내장

다양한 방식의 통신지원: USART, SPI, TWI

래밍 가능한 와치독 hd 타이머 지원

프로그래밍 가능한 와치독(Watchdog) 타이머 지원

아날로그 비교기 지원

특수 기능

파워-온 리셋(Power-On Reset)과 브라운 아웃(Brown-Out) 검출 기능

RC 오실레이터에 의한 내부 발진 지원

외부/내부 인터럽트 소스 지원

6개의 슬립(Sleep) 모드 지원

(4)

JTAG(IEEE 표준 1149.1 호환) 인터페이스 지원

JTAG 표준에 따르는 바운더리 스캔(Boundary-Scan)과 호환

온- 칩 디버그(On-Chip Debug) 지원

JTAG 인터페이스를 통한 플래시, EEPROM, 퓨즈, 락 비트 설정

입출력 및 패키지 타입

53개의 입출력 가능한 핀53개의 입출력 가능한 핀

64핀의 TQFP (Thin Quad Flat Package) 와 QFN/MLF 타입 지원

작동 전압 (Operating Voltage: V작동 압 ( p g g CCCC) )

ATmega128  4.5 ~ 5.5V (5.0V)

ATmega128L  2.7 ~ 5.5V (3.3V)

동작 속도

ATmega128  0 ~ 16MHz

• ATmega128L  0 ~ 8MHz

• ATmega128L  0 ~ 8MHz

(5)

2. ATmega128

2. ATmega128의 의 구조 구조

외부구조

블록도

핀 기능

기본회로

내부구조

레지스터

명령어 수행 타이밍

(6)

ATmega128

ATmega128의 의 블럭도 블럭도

입출력장치

메모리 주변장치

(7)

그림

그림 22--5 ATmega128 5 ATmega128의 의 전체 전체 핀 핀

Pin #1 Identifier

(8)

외부 핀 분류 및 기능

외부 핀은 크게 CPU Core의 기본회로와 GPIO 또는 부가기능을 지원하기

외부 핀은 크게 CPU Core의 기본회로와 GPIO 또는 부가기능을 지원하기 위한 기능으로 구분

CPU Core의 기본회로  전원, 리셋, 클럭 관련 회로를 구성하기 위해 11

CPU Core의 기본회로  전원, 리셋, 클럭 관련 회로를 구성하기 위해 11 개의 핀으로 모든 AVR 마이크로컨트롤러에 반드시 존재

이를 제외한 나머지 53개의 핀들은 GPIO (범용 입출력) 기능 또는 부가기이를 제외한 나머지 53개의 핀들은 G O (범용 입출력) 기능 또는 부가기 능(Alternate function)으로 동작

예제) 핀 48의 이름  PA3(AD3)

PA3: GPIO 기능  일반 범용 입출력포트 기능으로 포트 A의 비트 3번 핀

PA3: GPIO 기능  일반 범용 입출력포트 기능으로 포트 A의 비트 3번 핀

AD3: 부가기능  Address/Data 3

외 메 리 사용시 어 레 동작

외부 메모리 사용시 어드레스 3으로 동작

(9)

표 22--3 ATmega128 3 ATmega128의 의 핀 핀 요약 요약

번호 분류 핀 이름 설 명 개수

1 전원관련핀전원관련핀 VCC, GND, AVR 구동전원 핀구동전원 핀 4

2 리셋관련핀 /RESET 리셋 입력 핀 1

3 클럭관련핀 XTAL1, XTAL2 외부 클럭 입력 핀 2

4 ADC관련핀 AVCC, AREF, AGND ADC 전원핀, 기준전압 핀, 접지 핀 3 PORTA7~PORTA0 PORTA 범용 입/출력 핀 8 PORTB7~PORTB0 PORTB 범용 입/출력 핀 8 PORTC7~PORTC0 PORTC 범용 입/출력 핀 8 5 외부 입/출력 핀 PORTD7 PORTD0 PORTD 범용 입/출력 핀 8 5 외부 입/출력 핀 PORTD7~PORTD0 PORTD 범용 입/출력 핀 8 PORTE7~PORTE0 PORTE 범용 입/출력 핀 8 PORTF7~PORTF0 PORTF 범용 입/출력 핀 8 PORTF7~PORTF0 PORTF 범용 입/출력 핀 8 PORTG4~PORTG0 PORTG 범용 입/출력 핀 5 6 프로그래밍 제어 /PEN래밍 제어 / 프로그래밍 이네이블 핀래밍 이네이블 핀 1

계 64

(10)

그림

그림 22--6 ATmega128 6 ATmega128의 의 외부 외부 구조 구조

전원

ADC

ADC 클럭

리셋

PEN

리셋

(11)

포트별

포트별 부가기능 부가기능 ((표 표 22--5: 5: 기능별 기능별, , 표 표 22--4: 4: 번호별 번호별))

기본기능 부가기능

PORT A • External memory interface address and data 7 ~ 0 PORT B • SPI interface

• Timer/Counter 0, Timer/Counter 1, Timer/Counter 2 PORT C External memory interface address 15 8

PORT C External memory interface address 15 ~ 8

PORT D • External Interrupt 0~3

• Timer/Counter 1, Timer/Counter 2

• TWI Interface, UART1

• Internal memory Programming, UART0

• Analog Comparator PORT E Analog Comparator

• External Interrupt 4~7

• Timer/Counter 3

C i 0

PORT F • ADC input 7 ~ 0

• JTAG interface PORT G • RTC Oscillator PORT G

• External memory Control bus (WR, RD, ALE)

(12)

ATmega128 기본 회로 구성

전원 회 반 시 필

전원 회로 : 반드시 필요

리셋 회로 : 사용시 필요

외부 클럭 회로 : 사용시 필요 (내부 클럭을 쓰는 경우도 있음)

ADC 전원회로 : 사용시 필요

ADC 전원회로 : 사용시 필요

기타 사용자가 필요한 경우 회로가 추가됨

ex) 모터 드라이버 회로, LED 드라이버 회로 등

(13)

그림

그림 22--7 ATmega128 7 ATmega128의 의 내부 내부 구조 구조

(14)

그림

그림 22--8 ATmega128 8 ATmega128의 의 CPU CPU 코어 코어 블록 블록 다이어그램 다이어그램

1 5

C언어

2 3

A = 2 ;

프로그램C언어

A = 2 ; 2

X = A – 3 ;

4

5

(15)

CPU Core

CPU Core 구성 구성

CPU Core를 구성하는 주요 레지스터

ALU (Arithmetic Logical Unit): 산술논리장치

SREG (Status Register): 상태레지스터

PC (Program Counter): 프로그램 카운터

SP (Stack Pointer): 스택 포인터

General Purpose Register: 범용 레지스터

프로세서 레지스터 (Register)

 CPU Core 내에서 자료를 보관하는 아주 빠른 기억 장소

 CPU Core 내에서 자료를 보관하는 아주 빠른 기억 장소

 일반적으로 현재 계산을 수행중인 값을 저장하는 데 사용

 대부분의 프로세서는 메인 메모리(DRAM)에서 레지스터로 데이터를 옮겨와 데 이터를 처리한 후 그 내용을 다시 레지스터에서 메인 메모리로 저장하는 로드- 스토어 설계를 사용

 레지스터는레지 터 메모리 계층의 최상위에 위치하며, 가장 빠른 속도로 접근 가능한메 리 계 의 최 위에 위치하며 가 빠 속 가 메모리

(16)

ALU (Arithmetic Logical Unit): 산술논리장치

32개의 범용 레지스터와 직접 연결되어 있고, 단일 클럭에 레지스터 연 산을 행

산을 수행

ALU의 연산: 산술, 논리, 비트

산술(Arithmetic) 연산  4칙연산  + x /

산술(Arithmetic) 연산  4칙연산  +, - , x, /

논리(Logical) 연산: AND, OR, NOT

비트(Bitwise) 연산: >> << AND OR NOT

비트(Bitwise) 연산: >>, <<, AND, OR, NOT

프로그램 카운터 (PC: Program Counter) g

 프로그램의 실행 위치(주소)를 나타내며, 16비트로 표현

 16비트로 표현 가능한 최대 주소  216 64KB

 16비트로 표현 가능한 최대 주소  216 = 64KB

 명령어는 2바이트 단위로 표현되므로

 프로그램 메모리의 최대 영역은 64KB * 2Byte = 128KB

(17)

상태 레지스터 (Status Register  SREG)

 ALU가 가장 최근에 실행한 산술 연산 명령의 결과와 상태를 표시하는 레지스터가 가장 최 에 행 명 의 과와 상태를 시하 레지 터

어셈블리어(Assembler)로 프로그래밍할 때 주로 사용

그림 2-9

(18)

From Register

C언어 프로그램

2 3

A = 2 ;

C언어 프로그램

ALU I T H S V N Z C

SUB

SREG

X = A – 3 ;

ALU

To Data Bus

I T H S V N Z C SUB

-1

(19)

범용 레지스터

 프로그램 수행 중 중간 결과나 데이터를 일시적으로 저장할 때 사용되는 메모리

 R0부터 R31까지 32개의 8 bit 범용 레지스터

 R26부터 R31은 2개씩 결합하여 16 비트 레지스터로 사용  X, Y, Z 레지스터

 이는 데이터 메모리의 위치를 지정하는 어드레스 포인터로 사용

 이는 데이터 메모리의 위치를 지정하는 어드레스 포인터로 사용

 X i t (16비트)

 X-register (16비트)

 Y-register

 Z-register

그림 2-10

(20)

스택 포인터 (Stack Pointer  SP)

서브루틴 호출이나 인터럽트가 발생하였을 때 다시 돌아올 복귀 주소를 저장하는 메 리 S 내부의 일정 영역을 활용

메모리로 SRAM 내부의 일정 영역을 활용

 스택은 LIFO(Last In, First Out) 구조

 메모리의 상위 번지에서 차례대로 하위번지로 저장

 메모리의 상위 번지에서 차례대로 하위번지로 저장

 스택 포인터는 항상 스택 공간의 상단(TOP) 주소를 가리키는 16 bit 레지스터

 명령어: PUSH, POP

그림 2-11

(21)

그림

그림 22--12 12 명령어 명령어 패치와 패치와 명령어 명령어 실행 실행

 2-stage Pipelining (파이프라인)

 RISC 구조의 명령어로 단일 클럭에서 실행구 의 명령어 단일 클럭에서 실행

nth

Instruction Fetch +

(n-1)th

Instruction Execute

 Performance of 1MIPS/MHz /

(22)

t 램 메 리 부터 명령어를 미리 읽어옴 f h

1st stage  프로그램 메모리로부터 명령어를 미리 읽어옴 (Pre-fetch)

 결과적으로 명령어 해석, 범용 레지스터에 Operand 저장 1 t 에서 해석된 명령어에 따라 O d를 읽어옴

1st stage  ALU에서 해석된 명령어에 따라 Operand를 읽어옴

2nd stage  ALU에서 해석된 명령어에 따라 연산 실행

3 d  연산 결과를 레지 터와 메 리에 저장

3rd stage  연산 결과를 레지스터와 메모리에 저장

(23)

Bit Bit name

I Global Interrupt Enable

T Bi C S

T Bit Copy Storage H Half Carry Flag

TOP

S Sign Flag

V Overflow Flag V Overflow Flag N Negative Flag

Stack

Z Zero Flag

C Carry Flag

Stack

(24)

3. ATmega128

3. ATmega128의 의 메모리 메모리 구조 구조

내부 플래시 메모리: 사용자가 작성한 프로그램의 실행 파일을 저장

내부 SRAM: 사용자가 작성한 프로그램의 실행 과정에서 생성되는 정보 저장

외부 SRAM: 내부 SRAM이 부족하여 확장할 경우에만 추가하여 사용 가능

내부 EEPROM: 영구적으로 저장할 필요성이 있는 데이터를 저장 표 2 6

번호 기능별

(Functional) 물리적

(Physical) 내/외부 휘발성

(Volatile) 용량 (Capacity)

표 2-6

(Functional) (Physical) (Volatile) (Capacity) 1 Program Memory Flash Internal No 128KB

2 SRAM I l Y 4KB

2

Data Memory

SRAM Internal Yes 4KB

3 SRAM External Yes 60KB

4 EEPROM Internal No 4KB

(25)

그림

그림 22--14 ATmega128 14 ATmega128의 의 전체 전체 메모리 메모리   하버드 하버드 구조 구조

(26)

그림

그림 22--15 15 하버드 하버드 구조와 구조와 폰 폰 노이만 노이만 구조 구조 ((버스구조 버스구조, , 장점 장점& &단점 단점))

폰 노이만 구조 하버드 구조

Address bus Data bus 최대 용량

프로그램 메모리 16 bit 16 bit 128KB = 216 * 16bit

ATmega128

데이터 메모리 16 bit 8 bit 64KB = 216 * 8bit

(27)

그림

그림 22--17 17 플래시 플래시 프로그램 프로그램 메모리 메모리

플래시 프로그램 메모리

 명령어는 8비트가 아닌 16/32 비트

 명령어는 8비트가 아닌 16/32 비트 구조(ATmega128은 16비트)

 따라서 프로그램 메모리의 각 번지도 16 비트 구조로 되어 있음

 명령어가 16 비트인 경우는 하나의 번지, 32 비트의 경우 2개를 차지

 플래시는 Application 영역과 Boot 영 역으로 구분

128KB = 64K * 2Bytes

= 64Kwords

-- $F000

0xFFFF 216

64K

= 64Kwords 2 64K -- $FFFF

(28)

그림

그림 22--18 SRAM 18 SRAM 데이터 데이터 메모리 메모리 영역 영역

번호 분류 용량 Byte

번호 분류 용량 Byte

1 32개의 범용 레지스터 32 2 64개의 기본 I/O 레지스터 64 2 64개의 기본 I/O 레지스터 64 3 160개의 확장 I/O 레지스터 160 4 4KB의 내부 SRAM 4096

5 외부 SRAM 0~60KB

표 2-7

(29)

Normal

Mode Compatible

Mode

(30)

입출력 메모리 (I/O 레지스터)

AT 128에 내장된 주변장치(타이머/카운터 통신모듈 ADC 등)와 외부 입

ATmega128에 내장된 주변장치(타이머/카운터, 통신모듈, ADC 등)와 외부 입 출력장치를 제어하기 위한 레지스터 

표2-8 기능별 I/O 레지스터

ATmega128은 64개의 기본 I/O 레지스터와 160개의 확장 I/O 레지스터 지원

포트로 데이터를 출력하기 위해서는

포트로 데이터를 출력하기 위해서는

해당 포트의 메모리 (I/O 레지스터)에 데이터를 적는 과정

표 2-9  주소별 ATmega128 기본 I/O 레지스터

표 2-10  주소별 ATmega128 확장 I/O 레지스터

표 2 10  주소별 ATmega128 확장 I/O 레지스터

표 2-11  기능별 ATmega128 기본 I/O 레지스터

표 2-12  기능별 ATmega128 확장 I/O 레지스터

(31)

Address 이름 기능

$1100

Internal

4KB의 내부 SRAM SRAM 4KB의 내부 SRAM

$0100

$00FF Reserved

$00FF Reserved

64개의 I/O 레지스터

… …

$0023 PORTE

PORTE = 0b10101010 ;

+ 160개의 확장 I/O 레지스터

$0022 DDRE

$0021 PINE

$$0020 PINF

$001F R31

$001E R30

32개의 범용 레지스터

$001E R30

… …

$0001 R1

$

$0000 R0

(32)

표 22--8 8 기능별로 기능별로 분류된 분류된 ATmega128 ATmega128의 의 I/O I/O 레지스터 레지스터 (p.56) (p.56)

대분류 중분류 소분류 기타

대분류 중분류 소분류 기타

CPU SREG, SPL, SPH, RAMPZ, MCUCR, XMCRB, XMCRA, OSCCAL, XDIV, MCUCSR, WDTCR,

ACSR SPMCSR OCDR 14

ACSR, SPMCSR, OCDR 입출력포트

PINA, DDRA, PORTA, PINB, DDRB, PORTB, PINC, DDRC, PORTC, PIND, DDRD, PORTD, PINE, DDRE,

PORTE PINF DDRF PORTF PING DDRG PORTG 21 PORTE, PINF, DDRF, PORTF, PING, DDRG, PORTG

인터럽트 EICRA, EICRB, EIFR, EIMSK 4

주변

ASSR, OCR0, TCNT0, TCCR0, TIFR, TIMSK, SFIOR, ICR1L, ICR1H, OCR1BL, OCR1BH, OCR1AL, OCR1AH, 주변장치

(I/O 모듈)

/카운터타이머

ICR1L, ICR1H, OCR1BL, OCR1BH, OCR1AL, OCR1AH, TCNT1L, TCNT1H, TCCR1C, TCCR1B, TCCR1A, OCR1CL,

OCR1CH, OCR2, TCNT2, TCCR2, ICR3L, ICR3H,

OCR3CL, OCR3CH, OCR3BL, OCR3BH, OCR3AL, 38 모듈) OCR3AH, TCNT3L, TCNT3H, TCCR3B, TCCR3A,

TCCR3C, ETIFR, ETIMSK

ADC ADCL, ADCH, ADCSRA, ADMUX 4

SPI 통신 SPCR, SPSR, SPDR 3

USART 통신 UBRR0L, UBRR0H, UCSR0C, UCSR0B, UCSR0A, UDR0,

UBRR1H, UBRR1L, UCSR1C, UCSR1B, UCSR1A, UDR1 12

EEPROM EECR, EEDR, EEARL, EEARH 4

(33)

외부 메모리 확장

• 0x1100에서 0xFFFF까지 최대 60KB의 메모리 영역을 추가 확장 가능

• 널리 사용되지는 않음

• 널리 사용되지는 않음

참조

관련 문서

•상악 견치는 하악의 견치와 제1소구치를 피개하여 감합하고 교두감합위에서 구치가 전치를 과잉접촉으로부터 보호하고, 하악의 수직, 수평적 피개 관계가 측방운동을 할 때는

 애착(attachment): 삶에서 특별한 사람과 맺는 강한 정서적 유대로, 이것은 그 사람과 상호작용을 할 때 즐거움을 느끼고 스트레스 상황에서 그 사람과 가까이에

그러나 교통행정상의 필요성이라는 것도(진술거부권이 공공복 리 등을 이유로 제한할 수 있다고 가정하더라도) 따지고 보면 진술거부권을 희생하 면서까지

잔인한 전투 장면에서 서정적 음악 테마는 관객에게 전쟁을 더 욱 참혹하게 느끼게 하기도 하고 깊은 슬픔을 느끼게 하기도 한다.. 극과 극은

► 물질분자의 농도가 낮은 곳에서는 물의 농도가 높고, 물질분 자의 농도가 높은 곳은 물의 농도가 낮은 셈이기 때문에 물질분 자의 농도가 낮은 곳에서 높은 곳으로

다중경로 유통시스템(Multichannel Distribution systems), 혼합 마케팅 경로(Hybrid marketing channels). 한 기업이 두 개 이상의

- 탑승(embarking): 항공기 탑승을 위해 계단을 오르다가 계단의 물에 넘어진 경우는 사고에 해당 (Gezzi vs... 항공기 내에서 또는

피해자의 법정대리인이 피의자이거나 법정대리인의 친족이 피의자인 때에는 피해 자의 친족은 독립하여 고소할 수 있다(제226조). 22) 예를 들어