25
ATmel AVR 8Bit RISC MCU PROCHILD Semiconductor.INC www.prochild.com 1. AVR Studio 의 의의의의 AVR Studio 의의 AVR Studio 는 Atmel 는는 8bit MCU 는 AVR 는는 는는 는는 는는 는 (Integrated Development Environment (IDE) tool) 는는 는는는는 는는는 는는는는 , 는는는는는 , 는는는는는는 는는는 는는는 , AVR 는 는는 는 는 는는는는는는 는는는는 는는 . AVR Studio 는 3.5x 는는는 4.0x 는 는 는는 는는는 는는는 , 는는는는는 는는는 는는는는 Windows95/98/ME/2000/XP 는는 는는 는 는 는는 . AVR Studio 3.x 는는는 AVR 는는는는 는는는는는 는는 는 는는는는 는는는 3.56 는는는 는는 는는 는는는는 , AVR Studio 4.0x 는는는 3.5x 는는는 는는는는 는는는는는 3.5x 는는는 는는는는는 는는는 는는는 는는는 는는 는는는 는는는 는는는는 . 는는 는는는 는는는 AVR Studio 는 는는는는는 는는는 , 90S 는는는 는는는는 3.5x 는는는 , 는는는 는는 는는는는는 는는는는는 4.0x 는는는 는는는는 는는는 . 는는 는는는 는는는는는 는는는 는는는는는 는는는 는는는 는는는 Studio 는 는는는는 는는는는 는는 는는는 는는 . AVR Studio 는 Atmel 는는는는는 http://www.atmel.com/products/avr/ 는 는 Tools & Software 는 는 는는 는는 는 는는 . 는는는는는 는는 는는는는는 는는는 AVR Studio 4.0x 는는는 는는는 는는는는 는 는는는는 는는 는는는 는는 . - AVR Studio 의의 의의의의 - Atmel 의의의의 : http://www.atmel.com 의의의의의의 : http://www.prochild.com AVR Freaks : http://www.avrfreaks.net ※ AVR Studio4.0x 는는 는는는는 는는 는는는 는는는 는는 는는 는는는 는는 는는는 는는는 는 는 는는 는는는는 . 는는 XP 는는는는 는는 는는 는는 는는는 는는는 는는는 는는는는 .

AVR Studio

Embed Size (px)

Citation preview

Page 1: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

1. AVR Studio 의 다운로드

AVR Studio 소개 AVR Studio 는 Atmel 사의 8bit MCU 인 AVR 용의 통합 개발 환경 툴 (Integrated Development Environment (IDE) tool) 이며 프로그램 내부에 어셈블러 , 시뮬레이터 , 에뮬레이터를 사용한 디버거 , AVR 용 개발 툴 용 소프트웨어가 포함되어 있다 . AVR Studio 는 3.5x 버전과 4.0x 의 두 가지 버전이 있으며 , 개별적으로 설치가 가능하고 Windows95/98/ME/2000/XP 에서 사용 할 수 있다 .

AVR Studio 3.x 버전은 AVR 초기부터 업그레이드 되어 온 버전으로 현재는 3.56 버전이 가장 최신 버전이며 , AVR Studio 4.0x 버전은 3.5x 버전과 호환성은 유지하지만 3.5x 버전의 업그레이드 버전은 아니며 최근에 새로 개발된 새로운 버전이다 . 만약 한가지 버전의 AVR Studio 를 사용하고자 한다면 , 90S 시리즈 사용자는 3.5x 버전을 , 최근에 나온 디바이스를 사용한다면 4.0x 버전을 사용하기 바란다 . 두 가지 버전이 개별적으로 설치가 가능하므로 무리가 없다면 두개의 Studio 를 설치하여 사용하는 것도 좋다고 본다 .

AVR Studio 는 Atmel 홈페이지의 http://www.atmel.com/products/avr/ 에 서 Tools & Software 에 서 다운 받을 수 있다 .

여기에서는 최근 디바이스가 포함된 AVR Studio 4.0x 버전을 사용한 디버깅과 툴 사용법을 소개 하고자 한다 .

- AVR Studio 관련 홈페이지 -

• Atmel 홈페이지 : http://www.atmel.com

• ㈜프로차일드 : http://www.prochild.com

• AVR Freaks : http://www.avrfreaks.net

