임베디드 강좌 3 부록 - 대표적인 embedded 용 MCU 개요

임베디드 강좌 3 부록 - 대표적인 embedded 용 MCU 개요

 

본글은 http://blog.naver.com/jimypage 에서도 볼 수 있습니다.

 

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로, 

 

아이씨뱅큐의 지원을 받아 작성되었습니다]

 

icbanq 의 홈페이지에 가 보시면 MCU 카테고리에 많은 종류의 MCU들이 존재 하는것을 알 수 

 

있습니다.

 

이번회에는 대표적인 embedded용 MCU인 atmel의 AVR시리즈와 microchip의 PIC시리즈중에서 

 

가장 일반적인(또는 일반적 이었던) 제조사의 과거 베스트셀러 MCU에 대해서 알아 보겠습니다. 

 

그리고 다음회에는 좀더 나가서 ARM코어 제품군에 대해서 알아 보도록 하겠습니다.

 

이번에 살펴볼 것은 atmel 의 AVR 시리즈중 AT90S2313과 

 

microhip의 PIC 시리즈중 pic16f84a 입니다.

 

둘다 현역에서 은퇴한 MCU 이지만 90년대에 널리쓰인 베스트 셀러 칩입니다.

 

(사실 은퇴라고하기에는 조금 애매 합니다.


아직 판매가 되는 MCU이지만 현재는 가격대비 성능이 더 좋은 제품들이 많이 나와있기 때문에


실제 현업에서는 많이 쓰이고 있지 않는다 정도로 이해 해 주시면 좋겠습니다.) 

 

즉 가장 범용적으로 쓰일 수 있다는 점에서 베스트 셀러 였구요. 그래서 간략하게 알아보겠습니다.

 


 

(그림 icbanq 의 MCU 카테고리 항목들)

 

위의 그림에서 보시면 많은 카테고리의 MCU들이 있다는 것을 알 수 있습니다. 

 

각 제조사마다 개발 방법은 거의 동일하기 때문에 일반적인 임베디드 개발을 할 경우에는 

 

먼저 목적, 기능에대한 검토를 한후 어떤 기능이 꼭 필요한지, 어떤 기능이 향후에 필요 할 수 있는지

 

IO 핀은 최소 몇개 정도가 있어야 하는지, 클럭은 어느정도로 동작해야 하는지를 결정하고, 

 

이후에 칩 선정을 하고 펌웨어 프로그램을 작성하게 됩니다. 

 

각 제조사마다 거의 비슷한 기능을 하는 칩들이 다수 존재하기 때문에 일반적으로 

 

AVR에 익숙한 사람들은 AVR을 PIC에 익숙한 사람들은 PIC을 사용합니다. 

 

물론 이 두 제조사의 MCU조차도 해당하는 기능이 없는경우 

 

TI, freescale(motorola 에서 이름을 바꾼 회사 입니다.)등 제3의 MCU를 알아본다던가 

 

그마저도 여의치 않은 경우에는 원하는 기능이 있는 다른 MCU 를 추가하거나, 

 

아니면 제어용 IC, CPLD, FPGA등을 추가하게 됩니다.

 

그렇지만 대개는 위 두 회사의 제품군이 다양하기 때문에 다른 MCU를 추가할 필요없는 경우가 

 

많습니다.

 

 

 

아무튼 atmel과 microchip의 대표적인 제품인 at90s2313과 pic16f84a는 그 보편성 때문에 

 

트레이닝 보드에서도 많이 사용되었을 뿐 아니라, 

 

취미용 제품에서 상용제품까지 (아마도) 가장 많이 제조되고 팔렸을 겁니다.

 

 

 

먼저 각 제품의 스펙문서에 나온 개략적인 기능설명을 보겠습니다.

 

첫번째로 atmel의 AT90S2313 입니다.

 

 

 

(AT90S2313 개요문서)

 

 

그리고 다음은 microchip 의 pic16f84a 입니다.

 

 

(pic16f84a 개요문서)

 

 

위의 두 문서를 보시면 몇몇 기능을 제외하고는 거의 차이가 없다는 것을 알 수 있습니다.

 

먼저 공통점을 살펴 보자면 

 

1. high performance RISC 칩이라는군요. -> 소형화를 위해 명령세트를 줄인 CPU 입니다.

 

2. 8비트 타이머 및 그 인터럽트가 존재합니다.

 

3. 20핀 DIP 패키지로 자작 기판에서도 손쉽게 사용할 수 있습니다.

 

4. 프로그램을 FLASH 메모리에 저장합니다.

 

5. 수십, 수백의 작업용 데이터 메모리가 존재합니다.

 

6. 비휘발성 메모리로서 EEPROM이 존재합니다. 

 

7. 시리얼 방식으로 프로그램 메모리에 기입합니다.

 

 

이번에는 차이점을 살펴보겠습니다.

 

AVR은 UART가 존재합니다.

 

AVR은 16비트 카운터가 존재합니다.

 

AVR은 analog comparator가 있습니다.

 

PIC은 가격이 저렴합니다.

 

 

먼저 AVR은 명령어가 118개나 되어서 powerful 하다고 합니다. 

 

그러나 PIC은 명령이 오직 35개밖에 안되어서 배우기 쉽다고 합니다.

 

그러나 AVR은 머신코드가 겹치는 명령을 따로 나누어 놓았기 때문에 실제 명령어 수는 

 

저것보다 적습니다. 그것을 고려하면 명령어수도 좀더 비슷해 집니다.

 

 

또한 AVR은 기본 4Mhz 모델이지만 PIC은 20Mhz까지 가능하다고 합니다. 

 

그러나 AVR은 1클럭에 1명령이 실행됨에 반해서(정확히 1클럭 1명령은 아닙니다) 

 

PIC은 4클럭에 1명령이 실행되므로 속도가 1/4 입니다. 

 

이마저도 비슷해 졌네요.

 

 

PIC은 점프명령을 제외한 모든 명령이 4 클럭에 실행되는 반면 

 

AVR 은 명령의 클럭수가 일정치 않습니다. 따라서 정확한 타이밍이 요구되는 분야에서는 

 

PIC이 좀더 유리합니다.

 

 

 

이렇게 놓고보니 두 칩은 명령어 세트는 다르지만 성능은 거의 비슷한 것 같이 보입니다. 

 

따라서 선호하는 제조사의 하드웨어를 먼저 공부하고 나중에 다른것을 

 

공부하더라도 상관이 없습니다.

 

요즈음은 아두이노등 플랫폼이 많이 쓰이기 때문에 

 

상대적으로 AVR을 잘 알아두면 나중에 아두이노 프로그래밍에도 

 

사용할수 있어서 유리합니다.

 

 

각 MCU를 자세해 살펴보려면 다음의 링크를 참조해 주세요.

 

AT90S2313

 

http://blog.daum.net/unininu/7165272

 

 

PIC16F84A

 

http://www.ktechno.co.kr/pictech/picframe.html

 

 

 

감사합니다.

 

[본 컨텐츠는 ICbanQ (아이씨뱅큐)에서 진행하는 파워블로거 활동의 일환으로, 

 

아이씨뱅큐의 지원을 받아 작성되었습니다]

 

이번에는 각 제조사의 과거 플래그십 MCU를 살펴보았습니다. 

 

다음번에는 임베디드의 새로운 트렌드인 ARM칩에 관해서 알아보겠습니다.

 

 

 

관련 사이트

 

http://blog.daum.net/unininu/7165272


 

 

관련 제품

 

http://www.icbanq.com/P000088835/S

 

http://www.icbanq.com/P001625842/S