티스토리 뷰
임베디드 시스템을 개발 한다는 것은 특정 동작만을 수행하는 하드웨어와 소프트웨어를 개발한다는 말과 동일하다. 그러기 위해서는 그 목적에 맞는 최적의 하드웨어를 구성해야 하고 그 하드웨어를 동작시키기 위한 개발 환경을 구축하여야 한다.
세상에는 셀수도 없을만큼 많은 종류의 임베디드용 CPU가 있다. 그 중에서 하나를 선택하는 것은 쉽지 않은 일이다. 기능, 성능, 소모전력, 가격, 납기 등등 여러가지 조건을 따져 보고 최종적으로 하나의 CPU를 선정하여야 하기 때문이다.
이 블로그에서는 AVR CPU를 통해서 임베디드 시스템의 개념과 프로그램 개발에 필요한 내용을 설명하려고 하기 때문에 이미 어느 정도는 CPU가 정해진거나 다름없다. ATMEL사에서 생산되는 많은 CPU중에서 ATmega128이 가장 대중적으로 많이 알려져 있지만, 여기에서는 ATmega328P를 선택하였는데 그 이유는 다음과 같다.
우선 납땜을 하지 않고 브레드보드를 이용하여 회로를 구성할 수 있어야 하는 조건이 있다. 즉 DIP 타입의 패키지가 제공되는 CPU이어야 한다. 그 다음에는 프로그램 개발에 필요한 자료를 비교적 쉽게 많이 참고 할 수 있으면 좋을것이다. 이 조건에 맞는 CPU가 ATmega328이다. 특히 이미 들어본적이 있을 아두이노 보드에서 사용되기 때문에 참고할 만한 많은 자료와 소스코드를 인터넷에서 쉽게 찾아볼 수 있다. 대중적으로 많이 사용하는 CPU는 그만큼 생산 비용이 줄어들기 때문에 저렴한 가격에 구입할 수 있는 이점도 있다.
ATmega328은 아래 그림과 같이 생겼다.
앞으로 특별한 언급이 없는한 편의상 ATmega328을 그냥 AVR CPU, 혹은 AVR 이라고 부르겠다.
CPU 선정이 끝났으면 그 다음엔 회로를 꾸밀수 있는 브레드보드가 있어야 되겠다.
위의 그림에 나오는 정도의 크기만 있어도 왠만한 회로를 꾸밀수 있으므로 이렇게 생긴 브레드보드를 준비한다. 여분으로 한두개 더 있으면 좋을것 같고, 좀 더 큰 브레드보드를 준비 할 수 있으면 하나정도 구비하는것도 나쁘지 않을것 같다.
브레드보드는 납땜이 필요 없지만 회로를 꾸미기 위해서는 점퍼선이 필요하다. 다양한 색상과 길이로 되어 있는 세트로 준비하면 좋다.
당연히 하드웨어가 동작 되기 위해서는 전원 장치가 필요하다. AVR CPU는 1.8V ~ 5.5V의 전원에서 동작된다는 것이 데이터쉬트에 나오므로 AA건전지 2~3개를 이용하면 된다. 그러나 어차피 AVR CPU 단독으로 회로를 구성하는 것보다 다른 하드웨어와 연동되는 경우가 많으므로 주변 회로들에 대한 고려가 있어야 한다. 많은 주변 회로들이 3.3V 전원에서 동작되도록 만들어져 있다. 따라서 3.3V 전원 장치를 준비하는 것이 좋겠다.
위의 그림처럼 브레드보드에 장착하도록 되어 있는 USB전원장치가 있다. 이것은 USB 전원을 사용하여 3.3V, 5V전원을 선택할 수 있도록 되어있다. 전원장치와 브레드보드, 점퍼선을 세트로도 구입할 수 있으므로 위 그림과 같은 세트 제품을 구매하는 것도 고려해볼만 하다.
이렇게만 준비하면 최소한의 하드웨어 구성은 끝났다. 하지만 이외에도 프로젝트에 따라 추가로 필요한 하드웨어가 있을 수 있으나, 그런 부품들은 프로젝트 시작 부분에 설명하도록 하겠다.
마지막으로 더 필요한 장비가 있다. AVR에서 동작이 되는 실행파일은 컴퓨터에서 만들어지므로 그 결과물은 컴퓨터의 하드디스크내에 존재한다. 그러므로 하드디스크에 있는 AVR용 실행 파일을 AVR에서 동작시키려면 AVR CPU로 실행파일을 옮겨주는 장비가 필요하다. ATmega328 CPU용으로는 다음과 같은 ISP 장비를 사용한다.
AVR용 ISP장비에도 여러가지 제품이 있다. ATMEL사에 만든 정품 장비가 있는 반면, 써드파티 회사에서 만든 좀더 저렴하게 구입할 수 있는 ISP장비도 있다. 여유가 된다면 가급적 정품 장비를 사용하면 좋겠지만, 가격이 부담된다면 써드파티 장비를 준비하도록 한다.
위에서 설명한 부품과 장비를 가지고 AVR 프로젝트를 하나씩 구현해 나가면서 필요한 내용을 설명하도록 하겠다.
'입문' 카테고리의 다른 글
LED 제어 1 (3) | 2016.02.27 |
---|---|
AVR에 실행 파일 다운로드 (8) | 2016.02.26 |
개발환경 구축 (8) | 2016.02.21 |
"hello, world" (12) | 2016.02.16 |
입문 과정 목차 (5) | 2016.02.16 |