※ AVR Studio4.0x 버전 설치시에 설치 폴더를 임의로 바꿀 경우 설치한 후에 제대로 동작이 안 될 수가 있습니다 .

특히 XP 사용자일 경우 기본 설치 폴더에 설치해 주시기 바랍니다 .

Page 2: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

1. AVR Studio 의 실행

AVR Studio 의 실행

AVR Studio 를 처음 실행시키면 아래와 같은 창이 뜨게 된다 . 이 중에서 가운데에 있는 창은 Project Wizard 창으로

최근에 작업한 어셈블러 프로젝트나 디버깅 프로젝트의 리스트를 보여 줌으로써 빠른 작업을 가능케 도와준다 . 이 창은 매번 AVR Studio 를 실행 할 때마다 뜨게 되므로 이것이 귀찮을 경우 왼쪽 하단의 Show this dialog on open 의 체크 박스를 지워주면 된다 .

새로운 어셈블러 프로젝트를 만든다

리스트에 없는 디버깅 프로젝트를 열때 사용한다 .

지금은 새로운 어셈블러 프로젝트를 만들어서 사용할 것이므로 일단은 을 눌러 창을 종료 시킨다 .

Project Wizard 윈도우

만약 C 로 작성된 파일을 가지고 디버깅을 하고자 한다면 10 Page 에 있는 AVR 디버깅을 참고 하시오 .

Page 3: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

2. 새 어셈블러 프로젝트 만들기

AVR 어셈블러

Project -> New Project 를 누르면 아래와 같은 창이 뜨게 된다 .

Project Type 은 Atmel AVR Assembler 로 고정되어 있다 .

Project Name : 만들고자 하는 프로젝트 이름을 적는다 .

Create Initial file : 새로운 프로젝트를 만들 때 프로젝트 이름과 동일한 ASM 파일을 만든다 . 만약 기존에 있는 ASM 파일을 사용하고자 한다면 체크하지 않는다 . 기본적으로 체크되어 있다 .

Create Folder : Location 에 서 지정한 폴더에 프로젝트 이름과 동일한 폴더를 만든다 . 만약 Location 에 서 지정한 폴더에 프로젝트를 생성하고자 할 경우 체크하지 않는다 . 기본적으로 체크되어 있지 않다 .

Location : 프로젝트 파일이 위치할 폴더를 선택한다 . 되도록 이면 ASM 파일이 있는 폴더에 프로젝트를 만든다 .

Page 4: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 어셈블러

※ 만약 Device 창에 ATmega128 하나 밖에 안 뜬다면 AVR Studio 를 다시 설치 하여야 한다 . 제어판에서 프로그램 추가 / 삭제에서 AVR Studio4 를 선택하여 제거한 후에 디폴트 폴더에 다시 설치하여야 한다 .

에뮬레이터가 있는 경우 : 해당 에뮬레이터의 종류를 선택하고 사용하고자 하는 Device 를 선택한다 .

( 예 : JTAG ICE 가 연결되어 있는 경우 JTAG ICE 를 선택한다 .)

그 외의 경우 : AVR Simulator 를 선택하고 사용하고자 하는 Device 를 선택한다 . 이 경우 시뮬레이터로 동작한다 .

새로운 프로젝트를 만들고 새로운 ASM 파일을 작성해야 하므로 , Location 에 프로젝트를 만들 폴더를 선택하고 , 적당한 프로젝트 이름을 적고 , Create Initial File 에 있는 체크를 지우고 , Next 를 누른다 .

사용하려는 에뮬레이터나 시뮬레이터를 선택한다 .

사용하려는 디바이스를 선택한다 .

Page 5: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 어셈블러

File -> New File 을 눌러 새로운 파일을 생성하고 , File -> Save file as… 를 눌러 확장자가 asm 인 어셈 파일로 저장한다 . 이때 가급적이면 해당 어셈블러 프로젝트 파일이 있는 폴더에 어셈파일을 저장하도록 한다 . 만약 어셈블러 프로젝트 파일과 해당 어셈 파일이 서로 다른 폴더에 있을 경우 hex 파일은 프로젝트 파일이 있는 폴더에 생성된다 .

Ex) firstasm.asm

4. 새로운 어셈 파일 만들기

