C 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화

Size: px
Start display at page:

Download "C 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화"

Transcription

1

2 C 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화 / 팩스 홈페이지 / 이메일 jeipub@gmail.com 편집부이민숙, 이슬, 이주원 / 소통 기획팀민지환, 현지환 표지디자인미디어픽스 용지신승지류유통 / 인쇄한승인쇄 / 제본광우제책사 ISBN (93560) 값 30,000 원 이책은저작권법에따라보호를받는저작물이므로무단전재와무단복제를금지하며, 이책내용의전부또는일부를이용하려면반드시저작권자와제이펍의서면동의를받아야합니다. 잘못된책은구입하신서점에서바꾸어드립니다. jeipub@gmail com

3

4 02 TECH LEARNING 시리즈는대학이나학원에서의강의에알맞은구성과적절한난이도의내용으로이루어져있습니다. 이는여러분의학습여정에분명한이정표가되어줄것입니다. 이 책에 기재된 내용을 기반으로 한 운용 결과에 대해 저자, 소프트웨어 개발자 및 제공자, 제이펍 출판사는 일체의 책임을 지지 않으므로 양해 바랍니다. TM 이 책에 등장하는 회사명, 제품명은 일반적으로 각 회사의 등록 상표 ( 또는 상표 ) 이며, 본문 중에는, C, R 마크 등을 생략하고 있습니다. 이 책에서 사용하고 있는 제품 버전은 독자의 학습 시점에 따라 책의 내용과 다를 수 있습니다. 이 책에 사용한 그림은 대부분 저자가 직접 촬영하였으며, 그 외의 그림은 소유자의 허락하에 싣거나 출처를 표시하였습니다. 연습문제 해답과 예제 소스코드는 제이펍 홈페이지 ( 의 해당 도서 소개 글에서 다운로드할 수 있습니다. 단, 연습문제 번호에 아이콘이 있는 문제에 한해서 해답을 제공합니다. 이 책을 교재로 선정하신 강의자 분께는 강의교안 (ppt 파일 ) 과 이미지 파일을 제공합니다. 책의 내용과 관련된 문의사항은 저자 (hgycap@deu.ac.kr) 혹은 제이펍 출판사 (jeipub@gmail.com) 로 연락주시기 바랍니다.

5

6 강의 계획표 (두 학기용) 1 학기 1 주차 2 학기 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러! 리뷰 1 CHAPTER 2 메모리 이야기 2 주차 CHAPTER 3 ATmega328 마이크로컨트롤러 3 주차 CHAPTER 4 ATmega328 프로그래밍 준비 CHAPTER 16 SPI 4 주차 CHAPTER 5 아두이노 프로그래밍 CHAPTER 17 I2C 5 주차 리뷰 2 CHAPTER 6 아트멜 스튜디오 설치 CHAPTER 18 컴퓨터와의 시리얼 연결 CHAPTER 7 Hello Blink 6 주차 CHAPTER 8 프로그램의 기본 구조 CHAPTER 19 7 세그먼트 표시장치 7 주차 CHAPTER 9 비트 연산자 CHAPTER 20 LED 매트릭스 8 주차 중간고사 9 주차 CHAPTER 10 시리얼 통신 CHAPTER 21 텍스트 LCD 10 주차 CHAPTER 11 버튼 입력 CHAPTER 22 키 매트릭스 11 주차 CHAPTER 12 아날로그-디지털 변환 CHAPTER 23 DC 모터와 서보 모터 12 주차 CHAPTER 13 인터럽트 13 주차 CHAPTER 14 타이머/카운터 14 주차 CHAPTER 15 PWM 15 주차 CHAPTER 24 직렬 입력 병렬 출력 레지스터 CHAPTER 25 센서 CHAPTER 26 블루투스 CHAPTER 27 EEPROM 기말고사 회색으로 표현된 2장과 27장은 설명에 많은 시간을 할애하지 않아도 될 것으로 생각되는 장 이며, 28장과 29장의 내용은 마이크로컨트롤러 강의에서 흔히 다루지는 않는 내용이므로 강 의에서는 생략할 수 있다. 한 학기 강의를 위한 강의 계획의 예는 다음과 같다. vi 강의를 위한 안내

7 강의 계획표 (한 학기용) 주제 해당 장 1 주차 마이크로컨트롤러 소개 CHAPTER 1 CHAPTER 2 2 주차 ATmega328 CHAPTER 3 CHAPTER 4 CHAPTER 5 3 주차 프로그램의 기본 구조 CHAPTER 7 CHAPTER 8 4 주차 시리얼 통신 I CHAPTER 10 5 주차 디지털 데이터 입출력 CHAPTER 9 CHAPTER 11 6 주차 아날로그 데이터 입출력 CHAPTER 12 CHAPTER 15 7 주차 시리얼 통신 II CHAPTER 16 CHAPTER 17 CHAPTER 18 8 주차 중간고사 9 주차 7 세그먼트 표시장치 CHAPTER 주차 LED 매트릭스 CHAPTER 주차 텍스트 LCD CHAPTER 주차 DC 모터와 서보 모터 CHAPTER 주차 센서 CHAPTER 주차 블루투스 CHAPTER 주차 기말고사 강의 보조자료 제이펍 홈페이지 의 해당 도서 소개 글에서 다음과 같은 강의 보조자료를 다운로드할 수 있습니다. 강의노트 소스코드 저자가 작성한 pptx 형태의 강의자료 및 이미지 파일* 예제 소스코드 연습문제 해답 기호로 표시된 연습문제의 해답 이외에 강의에 참고할 만한, 혹은 혼자 공부하는 독자들을 위한 웹사이트를 소개합니다. 네이버 카페 아두이노 상상을 스케치하다(저자 운영) * 표시의 보조자료는 교수 및 강사에게만 별도로 제공됩니다. 강의 보조자료를 제공받길 원하는 분께서는 제이펍 출판사 (jeipub@gmail.com)로 연락주시길 바랍니다. 강의를 위한 안내 vii

8 강의를위한안내머리말장별안내베타리더후기 v xiv xvi xxii I. ATmega328 프로그래밍준비하기 CHAPTER 1 CHAPTER 2 CHAPTER 마이크로컨트롤러란무엇인가? 마이크로프로세서? 마이크로컨트롤러? 마이크로컨트롤러는어디에사용할수있을까? 마이크로컨트롤러를어떻게공부해야할까? 주변장치와어떻게데이터를교환하나? 프로그램은어떻게만들어지나? 마이크로컨트롤러가꼭필요한가? 요약 ATmega328 의메모리 ROM과 RAM ROM은정말읽을수만있나? 플래시메모리 SD 카드 emmc SSD DRAM과 SRAM 요약 ATmega AVR ATmega328 소개 ATmega328 의핀배치 레지스터 ATmega328 의메모리 요약 viii 차 례

9 CHAPTER 4 CHAPTER 5 CHAPTER 6 CHAPTER 7 CHAPTER 8 CHAPTER 9 ATmega 왜 ATmega328 인가? ATmega328 프로그래밍을위한하드웨어 ATmega328 프로그래밍을위한소프트웨어 요약 아두이노통합개발환경설치 아두이노우노에시리얼방식으로업로드하기 아두이노우노에 ISP 방식으로업로드하기 부트로더굽기 브레드보드기본회로에부트로더굽기 요약 아트멜스튜디오 아트멜스튜디오설치 요약 Hello Blink C 스타일 아두이노스타일 C 스타일대아두이노스타일 요약 C 스타일프로그램의구조 아두이노스타일프로그램의구조 C 스타일과아두이노스타일 요약 포트? 핀? 개의 LED 제어하기 비트연산자 비트패턴만들기 요약 차 례 ix

10 II. ATmega328 프로그래밍시작하기 CHAPTER 10 CHAPTER 11 CHAPTER 12 CHAPTER 13 CHAPTER UART UART 통신을위한레지스터 아두이노의시리얼통신 UART 라이브러리만들기 문자열수신및처리 printf 함수사용하기 요약 풀업저항과풀다운저항 버튼입력 디바운스 디바운스회로 요약 ATmega328 의 ADC 가변저항값읽기 AD 변환을위한레지스터 아두이노의 AD 변환 가변저항으로 LED 제어하기 VCC는 5V인가? 난수생성 요약 폴링대인터럽트 인터럽트 인터럽트처리 인터럽트사용에서의주의사항 외부인터럽트 핀변화인터럽트 요약 타이머 / 카운터 오버플로인터럽트 245 x 차 례

11 14.3 비교일치인터럽트 파형출력 아두이노의타이머 요약 CHAPTER 15 CHAPTER 16 CHAPTER 17 CHAPTER 18 PWM PWM PWM 모드 PWM을이용한 LED 밝기제어하기 아두이노의 PWM 요약 SPI SPI SPI 방식의 EEPROM 아두이노에서 25LC010A 사용하기 요약 I2C I2C DS1307, RTC 칩 아두이노 Wire 라이브러리 아두이노 RTClib 라이브러리 요약 ATmega328 의 UART 통신 RS232-UART 변환기 USB-UART 변환기 컴퓨터의시리얼포트 요약 III. ATmega328 활용하기 CHAPTER 한자리 7 세그먼트표시장치 한자리 7 세그먼트표시장치 아두이노스타일 네자리 7 세그먼트모듈 358 차 례 xi

12 19.4 네자리 7 세그먼트표시장치 아두이노스타일 요약 CHAPTER 20 CHAPTER 21 CHAPTER 22 CHAPTER 23 CHAPTER 24 LED LED 매트릭스 LED 매트릭스제어 LED 매트릭스제어 아두이노스타일 요약 LCD 텍스트 LCD 비트모드텍스트 LCD 제어 비트모드텍스트 LCD 제어 텍스트 LCD 제어 - 아두이노스타일 요약 키매트릭스 키매트릭스 키매트릭스 아두이노스타일 키패드라이브러리 고스트현상이없는키매트릭스 요약 DC 모터 DC 모터 모터제어 서보모터 서보모터제어 아두이노의서보모터제어 요약 아두이노에서 사용하기 요약 xii 차 례

13 CHAPTER 25 CHAPTER 26 CHAPTER 27 CHAPTER 28 CHAPTER 온도센서 초음파거리센서 요약 블루투스모듈설정 스마트폰설정 블루투스통신 아두이노의블루투스통신 요약 EEPROM EEPROM 레지스터 EEPROM 라이브러리 GNU 라이브러리 EEPROM 라이브러리 아두이노스타일 요약 워치독타이머를위한레지스터 워치독타이머사용하기 워치독타이머사용하기 아두이노스타일 요약 하이퓨즈 로퓨즈 확장퓨즈 퓨즈프로그래밍 요약 ATmega 미주 531 찾아보기 534 필요부품리스트 543 차 례 xiii

14 아두이노가첫선을보인후 10여년의시간이지나면서아두이노는비전공자들도사용할수있는마이크로컨트롤러보드로그자리를확고히하고있다. 아두이노의공개된하드웨어는손쉽게다양한기능을사용해볼수있는확장보드와쉴드의출시를이끌어냈다. 또한이해하고기억하기어려운이름들을숨긴간단한소프트웨어개발환경을제공함으로써잠깐의검색만으로도상상할수있는대부분의것들이이미아두이노를통해만들어지고있음을확인할수있으며, 상상이상의것들이아두이노를통해진행되고있음을발견하게될지도모른다. 이처럼아두이노가어른들을위한장난감으로자리잡게된이유는, 한마디로아두이노가쉽기때문이다. 아두이노를처음접할때만들어보게되는 Blink의경우전자회로에대한지식이없다하더라도 30분이면 LED가깜빡거리는것을확인할수있다. 하지만쉽다는것에는함정이있다. 아두이노가쉽고빠르게마이크로컨트롤러를사용하여상상하는것들을만들어볼수있다는장점만있다면모두가아두이노를사용해야겠지만실상은그렇지않다. 이유가무엇일까? 여러가지이유가있지만, 첫번째이유는아두이노로마이크로컨트롤러의모든기능을사용할수없다는점이다. 아두이노소프트웨어는추상화된함수를특징으로하고있지만여러이유로마이크로컨트롤러의모든기능을추상화해서제공하지는않는다. 마이크로컨트롤러에서흔히사용되지만아두이노에서는제공하지않는인터럽트와타이머 / 카운터등이그예에속한다. 물론검색을통해이들기능을사용할수있도록해주는라이브러리를찾을수있긴하나여전히모든기능을사용할수는없다. 또다른이유는아두이노의장점인추상화된함수들에서연유한다. 추상화된함수들은비전공자도쉽게마이크로컨트롤러의세계로끌어들이는일등공신인것은사실이지만, 추상화된함수들만을사용하다보면그이면에서벌어지고있는실제마이크로컨트롤러의동작 xiv 머리말

15 을이해할수있는기회를잃어버릴수있다. 물론모든사람이마이크로컨트롤러의세세한동작을이해할필요는없다. 하지만마이크로컨트롤러에관심이있다면마이크로컨트롤러의구조와동작원리를이해하여야만마이크로컨트롤러의모든기능을사용해볼수있다. 마지막으로한가지더언급하자면아두이노개발환경의기능이너무제한적이라는점이다. 아두이노개발환경은한두번의클릭만으로스케치를업로드해서실행시켜볼수있는간단한구조에그장점이있다. 하지만불편한편집기와 C/C++ 와는다른소스코드관리방식등프로그래밍에경험이있는독자라면누구나아두이노개발환경에토로할불만이한두가지는있을것이다. 게다가아두이노는디버깅기능을지원하지않는다. 간단한스케치라면모르겠지만, 스케치의크기가조금만커진다면디버깅기능없이버그를찾아내는것이쉽지만은않다. 이책은아두이노방식의추상화된스케치작성방법과 C/C++ 언어를사용한전통적인프로그램작성방법을비교함으로써아두이노를넘어마이크로컨트롤러에대한이해를높이고다양한기능을활용할수있는연결고리를제공하기위해쓰였다. 이를위해이책에서는 ATmega328 마이크로컨트롤러의모든기능을사용할수있는아트멜스튜디오를사용하였으며, ATmega328 마이크로컨트롤러의기본적인동작방식과흔히사용되는주변장치를제어하는방법을전통적인 C 스타일과아두이노스타일을비교하여다루었다. 단점만을이야기해서아두이노에좋지않은인상을가졌을지도모르겠지만, 이책을쓰면서아두이노가여러가지단점에도불구하고얼마나좋은개발환경인지새삼느낄수있었다. 하지만아두이노는마이크로컨트롤러의세계로이끌어줄수는있지만, 그깊은곳을탐색할수있는도구를제공해주지는않는다는점또한사실이므로이책을통해아두이노를넘어서고자하는독자들에게칼한자루를권하려한다. 하지만아직칼은무디다. 이책에서다루는마이크로컨트롤러의기능들은실제사용할수있는기능의절반에미치지못한다. 아직탐험해야할미지의영역은무궁무진하다. 이책을통해전가의보도로벼릴수있는, 작지만의미있는한발을내디딜수있기를소망한다. 지은이 머리말 xv

16 I. ATmega328 프로그래밍준비하기 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러! 마이크로컨트롤러란중앙처리장치에주변장치들을하나의칩으로집적하여만든특수목적용소형컴퓨터를말한다. 이장에서는마이크로컨트롤러와일반적으로컴퓨터에서사용되는마이크로프로세서의차이점을살펴보고, 마이크로컨트롤러로할수있는것과할수없는것을살펴본다. 또한마이크로컨트롤러를위한프로그램개발방법을살펴본다. CHAPTER 2 메모리이야기마이크로컨트롤러는디지털컴퓨터의일종이므로프로그램을실행시키기위해서는메모리가반드시필요하다. 이장에서는컴퓨터와마이크로컨트롤러에서사용되는메모리의종류와특징을살펴보고, 다양한메모리의관계를살펴본다. 또한 ATmega328 마이크로컨트롤러에포함되어있는메모리의종류와특성을살펴본다. CHAPTER 3 ATmega328 마이크로컨트롤러 ATmega328 은아두이노보드중기본이되는아두이노우노에사용된마이크로컨트롤러이다. 이장에서는 ATmega328 의핀및기능, 메모리구조와주소체계등프로그램작성을위해필요한 ATmega328 마이크로컨트롤러의기본구조를살펴본다. CHAPTER 4 ATmega328 프로그래밍준비 ATmega328 은아두이노우노에사용된마이크로컨트롤러로서전원만주어지면컴퓨터와마찬가지로동작한다. 이장에서는 ATmega328 을동작시키기위한기본적인회로를구성하여마이크로컨트롤러의동작을살펴본다. 또한 ATmega328 을위한프로그램을작성하기위해사용할수있는개발환경을살펴본다. xvi 장별 안내

17 CHAPTER 5 아두이노프로그래밍 ATmega328 은아두이노환경에서프로그래밍이가능하다. 이장에서는아두이노개발환경을설치하는방법을살펴보고, 아두이노환경에서프로그램을업로드하는두가지방법인 ISP 방식과시리얼방식을비교하여살펴본다. 또한시리얼방식의프로그램업로드를위해아두이노에서사용하는부트로더를굽는방법을살펴본다. CHAPTER 6 아트멜스튜디오설치아트멜스튜디오는아트멜에서자사의마이크로컨트롤러를위한프로그램을작성할수있도록무료로제공하는통합개발환경이다. 이장에서는아트멜스튜디오를설치하는방법과아트멜스튜디오의사용자인터페이스에대해살펴본다. 또한아트멜스튜디오를최신상태로유지하기위한아트멜스튜디오의업데이트방법을살펴본다. CHAPTER 7 Hello Blink 아트멜스튜디오는 C 스타일의프로그램뿐만아니라애드온설치를통해아두이노스타일의프로그램도작성할수있다. 이장에서는 C 스타일과아두이노스타일의프로젝트를생성하는방법과생성된프로젝트를컴파일하여마이크로컨트롤러에업로드하는방법을살펴본다. 또한디버깅기능이없는아두이노를위해디버깅용도로사용할수있는시리얼모니터의사용방법을살펴본다. CHAPTER 8 프로그램의기본구조아두이노는 C/C++ 를기본으로하지만, 프로그래밍을직관적으로할수있도록 main 함수를제거하고 setup 과 loop 함수를기본으로하고있다. 이장에서는 C 스타일과아두이노스타일프로그램의기본구조를비교하여살펴본다. 또한마이크로컨트롤러프로그램의기본이되는데이터입출력을위한 C 스타일의기본레지스터인 DDRx, PORTx, PINx 레지스터와아두이노스타일에서이에대응하는기본함수인 pinmode, digitalwrite, digitalread 함수를살펴본다. CHAPTER 9 비트연산자 ATmega328 에서데이터입출력은 8비트크기의포트단위로이루어지지만, 비트단위로그의미가정의되고비트단위로제어되어야하는경우를흔히볼수있다. 이장에서는비트단위로데이터를조작하기위한 C 언어의비트연산자를살펴보고, 비트연산자를사용하는기본연산방법을살펴본다. 장별 안내 xvii

18 II. ATmega328 프로그래밍시작하기 CHAPTER 10 시리얼통신마이크로컨트롤러는입출력핀의개수가제한되어있어병렬통신보다는시리얼통신이선호된다. 이장에서는시리얼통신방법중에서가장오래된역사를가지고있는 UART 시리얼통신방법을살펴본다. 또한 UART 시리얼통신을위한함수들을재사용이가능하도록라이브러리형태로만드는방법을살펴본다. CHAPTER 11 버튼입력마이크로컨트롤러는디지털데이터입출력을기본으로한다. 이장에서는디지털입출력을위한기본레지스터인 DDRx, PINx, PORTx 레지스터를살펴본다. 또한디지털데이터를입력하기위해버튼을사용하는경우오픈된회로를방지하기위한풀업및풀다운저항사용방법과버튼의기계적특성으로발생하는채터링현상을제거하기위한방법을살펴본다. CHAPTER 12 아날로그 -디지털변환마이크로컨트롤러가디지털데이터를기본으로하지만아날로그데이터의경우아날로그 -디지털변환기 (ADC) 를통해디지털데이터로변환하여읽어들일수있다. 이장에서는 ATmega328 의 ADC 구조를살펴보고, ADC를통해아날로그데이터를처리하는방법을살펴본다. 또한아두이노에서제공하는 analogread 함수를통해 ADC를사용하는방법을살펴본다. CHAPTER 13 인터럽트일정시간간격으로처리가필요한작업을진행하기위해마이크로컨트롤러에서는폴링방식과인터럽트방식을사용할수있다. 이장에서는두가지방식중정확한타이밍조절이가능한인터럽트방식을폴링방식과비교하여살펴보고인터럽트처리를위한인터럽트벡터테이블의구조를살펴본다. 또한아두이노에서인터럽트처리를위해제공하는함수들을살펴본다. CHAPTER 14 타이머 / 카운터타이머 / 카운터는펄스의개수를세는장치로, 마이크로컨트롤러에공급되는클록의개수를통해시간측정역시가능하다. 이장에서는타이머 / 카운터의구조에대해살펴보고타이머 / 카운터를통해인터럽트를사용하는방법을살펴본다. 또한아두이노에서타이머 / 카운터를사용하는확장라이브러리중하나인 MsTimer2 라이브러리의사용방법을살펴본다. xviii 장별 안내

19 CHAPTER 15 PWM ATmega328 로아날로그신호출력은불가능하지만아날로그신호와유사한효과를내는펄스폭변조 (PWM) 신호출력은가능하다. 이장에서는타이머 / 카운터를이용하여 PWM 신호를생성하는방법과 PWM 신호의특성을살펴본다. 또한아두이노에서제공하는 PWM 신호생성함수인 analogwrite 함수를살펴본다. CHAPTER 16 SPI SPI(Serial Peripheral Interface) 는마이크로컨트롤러에서흔히사용되는시리얼통신방법중하나로, 고속의데이터전송에주로사용된다. 이장에서는 SPI 통신을통해시리얼통신을수행하는방법과 SPI 통신을사용하는외장 EEPROM 을제어하는방법을살펴본다. 또한아두이노에서 SPI 통신을위해제공하는 SPI 라이브러리와외장 EEPROM 제어를위한확장라이브러리의사용방법을살펴본다. CHAPTER 17 I2C I2C(Inter Integrated Circuit) 는마이크로컨트롤러에서흔히사용되는시리얼통신방법중하나로저속의데이터전송에주로사용된다. 이장에서는 I2C 통신을통해시리얼통신을수행하는방법과 I2C 통신을사용하는 RTC(Real Time Clock) 칩을제어하는방법을살펴본다. 또한아두이노에서 I2C 통신을위해제공하는 Wire 라이브러리와 RTC 제어를위한확장라이브러리의사용방법을살펴본다. CHAPTER 18 컴퓨터와의시리얼연결 ATmega328 은다양한방법으로컴퓨터와연결하여시리얼통신을수행할수있다. 이장에서는마이크로컨트롤러와컴퓨터를 RS232, UART, USB 등으로연결하고시리얼통신을수행하는방법을살펴본다. 마이크로컨트롤러와컴퓨터는여러가지방법으로연결될수있지만실제통신방식에서는약간의차이가있으므로시리얼통신을위해필요한변환장치들을살펴본다. III. ATmega328 활용하기 CHAPTER 19 7 세그먼트표시장치 7 세그먼트표시장치는 8개의 LED를숫자나간단한문자를표시할수있도록배치하여만들어진표시장치의일종이다. 이장에서는공통양극및공통음극방식 7 세그먼트표시장치의구조와제어방법을비교하여살펴본다. 또한네자리 7 세그먼트표시장치를제어하기위해잔상효과를이용하는방법과다양한정보를표시하는방법을살펴본다. 장별 안내 xix

20 CHAPTER 20 LED 매트릭스 LED 매트릭스는 LED를행렬형태로배열한표시장치로도트단위의제어가가능하여다양한내용을표시할수있다. LED 매트릭스는네자리 7 세그먼트표시장치와마찬가지로잔상효과를이용하여제어한다. 이장에서는 LED 매트릭스에서 LED의배열에따른양극방식과음극방식의차이를살펴보고, 행단위또는열단위스캔을통해 LED 매트릭스를제어하는방법을살펴본다. CHAPTER 21 텍스트 LCD 텍스트 LCD는문자단위의정보를표시하기위해사용되는출력장치의일종으로문자열표시를위해흔히사용된다. 이장에서는텍스트 LCD의구조및제어방법과다양한정보를텍스트 LCD에표시하는방법을살펴본다. 또한아두이노의기본라이브러리중하나로텍스트 LCD를제어하기위해사용되는 LiquidCrystal 라이브러리의사용방법을살펴본다. CHAPTER 22 키매트릭스키매트릭스는적은수의디지털핀을사용하여많은수의핀입력을받아들일수있는방법중하나로, LED 매트릭스의행또는열단위스캔과기본적으로동일한방식이사용된다. 이장에서는키매트릭스를구성하는방법과키매트릭스사용에서발생하는문제점및이를해결하는방법을살펴본다. 또한아두이노에서키매트릭스를제어하기위해사용할수있는확장라이브러리의사용방법을살펴본다. CHAPTER 23 DC 모터와서보모터모터는움직이는장치를구현하기위해필수적인부품중하나로, 360 를회전하는 DC 모터와일정각도범위에서만움직이는서보모터가마이크로컨트롤러와흔히사용된다. 이장에서는모터드라이버를사용하여 DC 모터를제어하는방법과 PWM 신호를사용하여서보모터를제어하는방법을살펴본다. 또한아두이노의기본라이브러리중하나로서보모터제어에사용되는 Servo 라이브러리의사용방법을살펴본다. CHAPTER 24 직렬입력병렬출력레지스터 직렬입력병렬출력레지스터는적은수의디지털핀으로많은수의디지털출력을사용하기위해흔히사용된다. 이장에서는 칩의구조와제어방법을살펴보고, 칩을통해많은수의 LED를제어하는방법을살펴본다. 또한여러개의 칩을사용하여출력을확장하는방법을살펴본다. xx 장별 안내

21 CHAPTER 25 센서센서는다양한물리량을전기적인신호로변환하는장치로주변환경과상호작용하기위해마이크로컨트롤러의입력장치로흔히사용된다. 이장에서는아날로그데이터를출력하는온도센서와디지털데이터를출력하는초음파거리센서를통해데이터를획득하고이를처리하여처리결과에따라주변환경과상호작용하는시스템구축방법을살펴본다. CHAPTER 26 블루투스블루투스는 RS232 의유선연결을대체하기위해만들어진근거리무선통신표준중하나로최근스마트폰의보급에힘입어사용이증가하고있다. 이장에서는블루투스모듈을마이크로컨트롤러에연결하여설정하는방법과스마트폰에서마이크로컨트롤러와통신하기위한블루투스설정방법을살펴본다. 또한마이크로컨트롤러와스마트폰사이에무선통신을통한원격제어방법을살펴본다. CHAPTER 27 EEPROM 마이크로컨트롤러에는작은크기의비휘발성메모리인 EEPROM 이포함되어있다. EEPROM 은쓰기속도가느린단점이있지만, 비휘발성이라는특징으로프로그램의설정등을기록하기위해흔히사용된다. 이장에서는 ATmega328 에포함되어있는 EEPROM 을제어하는방법과아두이노에서내장 EEPROM 을제어하기위해제공하는 EEPROM 라이브러리의사용방법을살펴본다. CHAPTER 28 워치독타이머워치독타이머는다양한원인으로시스템에오류가발생하거나무한루프에빠지는등시스템이정상적으로동작하지않을때시스템을리셋시켜다시시작하도록하는기능을담당한다. 이장에서는 WinAVR 에서제공하는 WDT(WatchDog Timer) 라이브러리를이용하여워치독타이머를설정하고사용하는방법을살펴본다. CHAPTER 29 퓨즈비트 ATmega328 에는마이크로컨트롤러의동작환경을설정하기위해 3 바이트의메모리가존재하며, 이를퓨즈라고한다. 퓨즈는세가지, 즉확장퓨즈, 하이퓨즈, 로퓨즈로나뉘며, 퓨즈의각비트들은마이크로컨트롤러의특정기능을제어한다. 이장에서는퓨즈비트의의미와설정방법을살펴보고, 퓨즈설정과관련된하드웨어및소프트웨어도구들의사용방법을살펴본다. 장별 안내 xxi

22 Atmel Studio 6에대한설명이 Atmel Studio 6 유저가이드 라고연상될만큼자세하고꼼꼼하게기록된책입니다. 그뿐만아니라아두이노사용법모두가들어있다고해도과언이아니네요. ATmega128 을통해마이크로컨트롤러에입문한학생으로서 ISP 방식과시리얼방식을비교하는방식은 AVR 복습을하면서아두이노코드를자연스럽게이해할수있어서많은도움이되었습니다. 전공자나비전공자할것없이 ATmega328 프로그래밍에관심이있거나공부하고싶은사람이처음접하기에좋은책으로보입니다. 하지만어느정도어려움이있을수밖에없는주제라설명을제대로이해하기위해노력해야할것입니다. 주제별로개념과코드등에대한설명이자세하게되어있어서이해하기가쉬웠고, 연습문제를통하여배운내용을복습하고응용력을키울수있었습니다. 책의두께를보고두려워하지말고독자여러분도아두이노와아트멜스튜디오에과감히빠져보기를바랍니다. 새로나온 Atmel Studio 6의사용법과그문법에관하여자세히나와있고, 이를아두이노코딩과비교하여설명하고있어서쉽게이해할수있었습니다. 아두이노와 AVR 코딩을더욱심화하여학습할수있는좋은기회였던것같습니다. xxii 베타리더 후기

23 ATmega328 컨트롤러를이용하여아두이노스타일과 C 스타일의코딩방법을비교하면서서로의장단점을파악할수있었습니다. C 스타일코딩방식을통해레지스터를다루는방법이상세히설명되어있어서어려움없이이해할수있었고, 레지스터를조작하여제어하는방법을보면서는컨트롤러가어떻게동작하는지를알게되었습니다. 또한, 기본적인회로구성및설명이포함되어있어서하드웨어적인부분에서도적잖은도움이되었습니다. 아두이노를이제막접하시는분들은 아두이노상상을스케치하다 라는도서를먼저읽어보기를추천합니다. 그러고나서이책을보시면더쉽고재미있게아두이노프로그래밍을배울수있을겁니다. 아트멜스튜디오를설치하는것을시작으로누구나따라할수있도록설명이잘되어있습니다. 특히주변장치들을연결하는회로도가이해하기쉽게잘그려져있어서비전공자라도쉽게따라해볼수있을것같고, 마이크로컨트롤러의동작원리가자세하게설명되어있어서이책만제대로공부한다면마이크로컨트롤러를능숙하게다룰수있으리라봅니다. ( 이책의베타리더는동의대학교학부생과대학원생으로구성되었음을알려드립니다.) 제이펍은책에대한애정과기술에대한열정이뜨거운베타리더들로하여금출간되는모든서적에사전검증을시행하고있습니다. 베타리더 후기 xxiii

24

25 P A R T I ATmega328 프로그래밍준비하기

26

27 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러! 학습목표 } } } } } } 마이크로컨트롤러의개념이해하기마이크로프로세서와마이크로컨트롤러의차이이해하기마이크로프로세서의장단점이해하기마이크로프로세서의용도이해하기시리얼통신방법과종류이해하기마이크로컨트롤러를위한프로그램개발방법이해하기 1.1 이책을읽고있다면마이크로컨트롤러에관심이있는독자임에틀림없으리라생각한다. 우선마이크로컨트롤러가무엇인지이야기하기전에마이크로컨트롤러가무엇이라고생각하는지스스로에게질문을던져보자. 무엇이가장먼저머리에떠오르는가? 실험시간에사용하던실험보드가생각날수도있고, 보드위에자리잡고있는칩이떠오를수도있다. 또는최근오픈소스하드웨어로주목을받고있는아두이노가생각날지도모르겠다. 마이크로컨트롤러 칩 - ATmega328 아두이노 우노 마이크로컨트롤러 마이크로컨트롤러를 이용한 학습 보드 2 3

