<BDC7C7E83120BFB9BAF1BAB8B0EDBCAD2E687770>

Similar documents
<BDC7C7E83120B0E1B0FABAB8B0EDBCAD202832C1D6C2F7292E687770>

ISP and CodeVisionAVR C Compiler.hwp

슬라이드 1

슬라이드 1

Microsoft Word - codevision사용법_pdf버전.docx

<BDC7C7E83220B0E1B0FABAB8B0EDBCAD202833C1D6C2F7292E687770>

Install stm32cubemx and st-link utility

슬라이드 1

<BDC7C7E83520BFB9BAF1BAB8B0EDBCAD2E687770>

슬라이드 1

슬라이드 1

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

ATmega128

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft Word - MAI-ISP-STK500_매뉴얼_Ver25.docx

1. 제품소개및특징 1.1 제품소개 < 그림 1.1> AVRISP MK2 USB 개발장비 AVR ISP(In System Programmer)MK2 USB 란 Atmel 사의 AVR 마이크로컨트롤러의내부플래쉬와 EEPROM 에프로그램메모리및데이터를써 (Write, Re

슬라이드 1

WebPACK 및 ModelSim 사용법.hwp

Microsoft Word - AVRISP mkII 장비 운용.doc

게임 기획서 표준양식 연구보고서

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

1. 제품소개및설명 제품특징 그림. 개발장비사진 - AVR FLASH READ/WRITE 가능 - AVR ISP 프로그래밍방식을지원하는 ATmega8, ATmega16, ATmega32, ATmega64, ATmega128, ATmega 등다수의 AVR MC

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Studuino소프트웨어 설치

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

lecture4(6.범용IO).hwp

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint - chap01-C언어개요.pptx

untitled

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

2. Step 2 : Select Device Step 2 에서는 Device 드롭 - 다운리스트에서사용자가자신의프로젝트에서사용할디바이스를선택할수있다. 선택가능한디바이스의범위를줄이려면디바이스의제품군 (Family) 를먼저선택하는편이좋다. < 그림 > 프로젝트마법사 Se

MPLAB C18 C

Microsoft Word - src.doc

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - AD-USBISP_V03_사용법.pptx

<546F F B8DEB4BABEF35FB8F1C2F72E687770>

API 매뉴얼

가. 마이크로컨트롤러개발환경및설치준비 AVR Studio 에서지원하는운영체계는아래와같다. - Windows XP(32 비트, 64 비트 ), Windows vista(32 비트, 64 비트 ), Windows 7(32 비 트, 64 비트 ) NO 프로그램명내용배포사이트

M16_32KIT_Manual.hwp

Microsoft Word - logic2005.doc

tiawPlot ac 사용방법

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

목차 다운로드및설치 1. 다운로드 2. 설치 3. MPLAB TM X IDE 데스크탑 기본사용법 1. 새프로젝트만들기 2. 프로젝트속성 (Properties) 조정 3. 디버거, 프로그램, 프로그램언어옵션설정 4. 프로그램언어위치설정 5. 기타툴옵션설정 6. 새파일만들

RealDSP UT 프로그램 메뉴얼

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

슬라이드 1

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

<BDC7C7E83320BFB9BAF1BAB8B0EDBCAD2E687770>

tut_modelsim(student).hwp

사용자매뉴얼

JDK이클립스

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

BMP 파일 처리

DE1-SoC Board

Microsoft Word - Ahram_ISP_V15_Manual_V20.doc

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

_USB JTAG Ver1.0 User's Manual.hwp

Microsoft PowerPoint - 15-MARS

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

ADP-2480

히스토그램구하기 사전준비 : 히스토그램을저장할메모리가필요함 필요한메모리개수 à 전체영상의픽셀은그값이 0 ~ 255이므로 256 개의메모리필요함 영상을구성하는픽셀의개수는매우크므로메모리형식은 unsigned long으로해야함 ( unsigned 란 +/- 를고려하지않는다는

Microsoft PowerPoint - avr_lecture1.ppt

Microsoft PowerPoint - 1C언어소개0.PPT

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

UART Controller 구현

Office 365 사용자 가이드

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

[ 마이크로프로세서 1] 1 주차 2 차시. 마이크로프로세서와마이크로컨트롤러발달과정 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

Microsoft PowerPoint - CPLD_수정1.pptx

USBISP MK2 User Manual Page 2/15 Contents 1. Introduction 3 2. USB DRIVER INSTALL 4 3. CodeVisionAVR C Complier / AVR Studio 6 Programmer 설정하기 6 4. US

윈도우시스템프로그래밍

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr

AVR USBISP+ V04 사용자메뉴얼 류대우 뉴티씨 (NEWTC) 대표이사

고급 프로그래밍 설계


<4A4B49542D D312DBBE7BFEBC0DABCB3B8EDBCAD2E646F63>

Endpoint Protector - Active Directory Deployment Guide

Microsoft Word - CooCox

USBISPV3.0(071112).hwp

Microsoft PowerPoint - chap-02.pptx

Visual Basic 반복문

01장

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Mango-E-Toi Board Developer Manual

1. 제품사진및보드설명 < 그림 1.1> AVR-ATmega128 확장형 DEV 보드사진 1.1 제품소개 ATMEL사의 8비트프로세서인 AVR-ATmega128 MCU를이용하여학습및개발을할수있는 AVR 개발보드입니다. 초보자를세심하게배려하기위하여모든부품의부품이름및부품정

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

SaaS 플랫폼을 위한 Web 2.0기반 서비스 제공 미들웨어 기술 연구

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

마이크로시스템제작 lecture1. 강의소개및 MultiSIM 선덕한 마이크로시스템 1

SAT8-10.hwp

Transcription:

제목 : 실험 #1 예비보고서 GPIO LED 제어 실험목적 - AVR에대한기본적인구조및툴사용법, 프로그래밍방법등을학습한다. - AVR과연결된 LED를제어하는프로그램작성을통해 AVR의각포트별쓰임새와사용법을학습한다. 실험장비 - ATmega128(AVR Chip), LED(Blue-LED, Green-LED) 실험이론 - AVR Studio 4 ATmega128의제조사인 Atmel에서제공하는 AVR용통합개발환경 (IDE) 툴이다. Help 메뉴에서 AVR Tools User Guide 등의유용한정보도제공한다. 사용방법 Project -> New project 메뉴를클릭하면프로젝트생성대화상자가나타난다. C 코드를이용하여프로그램을작성하려면 AVR GCC를, 어셈블리코드를이용하여프로그램을작성하려면 Atmel AVR Assembler를선택한다. 프로젝트이름과기본소스파일의이름, 프로젝트의경로를입력하고 Next 버튼을클릭한다. ATmega128에사용할프로그램을작성하기위해플랫폼에서 AVR Simulator를, 디바이스에서 ATmega128을선택하고 Finish를클릭하면프로젝트가생성된다.

소스파일에프로그램코드를작성하고 Build -> Build (F7) 메뉴를클릭하면소스코드가빌드된다. 빌드과정은하단의 Message 화면에출력되고, 별다른오류없이빌드가끝나면 hex파일이생성된다. 디버깅방법 - 디버깅관련메뉴 - 버튼을눌러프로그램을시작하면메인코드의시작점에서멈춘상태로실행된다. 왼쪽의실행제어버튼 ( 혹은단축키 ) 을통해 VC++ 등다른 IDE와마찬가지로코드를트레이스할수있다. 프로그램이특정위치에서정지하기를원하면해당코드에커서를이동한뒤, 버튼 (F9) 혹은마우스메뉴에서 Toggle Breakpoint 메뉴를통해브레이크포인트를설정할수있다. C코드가어셈블리코드로변환된상태를확인하고싶다면 View -> Disassembler 메뉴를사용한다. - 브레이크포인트가설정된상태 - - Disassembler 표시상태 - 특정변수등을직접관찰하고싶다면 View -> Watch (Alt+1) 메뉴를사용한다. 그후코드상의원하는항목위에서우클릭, Add Watch 메뉴를사용한다. - Watch 화면 -

메모리내값을직접확인하고싶다면 View -> Memory (Alt+4) 메뉴를사용한다. - Memory 화면 - 좌측의콤보박스에서프로그램메모리, IO 메모리등의종류를선택하고 Address에원하는주소를입력하면해당주소로직접이동해값을확인할수있다. AVR에프로그램다운로드방법 AVR Studio는자체적으로다운로더를지원한다. AVR과케이블을연결한뒤 Tool -> Program AVR -> Connect... 메뉴를선택하고케이블이연결된포트를선택한뒤 Connect 버튼을누르고정상적으로연결이이루어지면아래와같은화면이나타난다. - AVR Studio의 Programmer 화면 - Flash란에프로그램이빌드되어생성된.hex파일을선택하고 Program 버튼을누르면 AVR에프로그램이다운로드된다. 필요시 EEPROM의데이터인.eep파일등을바로아래란을통해같은방법으로다운로드할수있다.

- ToastProg 2005 시니어컴에서개발한, AVR칩에프로그램을다운로드해주는프로그램이다. AVR Studio의 Programmer와같은기능을하는프로그램이다. 사용방법 ATmega128에다운로드하기위해 Device 메뉴혹은도구모음의디바이스목록에서 ATmega, ATmega128을선택한다. File -> Open Flash (Ctrl+F) 메뉴를통해 AVR칩에다운로드할프로그램 (.hex) 을불러온다. 필요시, File -> Open EEPROM (Ctrl+E) 메뉴를통해데이터메모리영역에다운로드할파일 (.eep) 을불러온다. Command -> Write Program(Flash) 메뉴를통해 AVR칩에프로그램을다운로드한다. 필요시, Command -> Write Data(EEPROM) 메뉴를통해데이터메모리에파일데이터를다운로드한다. - Proteus Virtual System Modelling Labcenter Electronics에서개발한시뮬레이션툴로회로의작성, 시뮬레이션을 GUI환경에서드래그 & 드롭으로간단히수행할수있다. 전류의흐름이나소자의동작을실제회로구성없이시뮬레이션상태의애니메이션을통해쉽게확인할수있는장점이있다. - Proteus 실행화면 -

사용방법 시뮬레이션에필요한소자를가져오기위해 Library -> Pick Device/Symbol 메뉴를클릭하면위의화면이나타난다. ATmega128 칩을가져오기위해키워드에 ATmega128을입력하면오른쪽화면에키워드와일치하는소자들의목록이나타난다. 원하는소자를더블클릭하면디자인화면우측의컴포넌트목록에추가된다. 마찬가지로 LED등필요한소자를찾아추가한뒤 OK버튼을누른다. 추가한컴포넌트등으로시뮬레이션회로를구성하고, ATmega128에프로그램 (hex파일) 을적용하기위해회로의 ATmega128 컴포넌트위에서마우스우클릭, Edit Properties를클릭하여속성설정화면을호출한다.

CKSEL Fuses 할목을보면클럭이 1MHz로설정되어있는데, 장비와동일하게 8MHz로변경한다. Program File 항목에빌드된프로그램파일 (.hex) 을선택하고 OK버튼을누른다. 시뮬레이션을위해 Debug -> Execute (F12) 메뉴를클릭하고, 결과를관찰한다.

- AVR 개요 노르웨이공대의 Alf-Egil Bogen과 Vegard Wollan가 AVR 마이크로컨트롤러의구조를제안했고, 1996년 Atmel사에의해개발되었다. AVR은하버드아키텍처기반으로제작되어, 프로그램과데이터의메모리가별도로구분되어사용된다. 따라서기존의폰노이만아키텍처에비해메모리처리시병목현상이줄어들게되었다. 칩내부에 Flash, EEPROM, SRAM이통합되어있어외부메모리없이대부분의프로그램이동작할수있다. 데이터메모리의주소체계는범용레지스터, IO레지스터, SRAM으로구분된다. 범용레지스터는 32개, IO레지스터는 64개가존재하며, 각레지스터는 8비트단위로사용된다. - LED (Light Emitting Diode, 발광다이오드 ) - LED 의동작원리 - - LED 의기호 - PN접합을가지는반도체로서, 순방향 (VCC->P->N->GROUND) 전압을인가하면 N형영역의자유전자 (-) 와 P형영역의정공 (+) 이 PN접합부로이동하여재결합하고, 이때전자가가지고있는에너지가빛에너지로전환되어방사된다. LED의색은반도체와첨가물의종류에따라다양하게만들어진다. - Easy Processor Kit 휴인스에서제작한마이크로프로세서교육 / 실습용시스템이다. 모듈교체로 Cortex-M3, AVR(ATmega128), 8051프로세서중원하는장비를사용할수있다. LED, Dot-Matrix, LCD, Keypad 등실습을위한다양한주변장치가구성되어있다.

실험방법 - AVR Studio 4를이용하여프로그램소스코드작성후빌드하여실행파일 (.hex) 을생성한다. - Proteus를이용하여시뮬레이션용회로를작성하고, 시뮬레이션회로에 hex파일을적용시켜작성한프로그램이원하는동작을실행하는지확인한다. - 시뮬레이션결과이상이없다면 TaostProg 2005를이용하여 AVR칩에프로그램을다운로드하여실제하드웨어에서의동작을확인한다. 시뮬레이션결과 - 예시에제시된회로의시뮬레이션화면 - - 애니메이션소자로확인 - - 프로그램의내용대로 ATmega128의 PortB0과 PortB1에서 1이출력됨을확인할수있다. - 하지만 PortB1과연결된 LED의 N형쪽에 VCC가연결되어있어조사한내용에따르면 LED가동작하지않게된다. - 확인차직관적인에니메이션으로동작하는 LED-RED소자로교체하여시뮬레이션한결과역시 LED가켜지지않았다. - 위사진은예시와함께제공된 ATmega128 Schematic 자료의 LED 부분회로이다.

- 수정된회로의시뮬레이션화면 - - 애니메이션소자로확인 - - 예시에제시된회로는 PortB1과연결된 LED에 VCC가연결되어있었으나, LED에대해조사하면서전압이올바른방향으로연결되어야 LED가켜진다는것을알게되어위와같은회로로수정하여시뮬레이션을진행했다. - ATmega128의 PortB0과 PortB1에서 1이제대로출력되며, LED에인가된전압의방향도조사한내용과일치함을확인하였다. - 직관적인에니메이션으로동작하는 LED-RED소자로교체하여시뮬레이션한결과역시제대로동작함을확인할수있었다. 예시코드분석 C 언어소스코드 #include <avr/io.h> int main(void) { unsigned char LED_ON = 0x00; DDRB = 0XFF; PORTB = 0XFF; while(1) { LED_ON = 0X03; PORTB = LED_ON; } } 어셈블리어소스코드.include "m128def.inc".def AH=R17.def AL=R16 AVR 의레지스터등을사용하기쉽게단어로매핑해놓은헤더파일을포함시킨다. LED 의초기값. OFF 로설정한다. PortB 의 0~7 까지모든포트를출력으로사용하도록한다. PortB 의 0~7 까지모든포트의출력값을 1(ON) 로초기화한다. 프로그램종료없이계속반복실행한다. 켜질 LED 를설정한다. 0, 1 번 LED 를선택했다. (0X03 = 0B00000011) 설정한 LED 선택값을 PortB 로출력한다. AVR 의레지스터등을사용하기쉽게단어로매핑해놓은파일을포함시킨다. R17 레지스터를 AH 로매핑한다. R16 레지스터를 AL 로매핑한다.

.cseg.org 0x000 LDI AH, high(ramend) LDI AL, low(ramend) OUT SPH, AH OUT SPL, AL LDI AL, 0B11111111 OUT DDRB, AL 프로그램의시작점프로그램메모리의 0x0 번지에서부터코드를시작한다. 현재시스템의메모리의마지막주소의상위바이트를 AH 에, 하위바이트를 AL 에저장한다. 스택포인터를설정하기위해스택포인터상위에 AH 를, 하위에 AL 을저장한다. 스택은거꾸로카운트되기때문에 RAMEND 의주소를사용했다. AL 을 0xFF 로설정한다. (IO 포트방향설정용 ) PortB 의 0~7 까지모든포트를출력으로사용하도록한다. LOOP: LDI AL, 0B00000000 OUT PORTB, AL LDI AL, 0B00000011 OUT PORTB, AL JMP LOOP AL 을 0 으로설정한다. (PortB 출력값초기화용 ) PortB 의 0~7 까지모든포트의출력값을 0(OFF) 로초기화한다. 반복문을위한레이블 AL 을 0x03 으로설정한다. ( 켜질 LED 선택 ) 설정한 LED 선택값을 PortB 로출력한다. LOOP 레이블로돌아가서위작업을반복한다. 참고문헌 - LED의동작원리 : 위바코리아블로그 ( http://blog.naver.com/wiva815?redirect=log&logno=20147445002 ) - ToastProg 2005 사용방법 : ToastProg 2005 1.1b 매뉴얼 ( http://www.toastprog.com/front/php/b/board_read_new.php?board_no=7&no=25 ) - AVR 개요 : WIKIPEDIA Atmel AVR ( http://en.wikipedia.org/wiki/atmel_avr ) - Easy Processor Kit: 휴인스 제품솔루션 ( http://huins.com/m13.php?m=rd&no=58 )