가급적이면 어셈블러 프로젝트가 있는 폴더에 어셈블러 파일을 저장한다 .

확장자가 asm 인 어셈 파일로 저장한다 .

Page 6: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 어셈블러5. 프로젝트에 어셈블러 파일 등록

Workspace -> Assembler -> 마우스 오른쪽 클릭 ->

Add existing File 을 누르고 어셈 파일 선택

OR

메뉴의 Project ->

Add existing File 선택 ->

어셈 파일 선택

Workspace

-> Project Name

-> Assembler

->Assember file 이 등록이 된다 .

Page 7: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 어셈블러6. 어셈 파일 작성하기

일단 다음과 같이 어셈 파일을 작성한 후 저장을 한다 .

어셈블러 파일일 경우 약 1000 라인이 넘어가게 되면 사실상 디버깅이 굉장히 힘들어 지므로 , 일정한 규칙을 가지고 소스를 작성 하여야 하며 , 곳곳에 주석을 달아 어떤 목적으로 사용하였는지 설명해 놓는 것이 좋다 .

어셈블러의 경우 일반적으로 TAB 사이즈를 8 로 사용하며 C 의 경우 4 를 사용하는데 , 특별한 규칙이 있다기 보다는 TAB을 사용하여 띄여쓰기를 할 경우 보기 좋게 하기 위함이다 .

소스의 알고리즘이나 내용도 중요하지만 일단은

“ 보기 좋은 소스가 잘 짠 소스이다”

Page 8: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 어셈블러7. 기본 설정 및 컴파일

소스의 내용은 PORTB 에 1 과 0 을 반복해서 출력하는 것이다 .

일단 소스가 작성 되었으면 AVR Studio 가 설치된 폴더에서 AvrAssembler 폴더 -> appnotes 폴더를 찾은 후 그 폴더에서 사용 디바이스의 include 파일을 프로젝트가 있는 폴더로 복사 한다 .

기본 설치 폴더는 Program Files -> ATMEL ->AVR Tools 이다 .

Program Files

-> ATMEL

-> AVR Tools

-> AvrAssembler

-> Appnotes

m16def.inc, 8535def.inc, t16def.inc ….

예 ) ATmega16 을 사용하므로 m16def.inc 파일을 복사하여 어셈블러 프로젝트가 있는 폴더에 복사한다 .

준비가 되었으면 메뉴 툴바에서 Build 를 누르거나 메뉴에서 Project -> Build 를 누른다 .

Build(F7)

Page 9: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 어셈블러

컴파일에 에러가 없다면 툴바에 삼각형의 아이콘이 생겨나며 이것을 누르면 Debug 플랫폼에서 설정한 값으로 디버깅을 시작한다 .