28 마이크로컨트롤러 (microcontroller) 를한마디로표현하면 칩위의컴퓨터 라고말할수있다. 그림 1-1 에서첫번째그림이바로마이크로컨트롤러이다. 그림 1-1(b) 와 1-1(c) 의마이크로컨트롤러를이용하여만들어진보드역시마이크로컨트롤러라고부르는경우가있지만정확히이야기하자면이들은마이크로컨트롤러라기보다는 마이크로컨트롤러보드 에해당한다. 마이크로컨트롤러를어렵다고생각하는이유중하나는마이크로컨트롤러를처음접하는사람들에게주어지는, 부품이빼곡하게늘어서있는보드가큰이유중하나이다. 마이크로컨트롤러보드를마이크로컨트롤러로오해하기때문이다. 수십개의부품이늘어서있고수십개의연결핀이있는보드를처음받게되면무엇부터어떻게시작해야할지모르는것이당연하다. 하지만실제마이크로컨트롤러를사용하기위해필요한부품들은그리많지않다. 가장간단하게는마이크로컨트롤러에전원만연결하면동작한다. 컴퓨터본체에전원을연결하면컴퓨터가동작하는것과마찬가지로 ATmega328 의경우 5V 전원만연결해주면마이크로컨트롤러에설치된프로그램이실행된다. 간단하지않은가? 아두이노? AVR? ATmega328? 아두이노는 AVR을 이용하여 만든 마이크로컨트롤러 보드의 한 종류이다. AVR은 아트멜 (Atmel) 에서 제작하여 판매하는 마이크로컨트롤러 시리즈 중 하나를 가리키는 말로, 아두이노 우노 (Arduino UNO) 에 사용된 ATmega328 은 AVR 에 속하는 마이크로컨트롤러이다. 마이크로컨트롤러는 컨트롤 기능에 특화된 중앙 처리 장치 (CPU) 의 일종으로 칩 하나를 지칭하는 말이다. 아두이노 우노 보드가 옆에 있다면 보드 위에 있는 가장 큰 IC 칩을 살펴보자. Atmel 이라는 글자가 보이고 그 아래에는 ATMEGA328P-PU 라는 글자가 보인다. Atmel 은 ATMEGA328P-PU 마이크로컨트롤러를 만든 회사의 이름이며, ATMEGA328P-PU 는 아두이노 우노 보드에서 핵심적인 역할을 하는 마이크로컨트롤러이다. 아두이노 우노 보드에는 ATMEGA328P-PU 마이크로컨트롤러 이외에도 전원 연결 잭, USB 연결 잭, 버튼, 핀 연결을 위한 헤더 등 여러 가지 부품들이 있다. 아두이노 (Arduino) 란 마이크로컨트롤러뿐만 아니라 사용 편이를 위해 추가된 부품을 합한 보드 전체를 가리키는 말이다. 물론 아두이노는 하드웨어뿐만 아니라 소프트웨어 개발 환경까지도 함께 가리키는 말이지만 하드웨어 측면에서만 볼 때 아두이노는 마이크로컨트롤러가 아니라 마이크로컨트롤러 보드 라고 이야기하는 것이 옳다. 이처럼 아두이노와 AVR 그리고 ATmega328 은 정확히 이야기하자면 비교의 대상은 아니다. 아두이노는 AVR 시리즈의 마이크로컨트롤러를 사용하므로 AVR을 프로그래밍하는 것과 아두이노를 프로그래밍하는 것은 기본적으로 동일하다. AVR 을 위한 프로그램을 작성하는 환경에서 아두이노 프로그램을 작성할 수 있다. 예를 들어 AVR 프로그램을 작성하기 위해 흔히 사용되는 AVR 스튜디오 ( 또는 아트멜 스튜디오 ) 에서 아두이노에서 실행될 프로그램을 작성하고 이를 아두이노 보드에 업로드하여 실행시키는 것이 가능하다. 반대로 아두이노에서 제공하는 소프트웨어 개발 환경에서 AVR을 위한 프로그램을 작성하는 것도 역시 가능하다. 하지만 전자의 경우 모든 AVR 시리즈 마이크로컨트롤러를 지원하지만, 후자의 경우에는 모든 AVR 4 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

