일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- BAM
- SSM
- Google App Engine
- hopfield network
- 패턴 인식
- 구글 앱 엔진
- Neural Network
- 고려대학교
- 나르왈프레오
- 빅데이터
- 패턴인식
- 멤버십
- 인공지능
- 갤럭시탭S8울트라
- 동아리
- 하이퍼바이저
- 물걸레자동세척로봇청소기
- 신경망
- 삼성소프트웨어멤버십
- 삼성
- Bidirectional Associative Memory
- 증강현실
- Python
- Friendship
- 신경회로망
- 가상화
- NarwalFreo
- 삼성전자 소프트웨어멤버십 SSM
- 파이썬
- 물걸레로봇청소기추천
- Today
- Total
정보공간_1
[2기 강남 이광수] Micom Programming 의 세계 (1부) 본문
[2기 강남 이광수] Micom Programming 의 세계 (1부)
알 수 없는 사용자 2012. 8. 19. 21:50[서론]
Micom 은 ( Micro-computer ) 의 약자로서 지금은 One-chip Micro-processor를 탑재한 마이크로 컨트롤러(Micro-processor based Controller)를 의미한다. 이는 과거 8bit Micom 부터 시작해서 현재는 64bit Arm 계열에 이르기까지 많은 발전을 이루어 왔으며, 현재도 계속 발전하고 있다. 하지만 Micom programming 분야는 개발자들의 접근성(진입장벽)이 높은 분야로 알려져 있는데, 그 이유는 전자공학에 대한 기초지식이 있어야만 접근이 가능하기 때문이다. 지금부터 총 4부에 걸쳐서 Micom programming 분야에 대해서 알아보고 실습해보는 시간을 가지도록 해보자.
[AVR 소개]
AVR은 ATMEL 사에서 생산되고 있는 AVR RISC Microcontroller로서 AT90S, Tiny, Mega 시리즈로 나눌 수 있다. AT90S 계열은 적당한 메모리 용량과 더불어 I/O 기능을 가지고 있는것이 특징이며 단순한 Task 를 처리하기에 적합하다. Tiny 계열은 Pin수가 적고 메모리 용량도 작아서 소형 제어기에 적합하며, Mega 계열은 메모리의 용량이 크고 다양한 기능을 제공하기 때문에 복잡한 로직을 구현하거나 다양한 Task를 복합적으로 처리할 때 적합하다. 좀더 자세히 특징을 정리하면 다음과 같다.
- 8-비트 RISC(Reduced Instruction Set Computer) 구조로 명령어가 간단하며 동작 속도가 빠르다.
- 1MHz당 약 1MIPS(Million Instruction Per Second)의 성능.
- 소비 전력이 적다.
- 10 비트 ADC 내장.(일부)
- 다른 마이크로 콘틀롤러에 비해 큰 SRAM을 가지고 있다.
- Flash memory의 내장으로 프로그래밍이 용이하다.
- EEPROM을 내장하고 있어서 데이터 백업이 가능하다(EEPROM의 크기는 SRAM과 동일)
- C언어에 최적화
- UART, SPI(Serial Peripheral Interface), PWM(Pulse Width Modulation) 등을 내장.
- 8비트 및 16비트 타이머를 내장.
[출처] AVR 의 특징 및 종류|작성자 러블리푼수
[Atmega 8 소개 및 선정배경]
Mega 계열중 가장 하위 클래스에 속하는 ATmega-8 mcu로 실습을 진행해보자. Atmega 8 mcu는 다른 Mega 계열 mcu보다 메모리 용량이 적고 pin 수도 적다. 하지만 다른 클래스 보다 훨씬 저렴하고, DIP type 과 TQFP type 으로 생산된다. 특히 DIP type은 별도의 변환기판을 구매할 필요가 없기 때문에 HW 구현이 간단해서 초심자가 접근하기 용이하다. 또한 Mega 8 mcu는 Mega 계열의 특성(제공하는 기능은 동일하지만 Pin수와 메모리 용량은 다름)상 다른 상위 클래스의 Mega mcu의 고급기능을 모두 구현할 수 있다. 무었보다 필자는 한정된 자원으로 최상의 퍼포먼스를 구현하는것을 좋아하는 개발자중 한명이다 ^^. 이처럼 저렴한 가격과 초심자 접근성의 용이함, 그리고 필자의 개인적 취향을 모두 만족하는 Mega-8 mcu를 실습 교보재로 사용한다.
[SW 개발환경 구축]
1. WinAvr installation
WinAvr은 AVR 계열 Target Device를 위한 AVR free software compiler 이다. 이는 avr-gcc (compiler), avr-lib (library), avr-as (assembly), avrdude (utility), avrrice (JTAG interface), avr-gdb (debugger), programmers notepad (source editor) 등으로 구성된다.
1) WinAvr download
http://sourceforge.net/projects/winavr/files/ 로 이동한다.
빨간색 박스로 표시된 링크를 클릭하면 5초 후 자동으로 download가 진행된다.
2) WinAvr install
install 진행시 사용할 언어를 선택한다.
설치화면은 아래과 같고 [다음]을 클릭한다.
아래의 화면은 사용권 계약관련 내용이므로 재빠른 동의를 권한다.
아래의 화면은 설치할 패키지를 선택하는 내용인데 약 260M 정도의 용량이 필요하다. 왠만하면 Full Package를 설치하는 것을 권하고 있음으로 [설치] 버튼을 클릭한다.
아래화면은 설치 경로를 지정하는 화면이다. 한가지 TIP은 한글경로가 포함시 간혹 오류가 나는 경우가 있음으로 왠만하면 영어를 사용하도록 한다.
설치 진행중인 화면은 다음과 같다.
아래는 설치가 정상적으로 완료됬을때의 화면이다. 신속하게 [완료] 버튼을 클릭한다.
2. AVR Studio Installation
AVR Studio는 ATMEL 사에서 무료로 배포하고 있는 AVR 통합 개발 툴로서 무료이지만 매우 편리하고 강력한 기능을 제공한다. WinAvr 과 연동한 compile 및 시뮬레이션과 Hex file downloading 기능을 지원하며, 무었보다 AVR Studio 5, 6는 이전 버젼 (AVR Studio 4)와 다르게 Visual studio 환경을 채택하고 있어서 매우 사용하기가 용이하다. 물론 우리는 AVR Studio 6를 사용해서 진행하게 될것이다. 항상 생각하는 것이지만 개발툴은 최신버젼을 사용해서 해로울것이 전혀 없다고 생각한다. 간혹, 특히 HW 개발자들중 친숙하다 해서 이전버젼을 고집하는 경우가 있는데 이번을 기회로 최신 Software의 위력을 실감해 보는것도 좋을것이다.
1) Avr Studio 6 Download
http://www.atmel.com/Microsite/atmel_studio6/default.aspx 로 이동해서 [Download now] 를 클릭한다.
아래의 빨간색 박스로 표시된 Atmel Studio 6.0 - Full 을 다운로드 한다.
[Register]를 클릭하면 다음과 같이 정보를 입력하는 창으로 이동하게 되는데 서식대로 작성하고 [Submit] 버튼을 클릭한다.
서식을 채우고 [Submit] 버튼을 클릭하면 아래와 같이 E-mail로 링크를 전송했다는 안내를 해준다. 생각보다 설치과정이 까다롭다.
E-Mail로 전송된 링크를 클릭하면 다음과 같이 Avr studio 6를 다운로드 할수 있는 화면으로 이동한다.
링크를 클릭하면 아래와 같이 Avr Studio 6가 다운로드 되기 시작한다.
2) Avr Studio 6 Install
다운로드 받은 파일을 클릭하면 다음과 같이 설치되는 파일 목록을 보여준다. 역시 빠르게 [install] 버튼을 클릭한다.
[install] 버튼을 클릭하면 다음과 같이 설치를 진행하게 된다.
Visual Studio 2010 라이센스 관련 사항이다. 역시나 신속하게 Accept를 선택하고 [Next] 버튼을 클릭한다.
설치경로를 지정하고 Custom, Full 버젼중 선택하는 메뉴인데 왠만하면 Full 버젼을 설치하는것을 권장한다. 역시 [install]버튼을 클릭한다.
다음과 같이 설치가 진행된다.
다음은 ATMEL 사에서 제공하는 USB Device driver를 설치하는 화면으로 자동으로 실행된다.
역시 [Next] 버튼을 클릭한다.
라이센스 관련 사항으로 Accept를 선택하고 [Next] 버튼을 클릭한다.
설치경로를 지정하는 화면으로 Default 경로를 선택하는것을 권장한다. [Next] 버튼을 클릭한다.
설치를 시작하기 위해 [Next] 버튼을 클릭한다.
설치가 완료되었음으로 [Finish] 버튼을 클릭한다.
USB Device driver설치가 완료되면 다음과 같이 AVR Studio 6 설치 화면으로 이동한다.
신속한 [Next] 버튼 클릭을 권장한다.
라이센스 관련 항목이므로 Accept를 선택후 [Next]버튼을 클릭한다.
설치 경로를 지정하고 [Next] 버튼을 클릭한다.
install option 을 최종 확인하는 화면이므로 잘 확인해보고 문제가 없으면 [Next] 버튼을 클릭한다.
이제 Avr Studio 6 설치가 완료 되었음으로 [Finish] 버튼을 클릭해서 설치를 마무리 한다.
바탕화면에 Avr Studio 6 Icon 이 생성되 있는것을 확인할 수 있으며 이것으로 SW 개발환경 구축을 완료했다.
[남기는 말]
Micom programming의 세계 1부를 여기서 마치겠습니다. 다음 포스팅에서는 HW 개발환경 구축 및 반드시 필요한 하드웨어 기반지식에 대해서 설명하겠습니다. 부족한 내용이지만 독자님들께 도움이 됬으면 합니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[2기 대구 이현복] Data Structure - Array (0) | 2012.08.20 |
---|---|
[2기 전주 박준형] Parallel Processing (0) | 2012.08.20 |
[2기 강남 안병현] GoF 디자인패턴 - Adapter 패턴 (0) | 2012.08.19 |
[2기 전주 심경원] UART 통신을 이용한 프로세서 제어 (0) | 2012.08.19 |
[2기 대구 김길종] The Empty Base Class Optimization (EBCO) (0) | 2012.08.18 |