( 예 , AVR Simurator, ATmega16 을 선택 하였다면 ATmega16 디바이스로 시뮬레이션을 하게 된다 .

Start Debugging

Page 10: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 디버깅8. 디버깅

AVR Studio 에 서 작성된 어셈블러일 경우 자동으로 디버깅 모드로 들어갈 수 있지만 C 로 작성된 파일이나 , 기타 외부에서 Assembly 된 파일일 경우 디버그 파일 ( 오브젝트 파일 ) 을 불러와서 디버깅 할 수 있다 .

File -> Open File… 을 누르거나 ( 불러오기 ) 아이콘을 누른다 .

디버그 파일이 있는 폴더에서 확장자가 *.d90 *.cof *.obj 인 파일을 찾아서 열기 를 누른다 .

*.d90 : IAR C 컴파일러의 AVR 의 디버그 파일 포맷이다 .

*.cof : Common Object File 포맷

*.obj : 어셈블러 Object File

Page 11: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 디버깅

※ 만약 Device 창에 ATmega128 하나 밖에 안 뜬다면 AVR Studio 를 다시 설치 하여야 한다 . 제어판에서 프로그램 추가 / 삭제에서 AVR Studio4 를 선택하여 제거한 후에 디폴트 폴더에 다시 설치하여야 한다 .

에뮬레이터가 있는 경우 : 해당 에뮬레이터의 종류를 선택하고 사용하고자 하는 Device 를 선택한다 .

( 예 : JTAG ICE 가 연결되어 있는 경우 JTAG ICE 를 선택한다 .)

그 외의 경우 : AVR Simulator 를 선택하고 사용하고자 하는 Device 를 선택한다 . 이 경우 시뮬레이터로 동작한다 .

사용하려는 에뮬레이터나 시뮬레이터를 선택한다 .

사용하려는 디바이스를 선택한다 .

디버그 플랫폼 셀렉트 윈도우가 열리며 , 사용하고자 하는 에뮬레이터와 디바이스를 선택한다 .

Page 12: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 디버깅선택한 파일에 이상이 없다면 Workspace 와 Source windows 가 뜨며 , AVR Studio 는 디버거로서 동작하게 된다 .

Workspace

I/O 나 Clock 등을 확인할 수 있다 .

Source Windows

현재 디버깅 하고 있는 파일의 소스를 보여주며 현재 프로그램 카운터가 위치하고 있는 곳을 가리킨다 .

Page 13: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 디버깅

이때의 툴바의 아이콘들의 구성은 다음과 같다 .

Debug 플랫폼에서 설정한 상황으로 디버깅을 시작한다 .

디버깅을 멈춤다 .

타겟을 Reset 한다 . 이때 C 소스라면 Main 함수의 첫번째 라인에 , 어셈 소스일 경우 0 번지에 커서가 위치한다 .

타겟을 Run 시킨다 . Break Point 가 있을 경우 브레이크 포인트에서 멈추게 되며 소스상에 에러가 없을 경우 완전 동작을 하게 된다 .

타겟이 Run 상태일 때 동작을 멈추게 한다 .

C 나 어셈일 경우 커서가 위치한 라인의 명령을 한 개 수행한다 . 만약 명령어가 아닌 함수나 서브루틴 Call 일 경우 함수나 서브루틴으로 들어가게 된다 .

수행하고 있는 함수나 서브루틴을 마저 다 실행하고 나온다 .

현재 위치 ( 현재의 프로그램카운터 ) 에서 부터 커서가 있는 위치 까지만 실행을 한다 . 중간에 Break Point 가 있을 경우 Break Point 에서 멈춘다 .

Page 14: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 디버깅

순차적으로 명령어들을 자동으로 실행한다 .

현재의 프로그램 카운터의 위치를 나타낸다 .

Break Point 를 Set 하거나 Clear 시킨다 . 명령어를 실행하다가 Break Point 를 만나면 멈추게 된다 .

JTAG ICE 의 경우 Break Point 는 4 개 까지만 설정 할 수 있다 .

모든 Break Point 를 클리어 시킨다 .

변수명을 더블 클릭으로 설정한 후 Quick watch 를 누르면 팝업창이 뜨며 선택한 변수의 값을 보여준다 .

Watch view 창을 활성화 , 비 활성화 시킨다 . Watch view 창은 모든 선언된 변수나 상수를 확인할 수 있다 .

Memory view 창을 활성화 , 비 활성화 시킨다 . Memory view 창에선 AVR 의 모든 내부 및 외부 메모리를 확인할 수 있다 .(Ex, Flash, SRAM, EEPROM, I/O, REGISTER )

프로그램 소스를 Disassembly 된 코드로 보여준다 . 소스가 C 일 경우 PC(Program Counter) 와 OP code, 어셈블러로 번역된 소스를 보여주고 어셈블러일 경우 PC 와 OP code 를 보여준다 .

C 나 어셈 일 경우 커서가 위치한 라인의 명령을 한 개 수행한다 . 만약 명령어가 아닌 함수나 서브루틴 Call 일 경우 함수나 서브루틴을 수행하고 나온다 .

Page 15: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR 디버깅

소스창에서 원하는 위치에 커서를 가져간 후 마우스 오른쪽 버튼을 누르면 다음과 같은 팝업 창이 나온다 .

이 중에서 , 잘 쓰는 것들을 보면 ,

Add to watch : 마우스가 가리키고 있는 위치의 변수를 Watch 윈도우에 등록시킨다 .

Toggle break : 마우스가 가리키고 있는 위치에 브레이크 포인트를 Set 하거나 Clear 시킨다 .

Run to cursor : 마우스가 가리키고 있는 위치까지 Run 하고 그 위치가 되면 멈춘다 . 물론 이럴 경우 그 위치까지 실행이 되지 않는다면 멈추지 않고 실행이 된다 .

등이 있다 . 이런 부분들은 세세하기 설명하기 힘드므로 , 한번씩 해 보고 익숙해 져야 한다 .

Page 16: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

AVR Tools9. AVR Tools

AVR Studio 에서는 기본적으로 Atmel 에서 AVR 용으로 나온 모든 에뮬레이터와 스타터 킷 , ISP 를 지원한다 .

AVR Prog : AVR Appnote AVR 901: In-System Programming 에 있는 어셈 파일을 지원하는 PC 프로그램이며 ,

AVR109 Self-programming 에서도 AVR Prog 를 사용해서 다운로드 한다 . STK500, JTAG, AVR ISP 등에서 펌웨어를 수동으로 업그레이드 할 때에도 사용한다 .

ICE50 Upgrade : ICE40, ICE50 에뮬레이터의 펌웨어를 업그레이드 할 때 사용한다 .

ICE50 Selftest : ICE40, ICE50 의 자기진단 테스트에서 사용한다 .

STK500/AVRISP/JTAG ICE : STK500, AVR ISP, JTAG ICE 를 사용하여 타겟 디바이스를 Programming 할 때에 사용한다 .

Page 17: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

STK500/AVR ISP/JTAG ICE

Tools -> STK500/AVRISP/JTAG ICE 에서 역시

STK500/AVRISP/JTAG ICE 을 선택해 주면 된다 .

Atmel 사에서 나온 Tool 중에서 STK500, AVR ISP, JTAG ICE 등은 디바이스를 라이팅 할 수 있는 ISP 기능을 가지

고 있다 . 인터넷에 있는 PC 의 프린터 포트를 사용하는 케이블은 (KANDA STK200/300 케이블 ) AVR Studio 에선

지원하지 않으므로 주의 하여야 한다 .

이 기능을 사용하기 위해서는 메뉴 아이콘 중

을 누르거나 ,

STK500 AVR ISP

JTAG ICE

Page 18: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

STK500/AVR ISP/JTAG ICE

만약 장비가 연결되어 있다면

Detectiong..STK500 found on COM 1: 등과 같이 연결된 장비명과 시리얼 포트 명이 나오게 된다 . 만약 AVR ISP 나

JTAG ICE 가 연결되어 있다면 STK500 이라고 써 있는 부분에 연결된 장비명이 나온다 . 만약

Detecting.. FAILED! 라고 나온다면 장비와 연결이 되지 않은 것이므로 PC 의 시리얼 포트를 확인해 보거나 , 장비의 전원을

확인해 보아야 한다 .

Device : 라이팅을 할 디바이스를 선택한다 .

Erase Device : 디바이스의 메모리를 지운다 .

Programming mode :

ISP : 6 Pin 혹은 10 Pin 케이블을 사용하는 ISP 모드이다 .

MOSI, MISO, SCK, RESET, VCC, GND 를 연결해서

라이팅 하게 된다 .

Parallel/High Voltage Serial : Reset 에 12V 를 사용해서 라이팅 하는 모드이다 . 일반적인 방법이 아니므로 설명은 STK500 의 User Guide 를 참고하기 바란다 .

Erase Device Before Programming : 디바이스를 라이팅 하기 전에 FLASH 와 EEPROM 을 지운다 .

Verify Device After Programming : 디바이스를 라이팅 한 후에 Verify 동작을 수행한다 .

Page 19: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

Input HEX File : EEOROM 에 라이팅 하기 위한 *.hex, *.a90,*.eep 파일을 선택한다 .

Program : EEPROM 에 선택한 Hex 파일을 라이팅 한다 .

Read : Device 의 EEPROM 를 읽어서 파일로 저장한다 .

Input HEX File : Flash 에 라이팅 하기 위한 *.hex, *.a90 파일을 선택한다 .

Program : Flash 에 선택한 Hex 파일을 라이팅 한다 .

Read : Device 의 Flash 를 읽어서 파일로 저장한다 .

*.hex : Intel Hex File Format

*.a90 : IAR Compiler 에서 생성되는 Intel Hex Format

*.eep : AVR 어셈블러에서 생성되는 eeprom 용 hex 파일

※ Atmel 에서 나온 AVR 장비들은 모두 인텍 헥사 파일 포맷을 사용하므로 AVRGCC 등의 컴파일러에서 출력파일

포맷을 Intel Hex 로 선택하여야 한다 .

STK500/AVR ISP/JTAG ICE

Page 20: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

디바이스와의 연결이 이상이 없다면 상태창에 현재 디바이스에 설정된 Fuse Bit 값을 읽어오게 된다 .

Fuse 비트는 한번 라이팅 하면 지워지지 않고 유지 되므로 , 다시 설정해 줄 필요는 없지만 , 처음에 잘 못 설정되면 ISP 로 프로그램 모드로 들어가지 않으므로 주의 하여야 한다 .

Fuse 메뉴에서는 디바이스의 동작 환경을 설정할 Fuse bit

를 설정 할 수 있다 .

STK500/AVR ISP/JTAG ICE

90S 시리즈 와 Mega 시리즈의 Fuse 비트에 상당한 차이가 있으므로 주의 하여야 한다 .

Page 21: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

STK500/AVR ISP/JTAG ICEFuse Bit 의 개별적 설명 (ATmega128 기준 )

ㅁ ATmega103 Compatibility Model[M103C=0]

기본적으로 체크되어 있으며 ATmega 128 로 사용하고자 할 적엔 체크하지 않는다 . 이것은 Mega128 이

Mega103 의 후속 모델로 나왔기 때문이며 , Mega162, Mega8515, Mega8535 등은 각각 161,8515, 8535 와

호환 모드를 갖는다 .

ㅁ Watchdog Timer always on; [WDTON=0]

워치독 타이머를 하드웨어적으로 ON 시킨다 .

ㅁ On-Chip Debug Enabled; [OCDEN=0]

JTAG 을 사용한 Debug 를 Enable 한다 . 체크하지 않는다 .

ㅁ JTAG Interface Enabled; [JTAGEN=0]

JTAG 을 사용해 Debug 나 Writing 을 할 때 체크 한다 . JTAG ICE 을 사용하지 않는다면 체크하지 않는다 .

ㅁ Serial program downloading (SPI) enabled; [SPIEN=0]

ISP 기능을 사용할 때 체크 한다 . 기본적으로 체크되어 있으며 , 이 비트가 지워질 경우 ISP 로 라이팅이 되지 않으므로

주의 하여야 한다 .

Page 22: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

STK500/AVR ISP/JTAG ICEㅁ Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

Device 의 메모리를 Erase 할 때 EEPROM 을 지우지 않는다 . Device 를 Erase 할 때에 Flash 와 EEPROM 을 모두

지우므로 , EEPROM 에 저장되어 있는 데이터를 보존하고 싶을 때 사용한다 . 단 , Program 은 가능하다 .

ㅁ Boot Flash section size=512 words Boot start address=$FE00; [BOOTSZ=11]

…ㅁ Boot Reset vector Enabled (default address=$0000); [BOOTRST=0]

Self Programming 을 사용할 때 Boot Loader 가 들어갈 Flash 메모리의 크기와 리셋 번지를 설정한다 .

만약 , Self Programming 을 사용하지 않는다면 Boot Flash section 의 크기는 어느 것이든 상관 없으며

Boot Reset vector Enable 에는 체크하지 않는다 .

ㅁ Brown-out detection level an VCC=4.0V; [BODLEVEL=0]

ㅁ Brown-out detection level an VCC=2.7V; [BODLEVEL=1] default value

ㅁ Brown-out detection enabled; [BODEN=0]

Brown-out detection 기능을 사용할때 체크한다 . Brown-out detection 기능은 VCC 가 위에 설정된 레벨 이하로

떨어질 경우 시스템적으로 Reset 을 해 주는 기능이다 .

Brown-out detection enableed 를 체크하지 않으면 레벨은 상관이 없다 .

ㅁ CKOPT fuse(operation dependent of CKSEL fuses); [CKOPT=0]

Clock 의 Swing 레벨을 Small 에서 Full Swing 하게 한다 . Ext. Crystal/Resonator 를 사용할때 8MHz 보다 클 경우

반드시 체크해 주어야 하며 , XTAL2 로 다른 디바이스에 클럭을 주고자 할 때에도 사용한다 .

Page 23: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

STK500/AVR ISP/JTAG ICEㅁ Ext. Clock; Start-up time: 6 CK + 0 ms; [CKSEL=0000 SUT=00] … XTAL1 핀으로 외부에서 클럭을 공급 받을 때 사용한다 . Oscillator 를 사용할 때 사용한다 . 만약 XTAL/Resonator 사용 시 실수로 이 클럭 옵션을 선택하게 되면 발진을 하지 않아 ISP 기능을 사용할 수 없다 . 이럴 경우 Oscillator 를 연결 하거나 , 펑션 제너레이터로 XTAL1 에 클럭을 공급해 주면서 ISP 로 클럭 옵션을 바꿔 주어야 한다 .

ㅁ Int. RC Osc. 1 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0001 SUT=00] …ㅁ Int. RC Osc. 2 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0010 SUT=00] …ㅁ Int. RC Osc. 4 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0011 SUT=00] …ㅁ Int. RC Osc. 8 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0100 SUT=00] … 내부 RC 발진기를 사용할때 체크한다 . 1~8MHz 까지 선택할 수 있으며 , 1MHz 를 제외한 2,4,8 MHz 일 경우 , 외부 롬라이터에서 Calibration Byte 를 읽어서 OSCCAL 레지스터에 써 넣어 주어야 한다 .