29 시리즈 마이크로컨트롤러를 지원하지는 않으며, 아두이노 보드에 사용된 마이크로컨트롤러, 예를 들어 아두이노 우노에 사용된 ATmega328, 아두이노 메가에 사용된 ATmega2560 등의 마이크로컨트롤러만을 지원한다. 따라서 학교에서 흔히 사용하는 AVR 시리즈 마이크로컨트롤러 중 하나인 ATmega128 을 아두이노 환경에서 프로그래밍하고자 한다면 번거로운 작업이 될 수 있다는 점을 염두에 두어야 한다. 아두이노 ( 마이크로컨트롤러 보드 ) ATmega328P-PU (AVR 시리즈 마이크로컨트롤러 ) 아두이노, AVR 그리고 ATmega328 3 마이크로컨트롤러는 하나의칩으로구현한컴퓨터 이다. 그다지컴퓨터와닮아보이지않겠지만컴퓨터와동일한구성으로컴퓨터와동일한동작을한다. 먼저친숙한컴퓨터부터살펴보자. 어디서나쉽게컴퓨터를찾아볼수있는이유도있겠지만컴퓨터는컴퓨터와대화할수있도록키보드, 마우스, 모니터등과연결되어있고멋진케이스속에들어가있어생소한전자부품들이눈에띄지않으므로편안하게느껴질수있다. 하지만컴퓨터에서키보드와마우스그리고모니터를제거해보자. 컴퓨터로무엇을할수있을까? 전원을연결하면컴퓨터가켜지는것은전원표시등으로유추해볼수있지만컴퓨터내부에서무슨일이벌어지고있는지는짐작하기어렵다. 멋진케이스도벗겨보자. 컴퓨터내부에는어떤것들이들어있나? 메인보드가보일것이고그위에장착된 CPU와메모리가보일것이다. CPU 위에올라와있는선풍기로사용해도무방할정도의팬이보이는가? 한쪽에는하드디스크와 DVD 드라이버가고정되어있다. 이외에전원공급장치, 비디오카드등이눈에들어온다. 어쩌면이모든것들을확인하기위해서는케이스내부의선들을먼저치워야할지도모른다. 마이크로컨트롤러에는멋진케이스가없다. 원한다면멋진케이스를만들어넣어줄수도있겠지만마이크로컨트롤러는대부분다른시스템의일부로포함되기때문에 [ 다른시스템의일부로포함되는것을임베디드 (embedded) 라이야기한다 ] 별도로케이스를만드는경우는흔하지않다. 마이크로컨트롤러에는모니터도, 마우스도, 키보드도없으므로내부에서무슨일이벌어 1.1 마이크로컨트롤러란 무엇인가? 5

30 지고있는지알수없다. 앞에서똑같은이야기를한것이기억나지않는가? 마이크로컨트롤러는주변장치를떼어내고케이스를벗겨버린컴퓨터와동일하다. 마이크로컨트롤러는컴퓨터이다. 다만주변장치가연결되어있지않으므로내부에서무슨일이벌어지고있는지알아내기위해서는 ( 키보드, 마우스에해당하는 ) 입력장치와 ( 모니터에해당하는 ) 출력장치를연결해주어야한다. 컴퓨터는이미입출력장치가포함된형태인반면마이크로컨트롤러는직접입출력장치를선택하여연결해주어야하고필요에따라서는새로운입출력장치들을만들어야하는경우도있다. 더어려운점이있다. 컴퓨터의입출력장치는완제품형태로판매되며동일한인터페이스로동작하므로컴퓨터에연결하는것만으로사용하는데크게어려움이없다. 대부분의키보드는 USB 포트에연결하는것만으로동작하며대부분의모니터는 HDMI 포트에연결하는것만으로동작한다. 하지만마이크로컨트롤러의입출력장치는여러가지방법으로연결할수있다. 간단한정보를표시해줄수있는 LCD 장치의경우만하더라도종류에따라다양한방법을사용하므로컴퓨터에모니터를연결하는것과같이커넥터를연결하는것만으로간단히동작시킬수는없다. 어렵게들리겠지만마이크로컨트롤러에서사용하는입출력방식의종류가그리많지않으므로익숙해지고나면그리어렵지않다. 더욱이마이크로컨트롤러에서사용하는대부분의주변장치들은몇개의입출력방식중하나를사용하므로서로다른종류의장치들도동일한방식으로제어가가능한경우도있다. 컴퓨터에서모니터와키보드는서로다른입출력방식을사용하지만마이크로컨트롤러에서는동일한방식으로데이터를주고받을수도있다. 마이크로컨트롤러는컴퓨터이다. 컴퓨터에비해연결방법이복잡하고귀찮아보이기는하지만입출력장치를연결함으로써마이크로컨트롤러는컴퓨터와동일한동작을수행할수있으며, 동일한방식을사용하는입출력장치들을연결함으로써컴퓨터보다더쉽게작은컴퓨터로서의기능을수행할수있도록할수도있다. 1.2 마이크로컨트롤러는주변장치를제거하고케이스를벗겨낸컴퓨터와동일하다. 먼저컴퓨터의구조를살펴보자. 컴퓨터는연산의핵심이되는연산장치와연산을제어하는제어장치로이루어지는중앙처리장치 (Central Processing Unit, CPU), 데이터입출력을위한입출력장치, 데이터저장을위한주기억장치및보조기억장치등으로구성된다. 6 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

31 메인 보드 중앙 처리 장치 연산 장치 입력 장치 제어 장치 출력 장치 주기억 장치 보조 기억 장치 1 2 컴퓨터의구성요소 집적회로기술의발달에힘입어컴퓨터의소형화및경량화가이루어졌고특히중앙처리장치는하나의칩으로구현이가능하게되었다. 이처럼컴퓨터의중앙처리장치를하나의 IC(Integrated Circuit) 칩으로집적시켜만든반도체소자를마이크로프로세서 (microprocessor) 라고부른다. 마이크로프로세서는 1969 년인텔 (Intel) 에서발표한 4비트마이크로프로세서인 4004에서부터시작되었다. 이후마이크로프로세서는비약적인발전을거듭하여 4004의경우 2,300 여개의트랜지스터를사용하여만들어진반면, 최신 Intel Core i7 마이크로프로세서는약 22억개의트랜지스터가사용되어 4004와비교할때약 100만배의트랜지스터가사용되는등하드웨어는기하급수적으로발전하고있으며, 이를설명하는법칙의하나가무어의법칙 (Moore s Law) 이다. 현재사용되고있는컴퓨터의대부분의중앙처리장치는마이크로프로세서로구현되고있다. 하지만마이크로프로세서는중앙처리장치의여러형태중한가지로모든마이크로프로세서는중앙처리장치이지만, 모든중앙처리장치가마이크로프로세서인것은아니다. 마이크로프로세서중하나의칩에중앙처리장치의기능뿐만아니라일정용량의메모리와입출력인터페이스까지내장한것을마이크로프로세서와구별하여마이크로컨트롤러라고부른다. 마이크로컨트롤러는그림 1-2 에서메인보드에해당하는기능과일부하드디스크의기능을하나의칩으로구현한것으로볼수있다. 마이크로컨트롤러는하나의칩에컴퓨터가가져야할대부분의기능을갖추고있으므로단일칩마이크로컴퓨터또는마이컴이라고도부른다. 마이크로프로세서가컴퓨터로동작하기위해서무엇이더필요할까? ( 입력장치인 ) 키보 1.2 마이크로프로세서? 마이크로컨트롤러? 7

32 드와마우스그리고 ( 출력장치인 ) 모니터만있다면컴퓨터로동작하기에아무런문제가없다. 하지만마이크로컨트롤러에키보드나모니터를연결하여사용하지는않는다. 불가능하지는않지만굳이연결하려고하지않는이유는마이크로컨트롤러는컴퓨터와는그사용목적이다르기때문이다. 키보드와모니터가필요하다면마이크로프로세서를사용하면된다. 마이크로컨트롤러 라는단어는 마이크로 + 컨트롤러 로이루어져있다. 마이크로 는작다는의미로하나의칩으로만들어져있어작고가벼움을의미한다. 컨트롤러 는제어기를뜻하며마이크로컨트롤러의주용도, 즉제어장치를만들기위한핵심부품으로마이크로컨트롤러가사용됨을의미한다. 마이크로컨트롤러는작고간단한제어장치를만들기위한목적으로특화된마이크로프로세서의한종류이다. 1.3 컴퓨터로무엇을할수있나? 웹브라우저를실행시켜온라인뉴스를읽고, 음악을듣고, 문서를작성하고, 가끔은게임도한다. 이러한작업을위해필요한입출력장치들이바로키보드, 마우스, 그리고모니터이다. 마이크로컨트롤러는컴퓨터이기는하지만우리가컴퓨터에서하는작업들을대신하기위해만들어진것은아니다. 컴퓨터로처리하는작업들을처리하기에마이크로컨트롤러는너무느리고용량도충분하지않다. 이책에서다룰마이크로컨트롤러인 ATmega328 을사용한아두이노우노와이글을작성하고있는컴퓨터와비교해보면메모리는약 25만분의 1, 속도는약 850분의 1에지나지않는다. 1 1 항목 아두이노우노 데스크톱컴퓨터 CPU ATmega328 Intel Core i7 비트 8 64 메모리 32Kbyte 8Gbyte 클록 16MHz 3.4GHz(Quad Core) 마이크로컨트롤러는일상생활에서흔히사용하는환경이아닌특수한환경에서사용할목적으로만들어진작고간단한컴퓨터이다. 마이크로컨트롤러를일반컴퓨터와비교했을때가지는장점중하나는저렴한가격에있다. Intel Core i7과비교했을때 ATmega328 은약 100분의 1 가격이면구입할수있다. 현관에사람이들어오면자동으로불이켜지는전등을만들기위해 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

33 만원에달하는컴퓨터를사용할필요는없지않은가? 작고값싼마이크로컨트롤러로도자동으로현관에불을켜는일은충분하다. 마이크로컨트롤러의성능이나쁘다고이야기하였지만이는컴퓨터와비교하였을때의이야기이지결코성능이나쁜것은아니다. ATmega328 의최대클록주파수는 20MHz 이다. 물론 Intel Core i7과비교한다면느린것이사실이지만하드디스크가대중화되기시작한시점에서소개된, 흔히 286 컴퓨터 라고불리던 AT(Advanced Technology) 컴퓨터의 CPU 클록주파수가 20MHz 임을감안하면컴퓨터라고불러도손색이없을정도임을짐작할수있다. ATmega328 로도자동으로불이켜지는전등을만들기에는충분하다. 오히려 ATmega328 은지나치게성능이좋으며원한다면 1,000 원전후의더싼가격의마이크로컨트롤러를사용하여도가능하다. 마이크로컨트롤러는컴퓨터이다. 작고간단하고저렴한컴퓨터이긴하지만 1,000 원짜리컴퓨터에키보드와모니터를연결하여슈팅게임을즐기고자하는사람은없으리라생각한다. 물론마이크로컨트롤러중에는다양한기능과기가헤르츠 (GHz) 에달하는클록주파수를가진것도존재한다. 이러한고성능의마이크로컨트롤러는여전히 Intel Core i7보다는저렴하지만 1,000 원에구입할수는없다. 마이크로컨트롤러를어디에사용할수있을까? 작고간단한제어장치 를만들기위해사용할수있다. 마이크로컨트롤러에케이스를만들지않는이유는다른시스템의일부로포함되는경우가대부분이기때문이라고이야기하였다. 자동점등조명역시조명장치의일부분으로마이크로컨트롤러가들어간다. 이처럼다른시스템의일부로포함되는마이크로컨트롤러를 임베디드 (embedded) 되었다고이야기하며, 마이크로컨트롤러는임베디드영역에서중요한한부분을차지하고있다. 임베디드시스템에서또다른한부분을차지하는것은마이크로프로세서로, 마이크로프로세서로만들어지는임베디드시스템은크기만데스크톱컴퓨터와다를뿐데스크톱과완전히동일한컴퓨터에해당한다. 최근라즈베리파이 (Raspberry Pi) 4 를필두로주목받고있는싱글보드컴퓨터역시마이크로프로세서를사용한보드로임베디드시스템에서의응용이점차늘어나고있는추세이다. 마이크로컨트롤러의또다른장점중하나는다양한제품이존재한다는점이다. 마이크로컨트롤러에는 1,000 원이면구입할수있는제품이있는가하면그수십배가격에달하는것도있다. 이처럼다양한제품군은용도와목적에맞게필요로하는기능과성능을선택할수있는유연성을제공해준다. 1.3 마이크로컨트롤러는 어디에 사용할 수 있을까? 9

34 10 애초서로다른목적으로만들어진만큼마이크로컨트롤러를컴퓨터 ( 또는마이크로프로세서 ) 와 비교하는것은무의미할수도있다. 하지만마이크로컨트롤러와마이크로프로세서가차지하고 있는자리를이해하는것은필요하다. 마이크로컨트롤러는마이크로프로세서에비해다음과 같은장점또는특징이있다. 제품의소형화및경량화 : 마이크로컨트롤러는마이크로프로세서를사용하는컴퓨터의 메인보드에포함된대부분의기능을하나의칩에구현하고있어작고가벼운제어장치 를만들기위해사용할수있다. 저렴한가격 : 마이크로컨트롤러는집적도가낮고설계가간단하여마이크로프로세서에 비해가격이저렴하다. 또한마이크로컨트롤러는제어목적에필요한대부분의기능을 포함하고있어제어장치설계및제작과정이단순해지므로개발에필요한비용및시 간을줄일수있어완성된제품의가격경쟁력을높일수있다. 신뢰성향상 : 마이크로컨트롤러는제어장치구현에필요한대부분의기능을내장하고 있어시스템을구성할때필요로하는부품의수가적으므로고장이적고유지보수가 용이하다. 융통성 : 마이크로컨트롤러는전통적으로제어장치에서제어를위해필요한기능들을 하드웨어로구현하는것과달리제어기능들을소프트웨어적으로처리할수있도록해 줌으로써기능의변경이나확장에보다유연하게대응할수있다. 하지만마이크로컨트롤러가마이크로프로세서에비해가지는단점도분명존재한다. 처리능력 : 마이크로컨트롤러는단순화된저사양의마이크로프로세서에주변장치를통 합한형태로특수목적용으로만들어졌으므로일반적으로처리능력은마이크로프로 세서에비해떨어진다. 따라서마이크로컨트롤러는높은처리능력을필요로하는작업 에는적합하지않다. 많은데이터를빨리처리해야할필요가있다면마이크로프로세서 를사용하는것이바람직하다. 범용성 : 마이크로프로세서의경우일반적으로운영체제를통해다수의프로그램들을설 치하고실행시킬수있다. 하지만마이크로컨트롤러는특정작업을위한하나의프로그 램만을설치하고실행시킬수있다. 마이크로컨트롤러는전용의간단한제어장치를만들기위해사용할수있다. 1,000 원짜리마 이크로컨트롤러에서 100 만원짜리컴퓨터의성능을기대하지않는다면마이크로컨트롤러를사 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

35 용할수있는곳은많으며실제마이크로컨트롤러가사용된예를어렵지않게찾아볼수있다. 앞에서도이야기하였지만마이크로컨트롤러는임베디드시스템의일부로포함되어있어눈에띄지않아사용되고있다는사실을알아차리지못했을뿐이다. 표 1-2 는마이크로컨트롤러가실생활에서사용되고있는예를나타낸것으로이보다훨씬많은예들을어렵지않게주변에서찾아볼수있다. 1 2 분야의료교통감시가전음향사무자동차기타 예의료기 제어, 자동 심박계신호등 제어, 주차장 관리출입자 / 침입자 감시, 산불 감시에어컨, 세탁기, 전자레인지 CD 플레이어, 전자 타이머복사기, 무선 전화기엔진 제어, 충돌 방지게임기, 차고 개폐 장치 1.4 마이크로컨트롤러는하나의칩일뿐이다. 이책에서다루게될 ATmega328 마이크로컨트롤러의경우 28개의핀을가진약 3.5cm 1cm 크기의칩에불과하다. 사용의편이를위해보드위에빼곡히들여놓은부가장치들에지레겁을먹지만않는다면마이크로컨트롤러는 보기보다 어렵지않다. 인터넷에서아두이노우노보드의회로도를찾아보자. 그림 1-3 은공개된아두이노우노보드의회로도에서동작에필수적인부분들만표시한것으로, 실선으로표시된외부클록을위한회로와전원안정화를위한회로를제외하면나머지회로들은제거하여도마이크로컨트롤러가동작하는데지장이없다. 물론전원은 5V가주어진다고가정한경우이다. 다른회로들은컴퓨터와의연결을간편하게하고프로그램을다운로드할수있도록 USB 연결을지원하는회로, 어댑터에서전원을공급받기위한회로등이다. 컴퓨터에서프로그램을다운로드하기위해서는그림 1-3 에서점선으로표시된부분역시필요하며이는 ATmega328 의핀과커넥터를직접연결하여구성할수있다. 1.4 마이크로컨트롤러를 어떻게 공부해야 할까? 11

36 1 3 아두이노우노회로도 5 12 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

