Lecture 2_2 AVR의 메모리 동국대학교 홍유표 산업기술대학교 이응혁 프로그램 메모리        내부에 128KB의 플래시 메모리 ATmega128는 8비트 마이크로컨트롤러이 지만, 프로그램 메모리는 16비트 구조로 되 어 있음. 64K×16 비트의 용량을 가짐. 모든.

Download Report

Transcript Lecture 2_2 AVR의 메모리 동국대학교 홍유표 산업기술대학교 이응혁 프로그램 메모리        내부에 128KB의 플래시 메모리 ATmega128는 8비트 마이크로컨트롤러이 지만, 프로그램 메모리는 16비트 구조로 되 어 있음. 64K×16 비트의 용량을 가짐. 모든.

Slide 1

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee


Slide 2

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee


Slide 3

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee


Slide 4

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee


Slide 5

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee


Slide 6

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee


Slide 7

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee


Slide 8

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee


Slide 9

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee


Slide 10

Lecture 2_2
AVR의 메모리

동국대학교 홍유표
산업기술대학교 이응혁

1

프로그램 메모리











내부에 128KB의 플래시 메모리
ATmega128는 8비트 마이크로컨트롤러이
지만, 프로그램 메모리는 16비트 구조로 되
어 있음.
64K×16 비트의 용량을 가짐.
모든 명령은 16바이트 또는 32비트 구조로
각 명령은 프로그램 메모리에서 1~2개의
번지를 차지함.
프로그램 메모리는 부트 프로그램 영역과
응용 프로그램 영역으로 구성됨.
SPI 통신 방식을 이용한 ISP 기능을 가지고
있어서 사용자가 작성한 프로그램을 쉽게
쓰기가 가능함.
JTAG 에뮬레이터, 병렬 프로그래밍을 이용
한 프로그램 쓰기도 가능

2

Y. Hong & E. Lee

데이터 메모리
 쓰기/읽기가

가능한 메모리
 최대 64K(0x0000-0xFFFF) 바
이트의 용량

3

(a) 일반 모드

(b) 호환 모드

Y. Hong & E. Lee

ATmega128의 기타 메모리
레지스터




파일

0x0000-0x001F 영역으로 실제로 이 부분은 SRAM은 아니지만 메모리의 주소
영역을 사용하고 있다.

I/O 레지스터
I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하
는데 사용
 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x00600x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성




내부 SRAM
내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트
 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택
영역으로 사용되기도 한다.




외부 SRAM


내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지
약 60K 바이트의 SRAM을 확장할 수 있다.
4

Y. Hong & E. Lee

외부 확장 메모리 개요
 ATmega128의

외부 데이터 영역은 0x1100-0xFFFF 번지의 약 60K

바이트의 영역
 외부 메모리 영역은 외부 SRAM 또는 플래시 메모리와 LCD 표시장치,
A/D 및 D/A 변환기와 같은 외부 I/O 확장에 사용
 외부 데이터 메모리 영역의 사용
인터페이스할 소자의 액세스 시간에 적합하도록 소프트웨어로 0-3개의
웨이트 사이클을 설정할 수 있음.
 외부 데이터 메모리 영역을 2개의 섹터로 분할할 수 있고, 이들 각각에
대해 독립적으로 웨이트 사이클을 설정할 수 있음.
 16비트의 주소의 상위 바이트에 있는 8비트 중에서 필요한 개수만을 주
소 버스로 사용할 수 있음.


5

Y. Hong & E. Lee

외부 메모리 인터페이스

 AD7∼AD0

: 다중화된 데이터 버스와 하위 8비트 주소 버스선
 A15∼A8 : 상위 8비트 주소 버스선 (사용되는 비트의 수는 조정이 가능함)
 ALE : 다중화된 데이터 버스와 주소 버스를 분리하기 위한 제어 신호
 RD : 외부 데이터 메모리 읽기 스트로브 신호
 WR : 외부 데이터 메모리 읽기 스트로브 신호
6

Y. Hong & E. Lee

웨이트가 없는 메모리 엑세스

7

Y. Hong & E. Lee

웨이트 1 경우의 메모리 엑세스

8

Y. Hong & E. Lee

웨이트 사이클 설정
:

MCUCR (MCU 제어 레지스터) XMCRA (외부 메모리 제어 레지스터 )
의 SRW비트값으로 웨이트 사이클 조정.

9

Y. Hong & E. Lee

메모리 확장




2개의 섹터로 구분 가능한 최대 60KByte
의 외부 메모리
각 섹터에는 각각 독립적으로 웨이트 사
이클을 설정 가능.
외부 메모리를 SRL2∼SRL0 비트를 사용
하여 2개의 섹터로 구분
하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여
사이클 부여.
 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여
사이클 부여.


10

Y. Hong & E. Lee