ㅁ Ext. RC Osc. - 0.9 MHz; Start-up time: 18CK + 0 ms; [CKSEL=0101 SUT=00] … ㅁ Ext. RC Osc. 0.9 MHz- 3.0 MHz; Start-up time: 18CK + 0 ms; [CKSEL=0110 SUT=00] …ㅁ Ext. RC Osc. 3.0 MHz- 8.0 MHz; Start-up time: 18CK + 0 ms; [CKSEL=0111 SUT=00] …ㅁ Ext. RC Osc. 8.0 MHz- 12.0 MHz; Start-up time: 18CK + 0 ms; [CKSEL=1000 SUT=00] … 외부 RC 발진기를 사용할때 체크한다 .

Page 24: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

STK500/AVR ISP/JTAG ICEㅁ Ext. Low-Freq. Crystal; Start-up tie : 1K CK + 4 ms; [CKSEL= 1001 SUT=00] … 32.768KHz 의 시계 클럭을 사용할 시 사용한다 .

ㅁ Ext. RC Osc. - 0.9 MHz; Start-up time: 18CK + 0 ms; [CKSEL=0101 SUT=00] … ㅁ Ext. RC Osc. 0.9 MHz- 3.0 MHz; Start-up time: 18CK + 0 ms; [CKSEL=0110 SUT=00] …ㅁ Ext. RC Osc. 3.0 MHz- 8.0 MHz; Start-up time: 18CK + 0 ms; [CKSEL=0111 SUT=00] …ㅁ Ext. RC Osc. 8.0 MHz- 12.0 MHz; Start-up time: 18CK + 0 ms; [CKSEL=1000 SUT=00] … 외부 RC 발진기를 사용할때 체크한다 .