37 이책에서다루고자하는 ATmega328 을공부하기위해서는그림 1-3 에표시한기본회로만으로도가능하다. 기본회로를바탕으로여기에필요한입출력장치를하나씩추가해나가면서제어장치를구성해본다면보기보다마이크로컨트롤러가그리어렵지않다는것을알수있다. 한가지더필요한것이있다면컴퓨터에서프로그램을업로드하기위한 ISP(In System Programming) 장치로, ISP 장치는아두이노우노보드에도포함되어있지않으므로별도로구입하여야한다. 아두이노환경에서프로그램을다운로드하기위해서는일반적으로마이크로컨트롤러에서는사용하지않는 USB- 시리얼변환장치를사용해야한다. 그림 1-3 에서기본회로에포함되지않으면서거의절반을차지하는회로가 USB- 시리얼변환기능을위한것으로아두이노우노보드를사용한다면별도로구입할필요는없다. 하지만기본회로에서시작하고아두이노스타일로프로그램을다운로드해보고싶다면 USB- 시리얼변환장치역시필요하다. ISP 장치 1 4 프로그램업로드장치 USB- 시리얼 변환 장치 ATmega328 이마이크로컨트롤러중에서도간단한마이크로컨트롤러인것은사실이다. 학교에서교육용으로흔히사용되는 ATmega128 만하여도 64개의핀을가지고있어 ATmega328 에비해 2배이상핀의수가많다. 하지만 ATmega128 의속도와기능은 ATmega328 과거의동일하며단지동일한기능을가진핀의개수만늘어났을뿐이다. 다른마이크로컨트롤러의경우에도기본기능은 ATmega328 과크게차이가없으므로 28핀의소형마이크로컨트롤러로도마이크로컨트롤러의공부를시작하기에부족함이전혀없다. 1.4 마이크로컨트롤러를 어떻게 공부해야 할까? 13

38 1.5 마이크로컨트롤러는입출력장치가제거되고케이스가벗겨진컴퓨터이다. 이상태로는할수있는일이많지않지만, 주변장치와데이터를주고받음으로써작고느리기는하지만완전한컴퓨터로서동작시킬수있다. 먼저마이크로컨트롤러가데이터를주고받는방식에대해알아보자. 마이크로컨트롤러는디지털데이터를처리한다. 디지털데이터는영 (0) 과일 (1) 의값만을가지며주변장치와데이터를주고받는경우에도마찬가지이다. 주변장치와의데이터교환은마이크로컨트롤러의핀을통해이루어지며 ATmega328 의경우 28개의핀중 23개의핀을데이터교환을위해사용할수있으므로동시에최대 23비트의데이터를주변장치와교환할수있다. 즉, 핀하나는한번에 1비트의데이터교환이가능하다. 데이터를교환하는방식은 ATmega328 과주변장치사이에상호합의된방식으로행해져야하며이를프로토콜 (protocol) 이라고한다. 프로토콜에관해서는이책에서자세히다루지않을것이지만전송속도에관해서는주의하여야한다. 마이크로컨트롤러는대부분핀의개수가그리많지않으므로데이터교환을위한핀의개수가제한되어있다. ATmega328 의데이터핀 23개가많아보이지만작은크기의 LCD 화면을제어하기위해 10개이상의데이터핀이필요한경우도있으므로, LCD 화면하나만을연결하여도절반이상의입출력핀을사용하게되고사용가능한핀이부족하여원하는주변장치를연결할수없는경우가발생할수있다. 따라서마이크로컨트롤러에서는여러핀을동시에사용하여데이터를교환하는병렬방식보다는하나의핀을통해여러번에걸쳐데이터를교환하는시리얼방식이선호된다. ATmega328 의내부에서는데이터를고속으로전달하기위해한번에 8비트의데이터를병렬로전달한다. 하지만 CPU를벗어나면일반적으로데이터는직렬로 8번에나누어전달된다. 병렬과시리얼방식에서모두데이터는동기화가중요하며여기에전송속도가관련된다. CPU 내부에서데이터전달은메인클록에의해제어되고보내는쪽과받는쪽이동일한클록을공유하고있어문제가될경우는많지않다. 하지만주변장치와데이터교환이필요한경우보내는쪽과받는쪽이동일한속도로데이터를검사하지않으면잘못된정보가전달될수있다. 그림 1-5 는데이터핀으로디지털데이터를전달하는예를나타낸것이다. 14 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

39 1 0 1 초 2 초 송신 : 초당 1 비트 전송 수신 1 : 초당 1 비트 검사 시리얼데이터전송 수신 2 : 초당 2 비트 검사 0011 그림 1-5 에서송신장치는초당 1비트의데이터를보낸다, 즉, 데이터의전송속도가 1bps(bit per second) 이다. 수신장치역시 1bps 의속도로데이터를검사한다면수신되는데이터는 01 의 2비트가되겠지만, 1초에두번 (2bps 의속도로 ) 데이터를검사한다면수신되는데이터는 0011 로전혀다른데이터가된다. 따라서주변장치와정보를교환하고자한다면보내는속도와받는속도를일치시켜주어야하며이는동기화 (synchronization) 에서중요한부분을차지한다. 주변장치와정보를교환하는 약속 에도여러가지가있다. 대부분의마이크로컨트롤러가지원하며 ATmega328 에서도사용할수있는방식에는 UART, SPI, I2C 등이있다. UART(Universal Asynchronous Receiver/Transmitter) 는컴퓨터나기타주변장치의시리얼포트를이용하는시리얼통신방식이다. UART 시리얼통신에서는정보교환을위해송신과수신 2개의데이터핀연결을필요로하며송신과수신은동시에진행될수있는전이중 (full-duplex) 방식이다. UART 는동기화를위해별도의클록을전송하지않으므로통신이전에전송속도를동일하게설정하여야한다. UART 는한번에하나의장치만연결이가능한 1:1 통신방식으로마이크로컨트롤러에 UART 방식의주변장치를 2개연결하고자한다면 2개의 UART 포트가필요하다. 따라서여러개의주변장치를연결하기위해서는많은수의데이터핀이필요하다는등다른방식에비해단점이많지만간단하면서도오랫동안사용된방식으로많은주변장치들이지원한다는장점이있다. 1.5 주변장치와 어떻게 데이터를 교환하나? 15

40 SPI(Serial Peripheral Interface) 는짧은거리에서주변장치와고속으로정보를교환하기위해주로사용되며, 3개의데이터핀연결과 1개의제어핀연결, 즉총 4개의핀연결이필요하다. 3개의데이터연결핀중 2개는 UART 에서와마찬가지로데이터송수신을위해사용되며나머지하나는동기화를위한클록신호를보내기위해사용된다. SPI가 UART 와다른또한가지는동일한 SPI 포트를통해여러개의장치를연결하는 1:n 통신이가능하다는점이다. 이때하나의장치는마스터 (master) 로통신과정을책임지며다른장치들은슬레이브 (slave) 로동작한다. 동일한통신포트를통해여러개의슬레이브가연결되면특정장치를선택할수있는방법이필요하며 SPI에서는제어연결핀을통한하드웨어적인방식을사용한다. SPI는고속의데이터를안정적으로전달하고여러개의장치들이포트를공유할수있는장점은있지만제어핀의수가연결된장치의수에비례하여증가하는단점도있다. I2C(Inter-Integrated Circuit) 는짧은거리에서주변장치와저속으로정보를교환하기위해주로사용되며, 2개의데이터핀연결만을필요로한다. I2C는 SPI와마찬가지로 1:n 으로연결된마스터-슬레이브구조의통신방식이지만 SPI와몇가지다른점이있다. I2C에서사용하는데이터연결핀중실제로데이터전송에사용되는핀은하나이며, 다른하나는동기화를위한클록신호를위해사용된다. 따라서 I2C는위의두가지방법들과다르게송수신이동시에이루어질수없는반이중방식이다. 또한가지다른점은 1:n 연결에서장치구별을위해소프트웨어적인주소를사용하므로별도의제어핀연결은필요하지않다는점이다. 따라서 SPI와달리 I2C 장치의수가증가하여도필요로하는핀의개수는증가하지않는다. 1 3 UART SPI I2C 연결 방법 1:1 1:n 1:n 전송 방법 전이중 전이중 반이중 데이터 2개 2개 1개 동기 신호 - 1개 1개 연결선 제어 - 1 개 - 총 2 개 4 개 2 개 n 개 슬레이브 연결 2n 개 (3 + n) 개 2 개 16 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

41 마이크로컨트롤러 송신 1 수신 1 주변장치 1 수신 2 송신 2 UART 주변장치 2 마이크로컨트롤러 송신 수신 동기화 클록 주변장치 1 제어선 1 주변장치 2 제어선 2 SPI 마이크로컨트롤러 송수신 동기화 클록 주변장치 1 주변장치 2 I2C 1 6 통신방식 이러한데이터교환방식을통해마이크로컨트롤러는다양한주변장치와데이터를주고받음으로써완전한컴퓨터로동작할수있다. 마이크로컨트롤러가컴퓨터와같이키보드나모니터를입출력장치로사용하는경우는거의없다. 일반적으로마이크로컨트롤러는입력장치로다양한센서를사용하여주변데이터를수집하고이를처리하여또다른주변장치제어를위한신호를출력하는형태로구성된다. 또는수집된데이터를컴퓨터로전달하여컴퓨터에서전체적으로데이터를처리하고관리할수있도록도와주는역할을수행하게된다. 1.5 주변장치와 어떻게 데이터를 교환하나? 17

42 1.6 컴퓨터에서프로그램을작성하는경우를생각해보자. 먼저프로그램을작성하기위해컴파일러를설치해야하며, 코드를입력하고컴파일하여실행파일을만들어내야한다. 물론디버깅을위해서는모니터도필요할것이다. 마이크로컨트롤러의경우에키보드와모니터는없다는것을이미알고있다. 컴파일러의경우는어떠한가? ATmega328 에프로그램을저장할수있는메모리는 32Kbyte 에불과하다. 윈도우에서가장간단한프로그램중하나인메모장만하더라도그크기가수백킬로바이트에달하므로 ATmega328 에서실행하는것은불가능하다. 하물며프로그램을개발하기위해많이사용되는비주얼스튜디오 (Visual Studio) 의경우에는수백메가바이트의공간을필요로한다. 한마디로 ATmega328 에서프로그램을개발하는것은불가능하다. 따라서마이크로컨트롤러를위한프로그램은컴퓨터에서개발하고실행파일만마이크로컨트롤러에업로드하여설치하는과정을거친다. 이처럼프로그램이개발되는환경 ( 개발시스템, 컴퓨터 ) 과프로그램이실행되는환경 ( 목적시스템, 마이크로컨트롤러 ) 이서로다른경우를일컬어교차개발환경 (cross development environment) 이라한다. 개발된 기계어 파일을 업로드 교차 컴파일러가 설치된개발 시스템 1 7 교차개발환경 개발된 프로그램이 실행될목적 시스템 교차개발이가능하기위해서는개발시스템에서동작하면서목적시스템에서실행가능한기계어파일을생성할수있는교차컴파일러 (cross compiler) 가필요하며생성된기계어파일을목적시스템에설치할수있는방법이필요하다. ATmega328 을위한교차컴파일러에는아두이노 6 에서제공하는프로그램과아트멜 7 에서제공하는아트멜스튜디오등이있으며, 이책에서는이들두가지모두를사용해볼것이다. 이외에도몇가지다른교차컴파일러를사용할수있지만이책에서는다루지않는다. 교차컴파일러는 ATmega328 마이크로컨트롤러에서실행가능한실행파일, 즉기계어파일을생성해준다. 윈도우에서실행가능한기계어파일은확장자가 EXE 또는 DLL 인반면, ATmega328 에서실행가능한기계어파일은확장자가 HEX라는차이가있다. 18 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

43 기계어파일이생성되면이를마이크로컨트롤러에설치하는과정이필요하며, 이는시리얼통신을통해개발시스템에서마이크로컨트롤러로기계어파일을전송함으로써이루어진다. 이처럼실행가능한기계어파일을개발시스템에서목적시스템으로전송하여설치하는과정을 다운로드 또는 업로드 라한다. 다운로드는마이크로컨트롤러의입장에서개발시스템으로부터프로그램을가져오는것을, 업로드는개발시스템에서마이크로컨트롤러로프로그램을보내는것을중심으로이야기한다. 이처럼다운로드와업로드는정반대의의미이지만동일한방향의데이터흐름을가리키므로일반적으로동일한의미로사용되고있다. 업로드된프로그램은마이크로컨트롤러의메모리에설치되며마이크로컨트롤러에는일반적으로하나의프로그램만이설치될수있으므로마이크로컨트롤러에전원을인가하면간단한부팅과정을거쳐현재설치된프로그램이자동으로실행된다. 프로그램을업로드하기위해서는 UART 와 SPI 방식을사용할수있다. 아두이노에서는별도의추가장치없이프로그램을업로드하기위해 UART 방식을사용한다. 반면일반적으로마이크로컨트롤러프로그래밍에서는 SPI를통해프로그램을업로드하는 ISP(In System Programming) 또는 ICSP(In Circuit Serial Programming) 방식을사용한다. 이책에서는두가지방식모두를사용하여프로그램을업로드해볼것이다. 교차개발환경은스마트폰을위한어플리케이션개발에서도볼수있다. 스마트폰은마이크로프로세서 ( 또는어플리케이션프로세서 ) 를사용하지만스마트폰용운영체제에서는비주얼스튜디오와같은개발도구를제공하지않으므로컴퓨터에서어플리케이션을개발한후개발컴퓨터나장터에서어플리케이션을다운로드하고스마트폰에설치한다. 마이크로컨트롤러의경우와동일하지않은가? 물론스마트폰에는운영체제가있어여러개의프로그램을설치하고실행할수있다는점에서마이크로컨트롤러와는차이가있다. 1.7 어두워지면자동으로불이켜지는전등을만들고싶다고가정해보자. 마이크로컨트롤러가필요할까? 요구사항에따라달라지겠지만단순히어두워지면불이켜지는동작은마이크로컨트롤러없이도가능하다. 빛의양에따라저항이변하는조도센서를이용하면그림 1-8 의회로를통해어두워지면자동으로불이켜지게할수있다. 저항의값을조절하면불이켜지는시점의광량도조절할수있다. 1.7 마이크로컨트롤러가 꼭 필요한가? 19

44 1 8 스위칭회로를이용한자동점등회로 마이크로컨트롤러를이용해서도동일한동작을수행하도록구성할수있으며, 그림 1-9 는 ATmega328 마이크로컨트롤러를이용하여구성된회로의예이다. 1 9 마이크로컨트롤러를이용한자동점등회로 트랜지스터와저항만으로구성된그림 1-8 의회로에비해그림 1-9 의회로는마이크로컨트롤러를사용하므로가격이비싸고배선도복잡해보인다. 게다가프로그램을작성해서업로드해야하는등번거롭고아무런이점도없어보인다. 실제로이경우마이크로컨트롤러를사용하는경우의이점은없다. 그렇다면마이크로컨트롤러를사용할필요가없지않은가? 어두워지면불이켜지는간단한동작의경우마이크로컨트롤러를사용함으로써얻을수있는이점은거의없지만, 기능을변경하거나추가하고자한다면마이크로컨트롤러를사용하는장점을발견할수있다. 20 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

45 그림 1-8 의회로에서불이켜지기위한기준광량을바꾸고싶다면어떻게해야할까? 회로에서저항을다른크기의저항으로교체하면된다. 이를위해서는저항을떼어내고다른크기의저항으로교체하는등의작업이필요하다. 마이크로컨트롤러를사용한경우는어떨까? 프로그램에서임계치를조절하여프로그램을다시업로드하면된다. 마이크로컨트롤러를사용하는경우가간단하지않은가? 별반차이가없어보이는가? 기능을추가하는경우라면마이크로컨트롤러를사용하는이점이보다명확히나타난다. 그림 1-8 의회로에한번불이켜지면최소 10초는불이켜져있도록하고싶다면어떻게해야할까? 불이켜진시간을알아내기위해서는시간을알려주는부품이필요하고, 불이켜진시간을저장해놓기위해메모리가필요하고, 현재시간과저장된시간을비교하기위해비교기가필요하다. 이들부품을모두그림 1-8 의회로에추가하는것이가능하기는하지만이경우회로를완전히다시그려야할지도모르며완성된회로는그림 1-9 보다더복잡해질수있다. 이에비해마이크로컨트롤러를사용한회로는최소 10초동안불이켜져있도록하기위해변경이필요하지않다. 불이켜지는기준광량을바꾸는경우와마찬가지로프로그램수정만으로기능을추가할수있다. 바로여기에마이크로컨트롤러를사용하는이점이있다. 동일한입력 ( 광센서 ) 과동일한출력 (LED) 을가지는회로에서마이크로컨트롤러를사용하는경우프로그램수정만으로서로다른동작 (1 광량에따라점멸하는동작과 2 광량에따라점멸하면서불이켜졌을때최소 10초동안켜져있는동작 ) 을구현하는것이가능하다. 마이크로컨트롤러를사용함으로써얻을수있는장점을알수있겠는가? 1.8 마이크로컨트롤러는작고간단한컴퓨터이다. 컴퓨터에프로그램을설치하여다양한작업을수행할수있는것과마찬가지로마이크로컨트롤러에도프로그램을설치하여동일한하드웨어를이용하여서로다른작업을수행할수있다. 특히마이크로컨트롤러는제어장치를구성하기위한목적으로특화된컴퓨터로, 다양한제어장치를구성하기위해사용할수있다. 마이크로컨트롤러는컴퓨터이기는하지만흔히접하는데스크톱컴퓨터나노트북컴퓨터와는다르다. 마이크로컨트롤러로할수있는것과할수없는것을명확히구별하고, 하고자하는일에맞는마이크로컨트롤러를선택할수만있다면시작이반이라는말처럼이미문제의절반은해결된것이라하겠다. 1.8 요약 21

