2014년 7월 8일 화요일

[AVR] ATmega128 개발환경 구축하기

안녕하세요.

대학생 학부 시절 임베디드 시스템을 공부하고 4년이 지난 시점에서 취미생활로 작품 활동을 하기 위해 다시 시작하고자 합니다. 직장인이다 보니 바쁜 시간을 쪼개어 시작하려고 하니 머리가 아프네요.

이러한 고민을 해결해주는 아이템으로 최근에 출시된 아두이노와 같은 개발 환경을 갖추면 복잡한 코딩 없이도 누구나 쉽게 센서를 제어할 수 있어 구미가 당겨 집니다. 하지만 코드를 하나하나 짜보면서 하드웨어를 제어하는 것이 진정한 재미 이므로 AVR를 사용한 개발환경을 구축해 볼까 합니다.

먼저 AVR이 무엇인지 살펴보고려고 합니다.

AVR은 1996년 아트멜社에서 개발된 하버드 구조를 갖는 8비트 RISC 방식의 단일칩 마이크로컨트롤러 입니다. 현존하는 대부분의 8비트 마이크로 컨트롤러들은 하버드 아키텍처를 기반으로 제작되었습니다. 따라서 메모리와 데이터 메모리가 서로 분리되어 있어 CPU가 독립적으로 프로그램과 데이터에 접근이 가능한 구조입니다.

아래 블록다이어그램을 보면 Flash Program Memory와 DATA SRAM이 각각 존재하고 있고 Data bus로 연결되어 있는 것을 볼 수 있습니다.



앞서 설명한 하버드 구조의 장점때문에 AVR은 ISP(In-System Programming)기능을 제공하여 손쉽게 내부 FLASH 메모리에 PROGRAM를 저장할 수 있는 기능을 제공합니다. AVR에서 사용되는 ISP는 저렴한 가격에 직접 만들어 쓸 수 있는 장점이 있습니다.

(AVR의 ISP관련 참고 자료 : http://www.atmel.com/images/doc0943.pdf)


필자는 AVR 하드웨어 구축을 위해 아래 사이트에서 10만원으로 구입하여 활용하기로 했습니다.

- 구매이유 : 중국산 AVR 보드 및 다양한 센서를 싼가격에 구입 가능



이곳에서 판매하는 Atmega128 Training KIT 생각보다 저렴한 가격에 구성이 잘되어 있어 좋았지만 막상 프로그램을 코딩하려고 보니 간단한 회로가 아니여서 첫 맨붕을 겪게 해주었습니다. Character LCD는 아두이노에 바로 사용할 수 있도록 만들어져 있어 기존 LCD 제어 코드는 활용이 불가능하여 새로이 I2C로 제어할 수 있도록 만들어야 합니다. 한가지 마음에 드는 점은 AVR ISP가 USB로 되어있어 정말 빠르고 쉽게 펌웨어를 업데이트 할 수 있어 가격대비 성능이 최상이라 생각 됩니다.

예전 같으면 한땀한땀 납땜하여 보드를 만들었을 테지만 많은 시간과 노력이 필요하므로 나중으로 기약하려고 합니다. 조금더 여력이 된다면 대학생때 처럼  소리전자에서 중고 오실로스코프 또는  Logic ananlyzer를 구매할 까합니다.

이상입니다.

댓글 없음:

댓글 쓰기

[C++] 연습문제 1-2

 /****************************************************************************** - 피트(feet)를 인치(inch)로 변환시켜주는 프로그램을 작성 - 사용자로부터 피트를 입력받아 인치로...