ㅁ Ext. Crystal/Resonator Low Freq.; Start-up time: 258 CK + 4 ms; [CKSEL= 1010 SUT=00]

외부 Crystal 이나 Resonator 를 사용할때 사용한다 (Clock Freq : 9 ~ 16MHz)

※ Start-up time : ?? CK + ?? ms 는 시스템이 Reset 되었을 경우 다시 On 되기까지의 리셋 딜레이 이다 . 각 클럭 옵션마다 SUT 값에 따라 각각 다른 리셋 딜레이가 있다 .

AVR Studio 에서는 클럭 옵션에 대한 설명이 나와 있지만 PonyProg2000 등과 같은 프로그램에선 이 부분에 대한 설명이 나와 있지 않으므로 , 데이터쉬트에서 System Clock and Clock Options 부분을 잘 읽어 보고 선택해야 한다 . 특히 해당 비트를 체크하면 “ 0” 이므로 이 부분을 주의 해야 한다 .

Page 25: AVR Studio

ATmel AVR 8Bit RISC MCU

PROCHILD Semiconductor.INC www.prochild.com

기타사항※ 기타 AVR 과 관련된 질문 사항은 프로차일드의 홈페이지인 www.prochild.com 의 Question 에 올려

주시면 최대한 답변해 드리겠습니다 .

이 문서에 더 추가되거나 수정해야 할 사항이 있으면

[email protected] 이나 [email protected] 으 로 연락 주시면 감사하겠습니다 .