46 최근의사물인터넷붐은마이크로컨트롤러의활용가능성을더욱넓혀주고있으며, 아트멜이외의마이크로컨트롤러제조사들도사물인터넷을위한마이크로컨트롤러생태계구축에박차를가하고있다. 이책에서다룰 ATmega328 은아두이노우노에사용된마이크로컨트롤러로이미수많은아두이노우노가사용되고서로연결되고있어다른어느마이크로컨트롤러에비해서쉽게접근할수있다. 무엇을할지먼저결정하자. 하고자하는일이 ATmega328 로충분하다면이책을통해간단하게제어장치를만들고나아가다른기기들과연결될수있는방법을찾아낼수있을것으로기대한다. 연습문제 마이크로컨트롤러가 사용된 예는 표 1-2 에서 나열한 경우 이외에도 많다. 일상생활에서 사용하는 제품들 중에서 마이크로컨트롤러가 사용된 예를 찾아보자. 이 책에서 다루는 ATmega328 은 아트멜에서 제작한 8비트의 마이크로컨트롤러이다. 최근 마이크로컨트롤러의 사용 범위가 넓어지면서 16비트 또는 32비트의 고성능 마이크로컨트롤러의 사용 역시 증가하고 있으며, ARM에서 설계한 Cortex M3 가 32비트 마이크로컨트롤러를 위한 대표적인 아키텍처 중 하나이다. ATmega328 과 STM32F103(ARM 의 Cortex M3 아키텍처를 사용하여 STMicroelectronics 에서 제작한 마이크로컨트롤러 ) 마이크로컨트롤러의 장단점을 비교해 보자. 싱글 칩 컴퓨터 (single chip computer) 라고 불리는 마이크로컨트롤러는 컴퓨터이기는 하지만 성능이 낮으며, 하나의 프로그램만을 설치할 수 있다는 점에서 일반적인 데스크톱 컴퓨터와 다르다. 데스크톱 컴퓨터에는 미치지 못하지만 마이크로컨트롤러보다 높은 성능을 가지며 데스크톱 컴퓨터와 같이 운영체제를 바탕으로 동작하는 또 다른 종류의 컴퓨터인 싱글 보드 컴퓨터 (single board computer) 가 최근 임베디드 시스템 영역에서 마이크로컨트롤러와는 다른 영역에서 주목을 받고 있다. 싱글 칩 컴퓨터의 대표적인 예 중 하나라고 할 수 있는 아두이노와 싱글 보드 컴퓨터 중 가장 많이 판매된 라즈베리 파이 (raspberry pi) 8 를 비교해 보자. 22 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!

47 CHAPTER 2 메모리이야기 학습목표 } } } } } ATmega328 의메모리종류이해하기 ROM과 RAM의차이이해하기 ROM의종류와특성이해하기 EEPROM 과플래시메모리특성이해하기 DRAM과 SRAM의특성이해하기 메모리는컴퓨터에서프로그램이나데이터를저장하고실행시키기위해필요한핵심적인요소중하나이다. 메모리는저장장치 (storage) 의하나로컴퓨터에서는일반적으로칩형태로존재하며 내부저장장치 (internal storage) 라고도부른다. 반면 저장장치 는일반적으로디스크형태의외부저장장치를가리키며 외부메모리 (external memory) 라고도부른다. 이처럼메모리와저장장치는거의동일한의미로사용되지만일반적으로칩형태는메모리, 기계적인장치가필요한형태는저장장치라고구분하여사용된다. 마이크로컨트롤러에서는기계적인장치가필요한저장장치를사용하는경우는거의없으므로, 이장에서는마이크로컨트롤러에서흔히사용되는메모리를중심으로다양한메모리의종류와용도에대해알아본다. 2.1 ATmega328 컴퓨터가동작하기위해서는세가지메모리, 즉메인보드에추가로장착되는하드디스크와메인메모리, 그리고중앙처리장치 (CPU) 내에서연산을수행하기위해사용되는레지스터가필요하다. 이중레지스터는 CPU 내에포함되어있는메모리로 C/C++ 언어로프로그램을작성하는경우프로그래머가직접제어하는경우는흔하지않으므로제외하고하드디스크와메인메모리에대해서만이야기하도록하자. 23

48 마이크로컨트롤러는컴퓨터의메인보드에해당하는기능을하나의칩으로집약시켜놓은싱글칩컴퓨터 (single chip computer) 이므로 ATmega328 에도컴퓨터의하드디스크와메인메모리에해당하는메모리가필요하며, ATmega328 에는세종류의메모리, 즉플래시메모리, SRAM, EEPROM 이포함되어있어하드디스크와메인메모리의기능을담당하고있다. 하지만개수의차이에서도알수있듯이 ATmega328 의세종류메모리와컴퓨터의두종류메모리는 1:1 로대응하지는않는다. 이러한차이는일반적으로컴퓨터는폰노이만구조를따르는반면, 마이크로컨트롤러특히 ATmega328 은하버드구조를따르기때문이다. 그림 2-1 은폰노이만구조와하버드구조를비교한것이다. 컴퓨터의메모리에저장되는내용은크게두가지, 즉프로그램과데이터로나눌수있다. 프로그램과데이터는수학연산에서연산자와피연산자에해당한다 라는명령을컴퓨터로실행하는경우연산자인 더하기 (+) 는프로그램에해당하며, 피연산자인 1 과 2 는데이터에해당한다. 폰노이만구조에서는프로그램과데이터가동일하게취급되므로동일한메모리에저장되고처리되는반면, 하버드구조는프로그램과데이터가서로다르게취급되므로서로다른메모리에저장되는차이가있다. 하버드구조는두종류의메모리를별도로관리해야하므로구조가복잡해지는단점이있지만동시에두곳에서자료를읽어올수있으므로폰노이만구조에비해속도가빠른장점이있다. 주소 버스 Memory CPU 데이터 버스 ( 명령어와 데이터 ) 폰 노이만 구조 Program Memory (PM) 주소 버스 데이터 버스 ( 명령어 ) CPU 하버드 구조 주소 버스 데이터 버스 ( 데이터 ) 2 1 폰노이만구조와하버드구조 Data Memory (DM) 표 2-1 은컴퓨터와마이크로컨트롤러에서의메모리를기능에따라요약한것이다. 폰노이만구조를따르는컴퓨터의경우메모리는전원이주어지지않는경우기록된내용이사라지는휘발성메인메모리와, 전원이주어지지않아도기록된내용이보존되는비휘발성메모리인하드디스크로나눌수있다. 반면하버드구조를따르는 ATmega328 의경우휘발성 / 비휘발성이외에도프로그램과데이터저장을위한메모리로나뉘는것을알수있다. 24 CHAPTER 2 메모리 이야기

49 2 1 ATmega328 메모리종류데스크톱컴퓨터의메모리 ATmega328 의메모리 프로그램 메모리 데이터 메모리 프로그램이 설치되는 메모리 하드디스크 플래시 메모리 프로그램이 실행되는 메모리 메인 메모리 (DRAM) 플래시 메모리 연산 결과 데이터가 임시 저장되는 메모리 메인 메모리 (DRAM) SRAM 연산 결과 데이터가 영구 저장되는 메모리 하드디스크 EEPROM 2.2 ROM RAM 메모리는크게두종류, 즉 ROM과 RAM로나눌수있다. ROM은 Read Only Memory 의약어로, 이미기록된내용을읽기만할수있고쓰거나지울수는없는메모리를말한다. 컴퓨터의부팅과정에서사용되는정보를저장하고있는 BIOS 칩이 ROM에해당되며, 그크기는수메가바이트정도이다. BIOS 는기본입출력시스템 (Basic Input/Output System) 의약어로컴퓨터의하드웨어요소들을검사하고운영체제를시작하는역할을담당한다. BIOS 의내용은컴퓨터생산과정에서결정되며제조사에서 ROM의형태로만들어메인보드에장착한다. 하지만최근의 BIOS 는제한된횟수의지우고쓰기가가능한형태로제작되어수정이가능하다. 컴퓨터뿐만아니라휴대용 MP3 플레이어와같은장치에서도기기의초기구동과정과동작을담당하는프로그램을 ROM으로만들고 펌웨어업그레이드 를통해 ROM의내용을수정하여기능을개선할수있도록하고있다. 이처럼 ROM은더이상읽을수만있는메모리가아니며, ROM이 RAM 과다른점은전원공급이중단되어도내용이사라지지않는비휘발성메모리라는점이다. 물론 ROM의내용을바꾸는것이가능하기는하지만 RAM에비해많은시간과비용이들며수정할수있는횟수도제한되어있다. RAM은 Random Access Memory 의약어로단어의미를그대로번역하면 임의접근방식메모리 정도가되겠지만실제로는자유롭게읽고쓸수있는메모리를말한다. 임의접근방식은순차접근방식 (sequential access) 과비교되는방법으로카세트테이프와같이기록된순서로만데이터를읽는메모리와비교하기위해처음사용된용어이다. 하지만현재는 RAM이고유명사로정착되어 ROM과대비되는메모리를지칭하는단어로사용되고있다. 앞서도언급한바와같이 ROM 역시 RAM에비해제약이있기는하지만자유롭게읽고쓸수있으므로 RAM이 ROM과다른점은휘발성에서찾아야한다. RAM은전원공급이중단되면저장된내용은사라진다. 따라서 RAM은컴퓨터가동작하고있는동안변하는값들을기록하기위한메인메모리로사용 2.2 ROM 과 RAM 25

50 되며, CPU 내부의레지스터역시 RAM 의한종류에해당된다. 표 2-2 는 ROM 과 RAM 의일반 적인특징을비교한것이다. 2 2 ROM RAM ( 쓰기가능한 ) ROM RAM 읽기 속도 빠름 빠름 쓰기 속도 느림 빠름 휘발성 수명 제한적 반영구적 2.3 ROM 초기에 ROM은위에서설명한것처럼제조사에서미리내용을기록시켜놓고변경할수없도록만들어졌으며이를마스크롬 (Mask ROM) 이라한다. ROM 제작에사용된데이터에오류가있다고생각해보자. 오류를수정하기위해서는칩자체를교환하여야하며, 칩을다시생산하기위해서는생산라인을수정해야하는등비용이많이든다. 이러한단점으로인해마스크롬은더이상제조되지않으며내용을지우고다시쓸수있는 ROM으로대체되었다. 내용을지우고다시쓸수있다면 ROM의정의와는달라지지만비휘발성메모리라는점은동일하므로아직도 ROM으로불리고있다. ROM의특징중하나는쓰기횟수에제한이있다는점이다. 전원이공급되지않아도 ROM에저장된내용을유지하기위해서는물리적인변형을가해야하며이러한변형은기록된내용을지운다고해서원상태로복구되지는않는다. 따라서일정횟수이상 ROM의내용을지우고다시쓰면 ROM은더이상사용할수없다. 지우개에글씨를새겼다가평평하게깎은후다시글씨를새기는과정을반복하면결국지우개는모두없어지고더이상글씨를새길수없는것과비교해볼수있다. 내용을기록할수있는 ROM 중처음소개된 ROM은 PROM(Programmable ROM) 이다. PROM 은내용이기록되지않은상태로생산되고, 전용장치인롬라이터를통해내용을 1회기록할수있다. PROM 에비트를기록하는각셀에는퓨즈가포함되어있고일정수준이상의전류를흘려퓨즈를끊는방식으로정보를기록한다. 26 CHAPTER 2 메모리 이야기

51 PROM을개선하여여러번지우고쓰기가가능한 ROM이 EPROM(Erasable PROM) 이다. EPROM 의윗면에는자외선을잘통과시키는석영유리창이나있고, 이창을통해자외선을쐬면기록된내용을지울수있다. 내용을지우기위해서는전용장치인롬이레이저를사용하지만, 태양빛에도자외선이포함되어있어오래방치해두면자연적으로기록된내용이사라질수있다. 따라서 EPROM 에내용을기록한후에는창을검정색테이프로막아자연상태에서내용이지워지지않도록한후사용하였다. EPROM 이전용장치를필요로하는단점을개선하여만들어진 ROM이 EEPROM(Electrically EPROM) 으로전기신호를이용하여내용을지우거나기록할수있다. EEPROM 의읽기동작은메모리중가장빠른속도를보이는 SRAM과거의비슷하지만, 쓰기동작은밀리초단위의시간이필요하므로쓰기동작이빈번한메인메모리용도로는적합하지않다. EEPROM 은내용을한번저장하면오랜시간동안이를기억하고읽기용도로만사용하는경우에주로사용된다. 플래시메모리가출시된이후사용빈도가줄어들고는있지만플래시메모리에비해적은용량의메모리는가격이싸고제어가간단하기때문에가전제품, 컴퓨터의 BIOS 칩등에아직도사용되고있다. ATmega328 에도 1Kbyte 의 EEPROM 이포함되어있어프로그램의실행옵션이나상태등을저장할수있다. 2.4 플래시메모리 (flash memory) 는 EEPROM 의변형으로 1984년도시바에서처음만들어졌다. EEPROM 은바이트단위로데이터를읽거나쓸수있다. 플래시메모리역시바이트단위읽기가가능하다는점에서는 EEPROM 과동일하지만, 블록단위의쓰기만가능하다는점에서 EEPROM 과차이가있다. 블록의크기는제조사나메모리용량에따라다르지만일반적으로 64byte 에서 128Kbyte 사이의크기가사용된다. 플래시메모리는블록단위의쓰기만가능하다는단점이있지만 EEPROM 에비해구조가간단하므로대용량메모리를만들기에적합하고, 블록전체를쓰는시간은 EEPROM 에서한바이트의데이터를쓰는시간과유사한수밀리초정도가소요되므로대용량의데이터를기록할때에는 EEPROM 보다빠른장점이있다. 이러한장점으로인해 1988 년상업용플래시메모리가처음소개된이후사용량이증가하여 USB 메모리를포함하여대부분의휴대용장치에서는플래시메모리가사용되고있다. 하지만플래시메모리는블록단위의쓰기를시행하므로일반적으로 EEPROM 에비해쓰기가능한횟수가적다. 2.4 플래시 메모리 27

52 ATmega328 에포함되어있는 EEPROM 의경우 100,000 회쓰기를보장하는반면, 플래시메모리는그 1/10 인 10,000 회쓰기만을보장한다. 플래시메모리는내부구조에따라크게두가지, 즉 NOR 형과 NAND 형이있다. NOR 형은메모리에서직접코드를실행하는어플리케이션에서 EEPROM 을대체하기위해설계되었다. 따라서 NOR 형플래시메모리는임의접근방식에서읽기시간을최소화하는구조로만들어졌다. 반면 NAND 형플래시메모리는대용량데이터를저장하기위해설계되어읽기속도는 NOR 형에비해느리지만지우고쓰는속도는 NOR 형보다빠르다. 또한 NAND 형플래시는집적도가높아 NOR 형플래시에비해가격이약 40% 저렴하여대용량저장장치에주로사용된다. 최근하드디스크의대안으로떠오르고있는 SSD(Solid State Disk) 역시 NAND 형플래시메모리로만들어진다. ATmega328 에서프로그램을저장하기사용되는메모리역시 32Kbyte 크기의플래시메모리이다. 2.5 SD SD(Secure Digital) 카드는플래시메모리를사용하여만들어진외부저장장치표준의하나이다. SD 카드는 NAND 플래시메모리와메모리에데이터를읽고쓰는과정을제어하는컨트롤러로구성되며, 스마트폰, 디지털카메라, 태블릿컴퓨터등휴대용장치에널리사용되고있다 년발표된 SD 카드는 1997 년발표된 MMC(Multi Media Card) 의데이터핀수와동작클록을보완하여만들어졌다. MMC의규격이개정되면서 SD 카드의기능상의장점을찾기는어렵지만, MMC를사용하는기기를찾아보기도어렵다. 하지만칩형태로제작된 emmc(embedded MMC) 는휴대용기기에서탈부착이불가능한저장용메모리로널리사용되고있다. MMC와 SD 카드의표준은거의흡사해서일부 SD 카드리더기에서는 MMC도읽을수있다. 하지만 MMC 리더기에서 SD 카드를읽을수는없다. MMC와 SD 카드가 NAND 형플래시메모리를기반으로만들어진저장장치의표준이라면, CF(Compact Flash) 는 NOR 형플래시메모리를기반으로만들어진저장장치표준의하나로아직도일부디지털카메라에서사용되고있다. SD 카드는최대 2Tbyte의용량을가질수있으며 2Gbyte 이하의용량을표준 SD 또는 SDSC(Standard Capacity), 4Gbyte 에서 32Gbyte 까지의용량을 SDHC(High Capacity), 그이상을 SDXC(eXtended Capacity) 로구별하여부르고있다. SD 카드는그크기별로세가지종류, 즉 SD, 미니 SD, 마이크로 SD가있으며, 휴대용기기에서는마이크로 SD 카드가주로사용되고있다. 28 CHAPTER 2 메모리 이야기

53 SD 미니 SD 마이크로 SD 2 2 SD 카드 9 아두이노에는 SD 카드를사용하기위한하드웨어를기본으로포함하고있지는않지만 SD 카드를사용하기위한 SD 라이브러리는기본으로제공하고있어대용량데이터를저장해야할경우사용할수있다. SD 라이브러리는 FAT16 과 FAT32 파일시스템을지원하며, 사용할수있는카드의용량은최대 32Gbyte 로표준 SD 카드와 SDHC 카드를사용할수있다. 2.6 emmc 아두이노의경우외부저장장치를포함하고있지않지만최근발매되고있는싱글보드컴퓨터의경우외부저장장치로 emmc를포함하고있는경우를종종볼수있다. emmc는 embedded Multi Media Card의약자로 SD 카드와마찬가지로메모리컨트롤러와플래시메모리로구성되며, 하나의칩으로만들어보드에장착하여사용한다. 스마트폰등모바일기기에서탈착이불가능한저장용메모리에 emmc가사용되며, 싱글보드컴퓨터중하나인비글본블랙 (BeagleBone Black) 에도 4Gbyte 의 emmc가저장장치로포함되어있다. emmc 2 3 비글본블랙 emmc 29

54 2.7 SSD emmc가임베디드시스템에서상대적으로적은용량의저장장치로사용된다면, SSD(Solid State Drive) 는대용량의고속저장장치로하드디스크를대체하기위해사용된다. 전통적인기계식동작을기반으로하는하드디스크에비해 SSD는기계적인장치없이동작하므로빠른속도와높은안정성을가지고있으며, 소음, 발열, 전력소모등이적고소형화, 경량화가가능하다는등여러면에서장점이있다. SSD는크게세부분, 즉데이터저장을위한플래시메모리, 데이터교환을제어하는컨트롤러, 캐시메모리역할을하는 DRAM으로구성되어있다. SSD는플래시메모리를바탕으로하므로쓰기횟수에제한이있다. 일반적으로 SSD는일상적인사용에서 10년이상의수명을보장하는것으로알려져있으므로빈번한쓰기작업이발생하는환경이아닌경우에는수명걱정을할필요는없다. 또한동일한위치의반복적인쓰기를감소시키는균등분배기술 (wear leveling), 비트오류의복구가가능한오류정정알고리듬의채택등으로수명은더늘어나고있다. 2.8 DRAM SRAM 지금까지살펴본메모리들은비휘발성메모리인 ROM으로쓰기에비해읽기가빈번한경우에적합하다. 하지만 CPU에서연산이수행되는경우잦은쓰기는피할수없으며이때사용되는메모리가컴퓨터에서흔히메인메모리라고불리는 RAM이다. RAM은크게동적 RAM(Dynamic RAM, DRAM) 과정적 RAM(Static RAM, SRAM) 두가지로나눌수있다. 동적과정적의차이는전원이공급되고있는동안기록된데이터가보존되는지여부에있다. SRAM은플립플롭을바탕으로만들어진메모리로한번기록된데이터는전원이공급되는동안계속남아있다. 반면 DRAM은커패시터에전하를저장하는방식으로데이터를기록하므로일정시간이지나면방전으로인해데이터가사라진다. 따라서 DRAM은일정시간간격으로커패시터를재충전하여야하며, 이를리프레시 (refresh) 라고한다. SRAM은 DRAM에비해최대 20배이상의속도로동작할수있지만집적도가낮고가격이비싸대용량의메모리를만들기에는적합하지않다. 따라서 CPU 내의레지스터나캐시메모리등작은크기의고속메모리에주로사용된다. 반면 DRAM은구조가간단하여집적도를높이기가용이하고소비전력이적어메인메모리로주로사용된다. ATmega328 에는 SRAM이포함되어있으며 DRAM은사용되지않는다. 30 CHAPTER 2 메모리 이야기

55 2 3 SRAM DRAM SRAM DRAM 읽기 / 쓰기 속도 빠름 느림 리프레시 집적도 낮음 높음 가격 비쌈 쌈 최근사용되고있는메모리의대부분은 DDR SDRAM 이다. SDRAM 은 Synchronous DRAM의약자로클록에동기화하여동작하는동기식 DRAM을말한다. SDRAM 은인텔의펜티엄 CPU 발표당시 CPU 클록과메모리동작을동기화시켜 DRAM의성능을개선하기위해만들어졌다. 하지만이후더높은클록의 CPU가발표되었지만메모리의속도는이를따라가지못하게되어 CPU와메모리의속도차이는증가하게되었고이를해결하기위한방법으로도입된것이 DDR(Double Data Rate) 이다. DDR 은 SDR(Single Data Rate) 과대비되는개념으로, SDR은각클록펄스의상승또는하강시점에서한번만정보를전송하는것을의미한다. 이에비해 DDR 은상승및하강시점에서정보를두번전송함으로써동작주파수의증가없이전송속도를 2배까지상승시킬수있는방법이다. DDR 의동작주파수를높이고소비전력을줄이는등의개선을통해 DDR2, DDR3 등이발표되었으며, 이들은이전방법에비해최대 2배의전송속도를얻을수있다. 하지만하위호환성이없으므로함께사용할수는없다. 현재시중에서판매되는메모리는 DDR3 가주종을이루고있으며, DDR2 와 240 핀으로핀수가동일하지만홈의위치가달라쉽게구별할수있다. DDR 메모리역시그크기는 DDR2 나 DDR3 와동일하지만핀수가 184핀으로적고홈의위치도다르다. DDR 메모리는현재거의사용되지않는다. DDR DDR2 DDR3 cm DDR 메모리비교 2.8 DRAM 과 SRAM 31

56 DDR SDRAM은메모리의동작특성을나타내는것으로그림 2-4에나타낸크기와홀의위치등은 DIMM(Dual In-line Memory Module) 규격에의해정의된다. DIMM은여러개의 DRAM 칩을기판위에탑재하여메모리모듈을제작하는방법에관한규격또는그규격에따라제작된메모리모듈을가리킨다. 메인보드에 DIMM 메모리를장착할수있도록만들어진슬롯은 DIMM 소켓또는 DIMM 슬롯이라고불린다. 노트북이나소형컴퓨터등의경우에는일반적인 DIMM보다작은크기인 SO(Small Outline) DIMM 메모리가사용된다. SO DIMM의크기는 DIMM의절반정도이며, 핀의수역시 DDR 과 DDR2는 200핀, DDR3 은 204핀으로 DIMM과차이가있다. SO DIMM DDR SO DIMM DDR2 SO DIMM DDR3 cm SO DIMM 메모리비교 2.9 폰노이만에의해메모리저장방식의범용컴퓨터가제안되면서메모리는현대컴퓨터의기본구조로자리잡게되고중앙처리장치와더불어컴퓨터의핵심적인요소중하나가되었다. 메모리는데이터를기록하고보존하는방식에따라 ROM과 RAM으로나뉜다. 이중 ROM은기술발전에힘입어쓰기가가능하게됨으로써다양한형태의메모리가개발되어사용되고있다. 그림 2-6은현재널리사용중인메모리의종류와관계를요약한것이다. 32 CHAPTER 2 메모리 이야기

57 마스크 ROM 메모리 ROM PROM EPROM EEPROM 플래시 메모리 NAND 형 NOR 형 RAM DRAM SRAM 2 6 메모리의종류 ATmega328 의경우데스크톱컴퓨터와는다른구조를채택하고있으므로사용되는메모리의종류와용도가데스크톱컴퓨터와는차이가있다. 하지만 ATmega328 이채택하고있는하버드구조역시데스크톱컴퓨터에서채택하고있는폰노이만구조의변형에해당하므로이들구조사이의관계역시이해하고있어야할것이다. 연습문제 중앙 처리 장치에서 사용하는 명령어의 구성에 따라 중앙 처리 장치는 CISC(Complex Instruction Set Computer) 와 RISC(Reduced Instruction Set Computer) 로 나뉜다. CISC/RISC 와 폰 노이만 / 하버드 구조는 서로 다른 관점에서 중앙 처리 장치를 나누는 기준이지만 RISC 는 하버드 구조와 함께 사용되는 경우를 흔히 볼 수 있다. RISC 와 하버드 구조가 함께 사용되는 이유는 무엇인지 알아보자. ATmega328 에는 두 종류의 ROM, 즉 플래시 메모리와 EEPROM 이 포함되어 있으며, 이들은 각각 프로그램과 데이터 저장을 위한 용도로 사용된다. 플래시 메모리는 프로그램을 저장하기 위해, EEPROM 은 데이터를 저장하기 위해 사용되는 이유는 무엇인지 알아보자. SD 카드, emmc, SSD 등은 모두 플래시 메모리를 바탕으로 만들어진 메모리 장치이다. 이들은 모두 동일한 형태의 메모리에서 출발하여 응용 분야에 맞게 발전된 형태로 볼 수 있다. 최근 다양한 플래시 메모리 기반의 메모리 장치들을 표준화하기 위한 새로운 포맷으로 UFS(Universal Flash Storage) 가 주목을 받고 있다. UFS 가 다른 메모리 장치와 다른 점은 무엇인지 알아보자. 연습문제 33

58 기호및숫자 _BV 155 _delay_us 267 _SFR_IO V 198, Wire 인터페이스 330 2배속모드 154 4비트모드 세그먼트표시장치 349 8비트모드 LC010A LC010.c LC010.h 칩 칩 449 A ACK(acknowledgement) 310 ACME 206 ADATE 204 ADC 197, 202 ADCH 202 ADCL 202 ADCSRA 204 ADCSRB 206 Add target 93 ADEN 204 ADIE 205 ADIF 205 ADLAR 203 ADMUX 203 ADPSn 205 ADSC 204 ADTSn 206 Analog-Digital Converter(ADC) 58, 197 analogread 209 analogreference 209 analogwrite 279, 436 AREF 198 ATmega16u2 333 ATmega ATmega328P-PU 36 ATOMIC_BLOCK 231 ATOMIC_FORCEON 232 ATOMIC_RESTORESTATE 232 attachinterrupt 236 AT 명령 475 AVR 4, 34 AVR Studio 78 B BCD(Binary Coded Decimal) 315 BIOS 25, 72 bit 136 bit_is_clear 187 bit_is_set 187 bitread 140, 357 bitset 136 BLE 472 Blink 찾아보기

59 Bluetooth spp tools pro 478 BODLEVELn 518 BOOTRST 514 BOOTSZn 514 BORF 501 BOTTOM 268 bps(bits per second) 148 C CF(Compact Flash) 28 CGRAM(Character Generator RAM) 388, 406 CHANGE 236 Chip Select 288 CKDIV8 515 CKOUT 515 CKSELn 515 cli 226 COM1An 253 COM2An 275 COM2Bn 275 CPHA 286 CPOL 286 createchar 406 CS 288 CS0n 246 CS2n 276 CS(Chip Select) 309 CTC 모드 254 C 스타일 38 DIP(Dual In-line Package) 53 DS DWEN 513 E EEAR 487 EEARH 487 EEARL 487 EECR 488 EEDR 488 EEMPE 489 EEPE 489 EEPRM.read 495 EEPRM.write 495 EEPROM 24, 27, 46, 288, 486 eeprom_read_byte 491 eeprom_update_byte 491 eeprom_write_byte 491 EEPROM 라이브러리 490, 495 EEPROM 상태레지스터 293 EESAVE 513 EICRA 234 EIMSK 235 ELF 96 emmc(embedded MMC) 28, 29 EPROM 27 equalsignorecase 180 Executable and Linking Format 96 EXTERNAL 209 D DateTime 클래스 328 DB9 인터페이스 335 DC(Direct Current) 모터 429, 430 DDR(Double Data Rate) 31 DDRAM(Diaplay Data RAM) 388 DDRx 114, 184 Device Programming 94 digitalread 120 digitalwrite 119 DIMM(Dual In-line Memory Module) 32 F FALLING 236 FDEV_SETUP_STREAM 178 FND(Flexible Numeric Display) 349 FTDI 339 G General Purpose Input/Output 117 GPIO 117 찾아보기 535

60 H HC HD HEX 18, 93, 96 HOLD 421 H 브릿지회로 432 I I2C 16, 307 I2C.c 320 I2C.h 319 I2C 주소 309 ICP1 279, 441 ICR1 279 ICR1H 279 ICR1L 279 ICSP(In Circuit Serial Programming) 19, 70 ICSP 커넥터 91 IDLE 421 INPUT 119 INPUT_PULLUP 119 INTERNAL 209 interrupts 235 INTn 232 ISC 235 ISM 대역 472 ISP 13, 19 ISP 방식 55, 69 ISP 장치 13 ISR 223, 227 L298N 431 LCD 드라이버 384 LED 매트릭스 368 LiquidCrystal.begin 402 LiquidCrystal.clear 403 LiquidCrystal.print 402 LiquidCrystal.setCursor 403 LiquidCrystal.write 402 LiquidCrystal 라이브러리 401 LM loop 118 loop_until_bit_is_clear 188 loop_until_bit_is_set 188 LOW 236 M Master In Slave Out 284 Master Out Slave In 284 MAX 268 MAX MCUSR 500 millis 355, 365 MISO 284 MMC(Multi Media Card) 28 MOSI 284 MsTimer2::set 257 MsTimer2::start 258 MsTimer2::stop 258 MsTimer2 라이브러리 256 MUXn 203 K Keypad.getKey 420 Keypad.getKeys 420 Keypad 라이브러리 419 KS N NACK 310 NAND 형플래시메모리 28 nointerrupts 236 NOR 형플래시메모리 28 L O 536 찾아보기

61 OC1A 440 OCnx 268 OCR0x 249 OCR1x 252 OCR1xH 252 OCR1xL 252 OCRnx 244, 245 OUTPUT 119 P P2N PAM 262 PAN 472 PCICR 239 PCIEn 240 PCINTn 239 PCMSKn 240 PDIP(Plastic Dual In-line Package) 36 PIN 477 pinmode 119 PINx 116, 185 PORTx 115, 185 PRESSED 421 printf 177 programmers.txt 70 PROM 26 pulsein 469 PWM(Pulse Width Modulation) 58, 262, 434, 438 R RAM 25 rand 216 random 218 randomseed 219 RealTerm 474 REFSn 203 RELEASED 421 RISING 236 ROM 25 RS , 335 RS232-UART 변환기 335 RSTDISBL 512 RTC(Real Time Clock) 311 RTClib.adjust 328 RTClib.now 328 RTClib.setup 328 RTClib 라이브러리 327 RX 150, 331 RXC0 155 RXD 336 RXEN0 158 S SCA(Serial Clock) 308 SCK(Serial Clock) 284 SDA(Serial Data) 308 SDR(Single Data Rate) 31 SD 카드 28 sei 226 Serial.available 481 Serial begin 164 serial in parallel out shift register 448 Serial Peripheral Interface 283 Serial print 165 Serial println 165 Serial read 164, 165 Serial.read 481 Serial write 165 Serial 클래스 163, 333 Servo.attach 445 Servo.read 445 Servo.write 445 setup 118 shiftout 456 SI 288 Sketch Project 98 Slave Select 284 SO 288 SO DIMM 32 SoftwareSerial 332, 482 SPCR 295 SPDR 291 SPI 283 찾아보기 537

62 SPI2X 296 SPI.begin 300 SPI.begin_spi 302 SPIEEP 라이브러리 302 SPIEN 513 SPIF 292 SPI.read 302 SPI.transfer 300 SPI.write 302 SPMCSR 489 SPMEN 489 SPP(Serial Port Profile) 473, 480 SPRn 296 SPSR 292 SQWE 315 SRAM 24, 45, 486 srand 216 SREG 226 SRF SS(Slave Select) 284, 309 SSD(Solid State Drive) 30 stdin 178 stdout 178 STK500 69, 93 strcasecmp 180 strcmp 173 SUTn 517 Synchronous DRAM 31 T TCCR0B 246, 468 TCCR1A 253 TCCR2A 274 TCCR2B 274 TCNT0 246, 468 TCNT1 251 TCNT1H 251 TCNT1L 251 TCNTn 244 Terminal Window 153 TEXT_LCD.h 397 TIMER0_COMPA_vect 248 TIMER0_OVF_vect 245 TimerOne 라이브러리 261 TIMSK0 247 Tiny RTC 모듈 313 Tn 277 TOP 268 TQFP(Thin Quad Flat Package) 36, 54 TTL(Transistor Transistor Logic) 180, 331 TWBR 316 TWCR 317 TWDR 318 TWEA 317 TWEN 317 TWI(Two Wire Interface) 330 TWINT 317 TWPSn 316 TWSn 316 TWSR 316 TWSTA 317 TWSTO 317 TX(transmit) 150, 331 TXC0 156 TXD 336 TXEN0 158 U U2X0 155 UART 15, 148 UART.c 170 UART.h 170 UBRR0 161 UBRR0H 161 UBRR0L 161 UCSR0A 155 UCSR0B 158 UCSR0C 158 UCSZ0n 159 UDRE0 155 UMSEL0n 159 UPM0n 159 USART 154 USBS 찾아보기

63 USB-UART 변환기 339 USB- 시리얼변환장치 13 V VDD 289 VEE 289 Visual Micro 97 Visual Micro 툴바 100 volatile 231 VSS 289 W WDRF 501 WDT 499 WDTCSR 501 wdt_disable 503 wdt_enable 503 WDTON 500, 513 wdt_reset 503 WGM 275 WGM1n 253 wire.begin 323 wire.begintransmission 323 wire.endtransmission 324 wire.read 325 wire.requestfrom 325 wire.write 324 Wire 라이브러리 323 X XTAL1 516 XTAL2 516 ㄱ 개발시스템 18 고속 PWM 모드 269 고스트키 (ghost key) 현상 411 고스트현상 411 고정자 430 공통양극방식 350, 360 공통음극방식 350, 360 공통핀 350 공통행양극방식 369 교차개발환경 18 교차컴파일러 18 국가별설정 87 기본입출력레지스터 49 기준전압 198 ㄴ 난수 216 내부풀업저항 414 네자리 7 세그먼트모듈 358 논리레벨변환기 332 ㄷ 다운로드 56 단일변환모드 204 데드밴드 (dead band) 439 데이터메모리 25, 49 데이터처리부분 114, 118 동기모드 154 동기화 14 동적 RAM(Dynamic RAM, DRAM) 30 듀티사이클 (duty cycle) 264 드라이버설치 65 디바운스 (de-bounce) 190 디바운스회로 193 디버깅하지않고시작 104 디지털입출력핀 125 ㄹ 라인드라이버 336 라즈베리파이 9 래치클록 449 레조네이터 516 레지스터 41, 51 찾아보기 539

64 로퓨즈 514 리셋모드 500 ㅁ 마스크 (mask) 135 마스크롬 26 마스킹 (masking) 현상 411 마스터 16 마이컴 7 마이크로컨트롤러 4, 7 마이크로컨트롤러보드 4 마이크로컴퓨터 7 마이크로프로세서 7 메인루프 113, 221 모터드라이버 431 목적시스템 18 무어의법칙 7 ㅂ 바운스현상 (bounce effect) 189 반이중 (half-duplex) 방식 16, 308 반전출력모드 269 범용레지스터 49 병렬통신 147 보율 (baud rate) 148 부트로더 48, 72, 511 부트로더영역 72 부호화 264 분주기 244 분주비 277 분할각도 (step angle) 429 브라운아웃 501 브러시리스 (brushless) 모터 447 블루투스 472 비교일치인터럽트 244, 248, 268 비동기모드 154 비반전출력모드 269 비주얼스튜디오 78 비트검사 139 비트논리연산자 133 비트반전 138 비트세트 134 비트연산자 130, 132 비트읽기 139 비트클리어 136 ㅅ 샘플링 263 서보 (Servo) 라이브러리 444 서보 (servo) 모터 430, 437 세라믹발진 516 센서 459 소프트웨어인터럽트 223 솔루션 109 솔루션빌드 92, 101 순차접근방식 25 슈미트트리거 (Schmitt trigger) 195 스테핑 (stepping) 모터 429 슬레이브 16 시리얼모니터 106 시리얼방식 55, 66 시리얼통신 147 시리얼포트 149 시작비트 (start bit) 149 싱글보드컴퓨터 22 싱글칩컴퓨터 22 ㅇ 아날로그 -디지털변환기 197, 459 아날로그입력핀 125 아두이노듀에 (Arduino Due) 281 아두이노스타일 38 아두이노우노 12, 37, 57 아두이노프로그램 59 아트멜스튜디오 60, 78 압전현상 465 양극방식 369 양자화 263 어플리케이션프로그램영역 72 에코핀 466 연속회전서보모터 437 열단위스캔방식 찾아보기

65 오른쪽비트이동연산 133 오버플로인터럽트 244, 245 오실레이터 516 온도센서 460 외부에디터 77 외부인터럽트 232 외부클록 277 왼쪽비트이동연산 133 워치독리셋 500 워치독타이머 (watchdog timer) 499 워치독타이머리셋 499 원형큐 285 위상교정 PWM 모드 270 위상및주파수교정 PWM 모드 272 음극방식 370 의사난수 216 이동클록 449 이벤트루프 113, 221 이중경사 270 이클립스 88 인공호흡 520 인터럽트 222 인터럽트모드 500 인터럽트벡터 225 인터럽트벡터테이블 224, 225 인터럽트우선순위 230 인터럽트처리루틴 223 임베디드 5, 9 임의접근방식 25 입출력레지스터 42, 49 입출력주소 50 ㅈ 잔상효과 358, 370 저항사다리 428 전송시프트레지스터 156 전압분배 332 전역인터럽트활성화비트 225 전이중 (full-duplex) 방식 15, 149, 283 전처리부분 114, 118 정상모드 (normal mode) 254 정적 RAM(Static RAM, SRAM) 30 정지비트 (stop bit) 149 정현파출력 315 제어핀 350 중첩된인터럽트 230 직렬입력병렬출력 448 직렬통신 147 ㅊ 채널 198 채널전환 207 채터링 (chattering) 189 초기화부분 114, 118 초음파거리센서 465 축차비교형 220 ㅋ 크리스털 516 클록극성 286 클록위상 286 키매트릭스 409 키패드 408 ㅌ 타이머 / 카운터 243 터미널에뮬레이터 345 터미널윈도우 153 터미널프로그램 345 텍스트 LCD 384 텍스트 LCD 제어명령어 386 통합개발환경 63 툴바 68 트리거핀 466 ㅍ 파워온리셋 501 파형생성기 252, 268 파형생성모드 254 펄스진폭변조 262 찾아보기 541

66 펄스폭변조 262 페어링 (pairing) 477 폰노이만구조 24 폴링 221 표준서보모터 437 풀다운저항 182 풀업저항 182 퓨즈 73, 95, 511 프로그램메모리 25, 45 프로젝트 89 프로토콜 14, 148 프리러닝모드 204 플래시메모리 24, 27, 45, 486 플로팅 (floating) 182 핀변화인터럽트 225, 238 ㅎ 하드웨어시리얼 332 하드웨어인터럽트 223 하버드구조 24 하이임피던스상태 415 하이퓨즈 512 행단위스캔방식 370 확장관리자 86, 97 확장입출력레지스터 49 확장퓨즈 518 회전자 찾아보기

67 newtc co kr M M 30 SE PIN1P F M 20 SE PIN1P + SE MIN1 F F 20 SE MIN1 1 EIC DM USTYLE AC 1 SE PW12V DC12V 1A SMPS USB ISP 1 AD USBISP V03 6 USB to Serial 1 AD USB2SERIAL V1 0 RS 232 to UART 1 AD USBSERIAL V02 ATmega328P PU 1 16MHz Crystal 1 22pF 2 0 1uF 1 1 BB 801T LED 10 3 DIP Type K 10 2K Watt DIP 10K 10 LED 1 AM TL8 543

C 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화

C 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화 C 2015. 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 406 2009 000087 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr /

More information

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

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Microprocessor) 1. 마이크로프로세서란? 1 작은실리콘칩위에트랜지스터를수천만개집적한소자 2 마이크로 [μ] 는매우작은크기, 프로세서는처리기혹은 CPU를뜻하므로

More information

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

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

슬라이드 1

슬라이드 1 강력한성능! 인터넷 / 업무용데스크탑 PC NX-H Series Desktop PC NX1- H700/H800/H900 NX2- H700/H800/H900 NX1-H Series 사양 Series 제품설명 ( 모델명 ) NX1-H Series, 슬림타입 기본형모델중보급형모델고급형모델 NX1-H800:112SN NX1-H800:324SN NX1-H800:534MS

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR IMC-V0.1 예제소스파일 1. UART 소스코드 (page 1-3) 2. Encoder 소스코드 (page 4-7) 3. ADC 소스코드 (page 8-10) UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ

More information

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

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

정보보안 개론과 실습:네트워크

정보보안 개론과 실습:네트워크 ` 마이크로프로세서설계및실습 2 주차강의자료 2/31 Contents 학습목표 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ATmega128 내부구조에서특수레지스터, 범용레지스터의역할을이해할수있다. ATmega128 내부에포함된명령어인출과실행절차를알아보고, 명령어유형을통해동작을이해할수있다. 내용

More information

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

Microsoft Word - MAI-ISP-STK500_매뉴얼_Ver25.docx MAI-ISP-STK500 사용자매뉴얼 Manual Ver. 2.5 엠에이아이 (M.A.I) www.maicom.co.kr http://cafe.naver.com/at128mai [ 모델이름 ]: MAI-ISP-STK5000 [ 용도 ]: AVR MCU의내부 Flash Memory 및 EEPROM 에 HEX 파일을 Write W / Readd 할수있는기능을하는프로그래머로써,

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128

More information

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

[ 마이크로프로세서 1] 1 주차 2 차시. 마이크로프로세서와마이크로컨트롤러발달과정 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습내용 1 : 마이크로프로세서발달과정 1. 마이크로프로세서종류 1 인텔 ( intel) 80 계열 2 모토롤라 (motorola) 68 계열 2. 인텔 80 계열 1 최초 1971

More information

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - es-arduino-lecture-03 임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습

More information

Microsoft Word - EastSocket매뉴얼_ _.doc

Microsoft Word - EastSocket매뉴얼_ _.doc USB 전원을이용한 SMD 패키지라이팅지원보드 저가의라이팅장비를사용하여 SMD 패키지마이컴을라이팅할수있도록지원하는장비입니다. 각종제품개발시마이컴을 SMD로사용하는추세로이를양산에적용시고가의장비를사용해야했습니다. 아니면보드에다운로더를사용하여마이컴라이팅을했습니다. 그에따른생산속도의저하및고가의장비구입에따른경제적부담이컸습니다. 이를대처하기위해저가및기존개발에사용한장비를그대로사용하여라이팅을할수있는지원장비를개발했습니다.

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

2주차: 입출력 제어 복습

2주차: 입출력 제어 복습 마이크로프로세서 응용및실습 ` 13-14 주차 : 직렬통신 (2) 한철수 전자공학과 2/35 직렬통신과병렬통신 직렬통신 한가닥의선으로송수신할데이터를차례대로전송하는방식 장점 : 통신선로가적기때문에경제적임 단점 : 전송속도가느림. 송수신약속이복잡해짐 병렬통신 여러가닥의선으로동시에여러개의데이터를전송하는방식 장점 : 전송속도가빠름 단점 : 직렬통신보다비쌈 3/35

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지 PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft Word - PEB08_USER_GUIDE.doc 0. PEB08 이란? PEB08(PIC EVALUATION BOARD 8bits) 은 Microchip 8bit Device 개발을쉽고편리하게할수있는보드입니다. 1. 다양한 8bit Device 지원 기존대부분의 8bit 보드의경우일부 Pin-Count만지원을하였지만, PEB08은 PIC10, PIC12, PIC16, PIC18의 DIP Type Package의모든

More information

ez-md+_manual01

ez-md+_manual01 ez-md+ HDMI/SDI Cross Converter with Audio Mux/Demux Operation manual REVISION NUMBER: 1.0.0 DISTRIBUTION DATE: NOVEMBER. 2018 저작권 알림 Copyright 2006~2018 LUMANTEK Co., Ltd. All Rights Reserved 루먼텍 사에서

More information

ez-shv manual

ez-shv manual ez-shv+ SDI to HDMI Converter with Display and Scaler Operation manual REVISION NUMBER: 1.0.0 DISTRIBUTION DATE: NOVEMBER. 2018 저작권 알림 Copyright 2006~2018 LUMANTEK Co., Ltd. All Rights Reserved 루먼텍 사에서

More information

정보보안 개론과 실습:네트워크

정보보안 개론과 실습:네트워크 ` 마이크로프로세서설계및실습 12-13 주차강의자료 학습목표 A/D 변환기의제어방법을이해한다 능숙하게 A/D 변환기를제어할수있도록반복실습한다 2/28 아날로그 - 디지털변환회로 아날로그 - 디지털변환회로 (A/D 변환회로 ) 는, 아날로그전기신호를디지털전기신호로변환하는전자회로이다 A/D 컨버터 (ADC: Analog-to-digital converter) 라고도불린다

More information

마이크로프로세서 개요

마이크로프로세서 개요 1 주 개요 메카트로닉스공학부 조철우 8051 Pin Layout 8051 3 Atmel 89C2051 4 강의의개요 컴퓨터및의기원과동작원리를학습 마이크로컨트롤러를배우기위한기초원리 마이크로컨트롤러를활용하기위한도구사용법 마이크로컨트롤러를활용하기위한기초시스템설계및프로그래밍 History of Computer 컴퓨터의역사. 최초의컴퓨터 - 1946년 ENIAC,

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729> 1주차 ATmega128의구조와메모리 Next-Generation Networks Lab. 1. ATmega128의특징 고성능, 저전력의 8 비트마이크로컨트롤러 진보된 RISC 구조 대부분단일클럭에서실행되는강력한 133개의명령어구조 16MHz에서거의 16MIPS로동작 32개의 8 bit 범용작업레지스터와추가된주변장치제어레지스터 2 사이클내에서수행되는강력한곱셈기내장

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기 Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information

AVR ATmega128 소개 AVR ATmega128 IT Eng 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기

AVR ATmega128 소개 AVR ATmega128 IT Eng 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기 AVR ATmega128 소개 AVR ATmega128 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü 에서메모리공간, I/O 공간의프로그램과데이터를처리하기위한특수레지스터, 범용레지스터의역할을이해할수있다. ü ATmega128 내부에포함된명령어인출과실행절차를알아보고, 명령어유형을통해동작을이해할수있다.

More information

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D> VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE

More information

CAN-fly Quick Manual

CAN-fly Quick Manual adc-171 Manual Ver.1.0 2011.07.01 www.adc.co.kr 2 contents Contents 1. adc-171(rn-171 Pack) 개요 2. RN-171 Feature 3. adc-171 Connector 4. adc-171 Dimension 5. Schematic 6. Bill Of Materials 7. References

More information

Motor Control Solution

Motor Control Solution Motor Control Solution 마이크로칩에서는 Stepper, Brushed-DC, AC Induction, Switched Reluctance Brushless-DC 등모터종류별특성및동작방식에맞는 MCU가준비되어있어, User가 Motor를이용한 Application을개발하려할때에가장적절한 Solution을제시해줄수있다. 이중 FFT나 PID연산등정밀한모터제어를실행하기위해꼭해주어야하는빠른

More information

그룹웨어와 XXXXX 제목 예제

그룹웨어와 XXXXX 제목 예제 데이터통신 부호화 (encoding) 부호화 (Encoding) 의개념 정보 Encoder 신호 1 Digital - to - Digital 2 Analog - to - Digital 3 Digital - to - Analog 4 Analog - to - Analog 2 1 Digital-to-Digital Encoding Digital 정보를 Digital

More information

뉴티씨 (NEWTC) ATmega8 교육용모듈 (Model : AM-8PL ) 메뉴얼 ( 주 ) 뉴티씨 ( NEWTC ) 1. ATmega8 모듈 (AM-8PL) 소개 ATmega8 칩을

뉴티씨 (NEWTC)   ATmega8 교육용모듈 (Model : AM-8PL ) 메뉴얼 ( 주 ) 뉴티씨 ( NEWTC )   1. ATmega8 모듈 (AM-8PL) 소개 ATmega8 칩을 ATmega8 교육용모듈 (Model : AM-8PL ) 메뉴얼 ( 주 ) 뉴티씨 ( NEWTC ) 1. ATmega8 모듈 (AM-8PL) 소개 ATmega8 칩을이용한초소형모듈 AM-8PL에내장된 UART 포트로디버깅가능 ( 전원핀포함된뉴티씨 4핀 UART 배열 ) 8MHz 초소형크리스탈클럭채용으로안정성확보및 3.3V/5V 전원에모두동작함. 전원전압 (3.3V/5V)

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 7주차 AVR의 A/D 변환기제어레지스터및관련실습 Next-Generation Networks Lab. 3. 관련레지스터 표 9-4 레지스터 ADMUX ADCSRA ADCH ADCL 설명 ADC Multiplexer Selection Register ADC 의입력채널선택및기준전압선택외 ADC Control and Status Register A ADC 의동작을설정하거나동작상태를표시함

More information

JARDUINO-UNO-BT 커넥터 / 스위치기능 종류 USB 커넥터리셋스위치 DC 전원잭업로드선택스위치 ISP 모드선택점퍼블루투스시리얼모듈전원 / 디지털포트 / 아날로그포트커넥터및 ISP 커넥터 기능 +5V 전원공급, 유선업로드기능누른상태에서전원을공급하면부트로더프로그

JARDUINO-UNO-BT 커넥터 / 스위치기능 종류 USB 커넥터리셋스위치 DC 전원잭업로드선택스위치 ISP 모드선택점퍼블루투스시리얼모듈전원 / 디지털포트 / 아날로그포트커넥터및 ISP 커넥터 기능 +5V 전원공급, 유선업로드기능누른상태에서전원을공급하면부트로더프로그 JARDUINO-UNO-BT : 유무선아두이노 UNO 호환모듈 이제부터는아두이노도무선으로쓰자!!! 무선업로드기능이내장된아두이노 UNO 호환모듈드디어출시!!! JARDUINO-UNO-BT 소개 JARDUINO-UNO-BT는제이씨넷이출시한아두이노 UNO(Arduino UNO R3) 호환모듈로, 유선업로드는물론블루투스시리얼모듈을포함하고있어무선업로드도가능한아두이노모듈입니다.

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-THL100은 UART 인터페이스를통하여온도, 습도, 조도데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에쉽게적용할수있도록소형으로제작되었습니다. PC에서 OSTSen-THL100의온도,

More information

Microsoft Word - Ahram_ISP_V15_Manual_V20.doc

Microsoft Word - Ahram_ISP_V15_Manual_V20.doc Ahram ISP V1.5 사용자매뉴얼 Manual Ver 2.0 Ahramsoft CO.LTD www.ahramsoft.com Contents 1. 모델이름 ------------------------------------------------------- 3 2. 용 도 -------------------------------------------------------

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

고객 카드 1588-7278

고객 카드 1588-7278 고객 카드 1588-7278 i 안전을 위한 경고사항 안전을 위한 주의사항 i 헤드유닛 DISP RADIO MEDIA PHONE SEEK TRACK 헤드유닛 FOLDER MUTE SCAN SETUP 스티어링 휠 리모트 컨트롤 + - MODE 기본모드 화면 Radio 모드 변경 RADIO 라디오 주파수 검색하기 SEEK TRACK 라디오 모드 사용하기 저장방송

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

고급 프로그래밍 설계

고급 프로그래밍 설계 UNIT 13 라즈베리파이블루투스 광운대학교로봇 SW 교육원 최상훈 Bluetooth Module 2 Bluetooth Slave UART Board UART 인터페이스용블루투스모듈 slave/device mode 라즈베리파이 GPIO 3 < 라즈베리파이 B+ 의 P1 헤더핀 GPIO 배치도 > wiringpi 라이브러리 4 라즈베리파이 GPIO 라이브러리

More information

AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부

AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부 AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 (slee@wku.ac.kr) 소속 : 원광대학교전기 정보통신공학부 학습목표 2/39 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기위한특수레지스터,

More information

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-PIR100은 UART 인터페이스를통하여인체모션감지 (PIR) 데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에적용할수있도록소형으로제작되었습니다. ( PIR: Pyroelectric

More information

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고 CHAPTER 7 인터럽트 가. 레지스터구조이해하기 나. 엔코더제어하기 인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고급한일을처리한후에본래의일을다시수행하는것을말한다.

More information

ARDUINO Open Physical Computing Platform 오탈자, 문의및보완이필요한내용은 으로알려주세요.

ARDUINO Open Physical Computing Platform 오탈자, 문의및보완이필요한내용은 으로알려주세요. ARDUINO Open Physical Computing Platform 오탈자, 문의및보완이필요한내용은 으로알려주세요. Chapter 20. I2C 와 SPI 통신을이용한아두이노연결 SPI(Serial Peripheral Interface) 는 I2C(Inter-Integrated Circuit) 와더불어마이크로컨트롤러와주변장치사이에디지털정보를간편하게전송할수있는방법을제공하기위해만들어진통신프로토콜이다.

More information

슬라이드 1

슬라이드 1 임베디드시스템개론 : Arduino 활용 Lecture #10: 시리얼통신 (Serial Comm.) 2015. 5. 26 by 김영주 강의목차 시러얼통신개요 I2C 통신개요 I2C 통신실험 2 3 1. Serial Communication 아두이노통신 아두이노통신개요 아두이노 MCU 와 on-board 장치또는외부연결장치간의통신 통신프로토콜에따른데이터송수신을위해개별적인통신장치

More information

CHAPTER 2 마이크로컨트롤러구조이해하기 가. ATmega128 기능 나. CRX10 구조

CHAPTER 2 마이크로컨트롤러구조이해하기 가. ATmega128 기능 나. CRX10 구조 CHAPTER 2 마이크로컨트롤러구조이해하기 가. ATmega128 기능 나. CRX10 구조 가. ATmega128 기능 1) 기능 고성능저전력 AVR 8비트마이크로컨트롤러 고급 RISC 구조 - 133개의강력한명령어 - 최대단일주기클록수행 - 32 8 범용레지스터 + 주변기기제어레지스터 - 완전한정적동작 - 16 MHz에서 16 MIPS(Million Instruction

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

Microsoft PowerPoint - RPino-GOGO_datasheet.pptx

Microsoft PowerPoint - RPino-GOGO_datasheet.pptx RPino GOGO 사용자설명서 v1.0 Copyright c NulSom Inc. All Rights Reserved. 제품특징및사양 라즈베리파이 (RaspiberryPi) 에장착하여 PC 없이사용하는확장보드 Atmel사의 ATmega328P / 아두이노 (Arduino) 부트로더내장 라즈베리파이를통한아두이노스케치업로드가능 ( 스케치프로그램사용가능 ) 전용스케치로더

More information

노트북 IT / 모바일 데스크탑 34 올인원PC 35 PC 소프트웨어 포터블SSD / SSD / 메모리카드 36 태블릿 37 휴대폰 39 PC 솔루션 IT / 모바일 IT / 모바일 노트북 29 삼성전자는 Windows 를 권장합니다. 삼성전자만의 편리하고 다양한 소프트웨어를 통해 초보자도 보다 쉽고 빠르게 이용 가능합니다. Easy Settings 삼성 패스트

More information

(SW3704) Gingerbread Source Build & Working Guide

(SW3704) Gingerbread Source Build & Working Guide (Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

Microsoft PowerPoint - avr_lecture1.ppt

Microsoft PowerPoint - avr_lecture1.ppt 임베디드마이크로프로세서 프로그래밍실전 제작 : 네로테크 강의 : 김종형 AVR 개요및개발환경구축 1. AVR 개요및특징 2. AVR 개발환경구축 -2- 1-1 AVR 의개요 AVR [ Alf(Bogen) Vergard(Wollen) Risc ] 이란? ATMEL 사에서제작된 RISC(Reduced Instruction Set Computer) 구조의저전력 CMOS

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729> 2주차 ATmega128의내부구조및퓨즈비트설정 Next-Generation Networks Lab. 4. ATmega128의클럭시스템과배분 시스템클럭 마이크로컨트롤러동작의기준이되는클럭의주파수 AVR은시스템클럭을내부모듈별로독립적으로배분하여제어 슬립 (Sleep) 모드를활용하여내부모듈별로클럭차단이가능하여전력소모관리 퓨즈비트를통해다양한클럭소스선택가능 클럭배분 (

More information

Microsoft Word - logic2005.doc

Microsoft Word - logic2005.doc 제 8 장 Counters 실험의목표 - Catalog counter 의동작원리에대하여익힌다. - 임의의 counter를통하여 FSM 구현방법을익힌다. - 7-segment display 의동작원리를이해한다. 실험도움자료 1. 7-segment display 7-segment는디지털회로에서숫자를표시하기위하여가장많이사용하는소자이다. 이름에서알수있듯이 7개의 LED(

More information

구성품 - UMD 2808 모듈 - JTAG 커넥터 - 젂원 케이블 주요 특징 모듈의 부품화 : 고신뢰성의 DSP 모듈을 최적화된 시스템에 적용 용이 TMS320F2808 ZGMS - 100MHz 탑재 : 확장된 온도규격 (-40 도 ~ 125 도) 적용 Ultralo

구성품 - UMD 2808 모듈 - JTAG 커넥터 - 젂원 케이블 주요 특징 모듈의 부품화 : 고신뢰성의 DSP 모듈을 최적화된 시스템에 적용 용이 TMS320F2808 ZGMS - 100MHz 탑재 : 확장된 온도규격 (-40 도 ~ 125 도) 적용 Ultralo TMS320F2808 UMD 모듈 Rev 1.0 (주) 싱크웍스 Korea Tel. 031-781-2810 Fax. 031-706-2834 E-mail. dsptools@syncworks.co.kr [1] page 구성품 - UMD 2808 모듈 - JTAG 커넥터 - 젂원 케이블 주요 특징 모듈의 부품화 : 고신뢰성의 DSP 모듈을 최적화된 시스템에 적용

More information

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver 1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-MOS100은 UART 인터페이스를통하여토양수분데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에적용할수있도록소형으로제작되었습니다. PC에서는 OSTSen-MOS100에서제공하는토양수분데이터를

More information

ePapyrus PDF Document

ePapyrus PDF Document S104PP (10.4 인치일체형페널 P) S104PP chassis, L Specifications ooling System 260 190 46 (W ) 1024 x 768 (4:3) L 400 cd 4선압력방식 1.5Kg ase an(50 50) onector X 2 VS 고정방식, 매립브라켓고정방식 245 x 184 (1T~5T 가능 ) 12V/5 dapter

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

개요

개요 Application Note (003) 시리얼인터페이스 (RS232/RS422/RS485) Version 1.0 솔내시스템주식회사 1. 개요 는 RS232, RS422, RS485등 3개의시리얼인터페이스를지원합니다. 사용자는 의설정용유틸리티인 ezconfig를이용해서 3개의인터페이스중에서하나를선택하여설정할수있습니다. 1.1. RS232 Ground를기준으로한전압을이용해서통신하는형태입니다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Kut-128_comm_board Kit 설명서 KUT-128_Com 실험키트 KUT-128_Com 실험키트의기능 (1) 초음파센서 4CH 7- Segment 가속도센서 자이로센서 RS-232 Wi-Fi Bluetooth Tex-LCD ATmega128 8EA LED ISP Connector 3Color Dotmatrix 1Color Dotmatrix 4EA

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog 뉴티씨 (NEWTC) FPGA 개발 키트 (FB-CY4E-DEV) 매뉴얼 (주) 뉴티씨 ( NEWTC ) 1. FB-CY4E-DEV (FPGA 개발 키트) 소개 ALTERA 사의 FPGA(EP4CE6E22C8N)를 이용한 개발보드 입니다. USB 블래스터(FM-USBBLASTER) 를 이용하여 프로그램을 다운로드 가능 LCD, FND(7-Segment), 스위치

More information

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

1. 제품소개및특징 1.1 제품소개 < 그림 1.1> AVRISP MK2 USB 개발장비 AVR ISP(In System Programmer)MK2 USB 란 Atmel 사의 AVR 마이크로컨트롤러의내부플래쉬와 EEPROM 에프로그램메모리및데이터를써 (Write, Re 매뉴얼 (P/N: LK-AVRISP mkii USB) 이경남 L K 임베디드 2017 LK EMBEDDED User Guide Version 0.3 페이지 1 1. 제품소개및특징 1.1 제품소개 < 그림 1.1> AVRISP MK2 USB 개발장비 AVR ISP(In System Programmer)MK2 USB 란 Atmel 사의 AVR 마이크로컨트롤러의내부플래쉬와

More information

untitled

untitled Content Ⅰ. 기본방향 1. 목 적 3 2. 적용범위 3 Ⅱ. 사회복지관 운영 1. 사회복지관의 정의 7 2. 사회복지관의 목표 7 3. 사회복지관의 연혁 7 4. 사회복지관 운영의 기본원칙 8 Ⅲ. 사회복지관 사업 1. 가족복지사업 15 2. 지역사회보호사업 16 3. 지역사회조직사업 18 4. 교육 문화사업 19 5. 자활사업 20 6. 재가복지봉사서비스

More information

- i - - ii - - iii - - iv - - v - - vi - - vii - - viii - - ix - - x - - xi - - xii - - xiii - - xiv - - xv - - xvi - - xvii - - xviii - - xix - - xx - - xxi - - xxii - - xxiii - - xxiv - - 3 - - 4 -

More information

<4D F736F F F696E74202D20325FBEC6B5CEC0CCB3EB20B1E2C3CABDC3C7E82E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20325FBEC6B5CEC0CCB3EB20B1E2C3CABDC3C7E82E BC8A3C8AF20B8F0B5E55D> 아두이노사용해보기 http://arduino.cc/ 에서먼저프로그램을다운로드하여설치합니다. 시작이반이다 라는옛말이있죠? MCU 사용에있어서도개발환경구축하고, LED 하나깜박여보면절반은끝난거나마찬가지죠. 뭐 ~ 일단 http://arduino.cc/ 에방문하여 Download 를누르고해당 OS ( 보통 Windows를사용하시죠?) 용을압축파일을다운로드 ( 용량이

More information

Microsoft PowerPoint - e2.ppt [호환 모드]

Microsoft PowerPoint - e2.ppt [호환 모드] 임베디드시스템하드웨어구조 2. 임베디드시스템하드웨어 / 프로세서 SRAM/ROM CPU timer interrupt UART GPIO DMA USB I/F LAN ROM Flash SRAM 2 - 마이크로프로세서를사용한시스템 - 마이크로콘트롤러를사용한시스템 microprocessor timer interrupt DMA CPU micro-, SoC timer

More information

ADP-2480

ADP-2480 Mitsubishi PLC 접속 GP 는 Mitsubishi FX Series 와통신이가능합니다. 시스템구성 6 7 8 GP-80 RS- Cable RS-C Cable FXN--BD FXN--BD 6 FX Series(FXS,FXN,FXN,FXNC, FXU) 7 FXS, FXN 8 FXN FX Series 는기본적으로 RS- 통신을하며, RS-/ converter

More information

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

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration

More information

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

<BBEABEF7B5BFC7E22DA5B12E687770>

<BBEABEF7B5BFC7E22DA5B12E687770> 2 40) 1. 172 2. 174 2.1 174 2.2 175 2.3 D 178 3. 181 3.1 181 3.2 182 3.3 182 184 1.., D. DPC (main memory). D, CPU S, ROM,.,.. D *, (02) 570 4192, jerrypak@kisdi.re.kr 172 . D.. (Digital Signal Processor),

More information

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P Duplicator 는기본적으로원본하드디스크를빠르게복사본하드디스크에복사하는기능을하는것입니다.. 복사본 하드디스크가원본하드디스크와똑같게하는것을목적으로하는것이어서저용량에서고용량으로복사시몇 가지문제점이발생할수있습니다. 하드디스크는사용하려면, 디스크초기화를한후에포맷을해야사용가능합니다. Windows PC는 MBR과 GPT 2 개중에 1개로초기화합니다. -Windows

More information

User Guide

User Guide 하드웨어 참조 설명서 HP RP2 소매 시스템 Copyright 2014 Hewlett-Packard Development Company, L.P. Microsoft 와 Windows 는 Microsoft 그룹의 미 국 등록 상표입니다. 본 설명서의 내용은 사전 통지 없이 변경될 수 있습니다. HP 제품 및 서비스에 대한 유일한 보증은 제품 및 서비스와 함께

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

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

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

Microsoft PowerPoint - AD-USBISP_V03_사용법.pptx

Microsoft PowerPoint - AD-USBISP_V03_사용법.pptx AD-USBISP V03 사용법 뉴티씨 (NEWTC) 대표이사 류대우 AD-USBISP V03 http://www.newtc.co.kr 에가면구할수있다. AVR 의 ISP(In System Programming) AVR 플래시메모리에사용자가프로그램을만들어서다운로드하고, 테스트할수있다.( 플래시읽기 / 쓰기모두지원 ) 모든 AVR 시리즈에사용가능함 (ATMEGA2561,

More information

RealDSP UT 프로그램 메뉴얼

RealDSP UT 프로그램 메뉴얼 Motorola Programmer ( 모델명 : MDProg16) 사용설명서 UUU 리얼시스 (RealSYS) Web: www.realsys.co.kr Tel: 031-420-4326 Fax: 031-420-4329-1 - 1. Motorola Programmer 프로그램특징 A. JTAG & OnCE 기능을이용한 Motorola 의내부플래시메모리 Writing

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

H3250_Wi-Fi_E.book

H3250_Wi-Fi_E.book 무선 LAN 기능으로 할 수 있는 것 2 무선 LAN 기능으로 할 수 있는 것 z q l D w 3 Wi-Fi 기능 플로우차트 z q l D 4 Wi-Fi 기능 플로우차트 w 5 본 사용 설명서의 기호 설명 6 각 장별 목차 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 목차 1 2 3 4 8 목차 5 6 7 8 9 9 목차 10 11 12

More information

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터 운영체제실습 Raspbian 설치 2017. 3 표월성 wspyo74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 설치 1. 라즈비안 (Raspbian 설치 ) 2. 설치후, 설정 설정사항 Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로

More information

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

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

ePapyrus PDF Document

ePapyrus PDF Document S104PP (10.4 인치일체형페널 P) S104PP chassis, L Specifications 260 190 46 (W ) 1024 x 768 (4:3) 400 cd 4선압력방식 1.5Kg 245 x 184 (1T~5T 가능 ) Intel eleron J1900 Quard ore 2z Intel VL887 O, O 250 ~ 1T, 40 ~ SS 옵션가능

More information

PowerPoint Presentation

PowerPoint Presentation 오에스아이소프트코리아세미나세미나 2012 Copyright Copyright 2012 OSIsoft, 2012 OSIsoft, LLC. LLC. PI Coresight and Mobility Presented by Daniel Kim REGIONAL 세미나 SEMINAR 세미나 2012 2012 2 Copyright Copyright 2012 OSIsoft,

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

NX1000_Ver1.1

NX1000_Ver1.1 See the world in perfect detail 1 2 3 4 J J KL t P A S M i g s v B 5 6 t P A S M i E PASM Z g s v 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Chapter 1 25 12 11 10 9 1 2 3 4 5 6 7 8 1 t P A S M i g

More information

JMOD : ATmega128 기본모듈 사용자설명서 제이씨넷

JMOD : ATmega128 기본모듈 사용자설명서 제이씨넷 JMOD-128-1 : ATmega128 기본모듈 사용자설명서 제이씨넷 www.jcnet.co.kr 1. JMOD-128-1 개요 1.1 JMOD-128-1 소개 은 ATmega128 MCU를이용하여, 다양한기능을구현하거나시험해볼수있도록모듈형태로개발된마이크로콘트롤러모듈입니다. 개발자의편의를위하여소형모듈에서는국내최초로프로그램 (ISP)

More information

<4D F736F F F696E74202D D FB8B6C0CCC5A9B7CEC7C1B7CEBCBCBCADBFCD20B8B6C0CCC5A9B7CEC4C1C6AEB7D1B7AF2DB9E8C6F7BFE

<4D F736F F F696E74202D D FB8B6C0CCC5A9B7CEC7C1B7CEBCBCBCADBFCD20B8B6C0CCC5A9B7CEC4C1C6AEB7D1B7AF2DB9E8C6F7BFE 한밭대학교정보통신공학과 김진수 마이크로프로세서와마이크로컨트롤러 C 언어로배우는 8051 마이크로프로세서 학습이수체계도 실시간응용플랫폼응용통신인프라가전기기유비쿼터스컴퓨팅 자동제어 의료 스마트폰 PDA 테블릿 PC 게이트웨이 라우터 스위치 액세스포인트 디지털카메라 디지털 TV 셋탑박스 PVR/DVR 액티브배지 센서 단말기 RF 통신모듈 임베디드시스템 디지털시스템설계

More information

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp l Y ( X g, Y g ) r v L v v R L θ X ( X c, Yc) W (a) (b) DC 12V 9A Battery 전원부 DC-DC Converter +12V, -12V DC-DC Converter 5V DC-AC Inverter AC 220V DC-DC Converter 3.3V Motor Driver 80196kc,PWM Main

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 BOOTLOADER Jo, Heeseung 부트로더컴파일 부트로더소스복사및압축해제 부트로더소스는웹페이지에서다운로드 /working 디렉터리로이동한후, wget으로다운로드 이후작업은모두 /working 디렉터리에서진행 root@ubuntu:# cp /media/sm5-linux-111031/source/platform/uboot-s4210.tar.bz2 /working

More information

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

Microsoft Word - codevision사용법_pdf버전.docx CodevisionAVR 설치와 기본사용법 민경학 ( hak@anycalluser.net) 인하대학교 IT 공과대학전자공학과멀티미디어연구실 ( 하이테크센터 916 호 ) 2008.9.7.001 들어가며 AVR 에서쓸수있는컴파일러종류에는 CodeVisionAVR, AVR Edit, IAR, AVRStudio 등이있습니다. CodeVisionAVR 과 IAR 은상용이고

More information