PIC 마이크로컨트롤러 프로그래밍: 모든 설계자를 위한 기본 사항
Microchip Technology의 PIC® 마이크로컨트롤러 라인은 가격, 성능 및 광범위한 설계 지원 등 여러 이유로 설계 엔지니어들 사이에서 인기가 있습니다. 또한 다양한 애플리케이션의 요구 사항에 맞도록 신중하게 아키텍처가 설계된 PIC 마이크로컨트롤러(MCU)의 폭넓은 선택지도 제공됩니다.
PIC를 시작하는 방법은 사실상 모든 MCU를 시작하는 방법과 유사합니다. 가장 기본적인 수준에서 설계자는 MCU에서 하드웨어로 구현될 로직을 세부적으로 알아야 합니다. 많은 설계가 설계자가 로직을 완전히 숙고하지 않았기 때문에 문제를 겪습니다.
회로 로직의 견고한 기반을 구축하는 것 외에도, 애플리케이션에 대한 상세한 지식은 필요한 입력 및 출력의 개수, 성능 수준, 충족해야 하는 비용 및 개발 기간 예산과 같은 미션 크리티컬 질문에 대한 답을 제공합니다.
또한 MCU가 처리해야 하는, 단순한 전자 설계를 넘어서는 중요한 질문들도 있습니다. 시스템 레벨 장치가 사용될 위치(환경 조건 및 지리적 위치)는 어디인가? 어떤 산업 표준을 준수해야 하며, 상호 운용해야 하는 다른 제품은 무엇인가? 건강, 안전 및 환경 요구 사항과 관련된 산업 및 정부 규정 중 어떤 것을 충족해야 하는가?
그림 1 은 I/O와 일부 주변장치를 포함한 Microchip Technology의 PIC16F84 블록 다이어그램을 보여줍니다. 1990년대 초에 도입된 이 제품은 기본 기능을 수행합니다. 오늘날의 8비트 MCU는 일반적으로 여러 주변장치를 통합하며, 이로 인해 애플리케이션 개발자의 소프트웨어 복잡성이 증가합니다.

그림 1. PIC16F84는 직렬 프로그래밍 알고리즘과 EEPROM 메모리를 갖춘 가장 초기의 MCU 중 하나입니다. 출처: Microchip Technology Inc.
PIC 마이크로컨트롤러 하드웨어 필수 사항
PIC 마이크로컨트롤러를 프로그래밍하려면 구성 레지스터, 버스, 메모리 유형 등 해당 디바이스의 기본 구성 요소를 알아야 합니다. PIC 프로그래밍 언어를 이해하는 것은 매우 유용하며, 필수적일 수도 있습니다. 올바른 소프트웨어 개발 도구 세트를 선택하는 것도 학습 및 적용을 더 쉽고 빠르게 만드는 데 도움이 됩니다.
많은 PIC의 기반 메모리 아키텍처는 하버드 아키텍처이며, 이는 Intel의 8051 MCU에서 처음으로 널리 배포되었습니다. 이 아키텍처는 프로그램 명령을 저장하기 위한 하나의 메모리 공간을 갖고, 데이터용으로는 다른 공간을 할당합니다. 분리된 메모리 공간(온칩 Flash 메모리, ROM, RAM 또는 외부 칩일 수 있음)을 갖추면 일반적으로 프로그램 실행 속도가 더 빨라집니다. (“하버드 아키텍처”라는 용어는 종종 느슨하게 사용됩니다. “Harvard”로 언급되는 많은 MCU는 하버드와 폰 노이만 메모리 아키텍처를 혼합하여 수정된 형태입니다.)
더 진행하기 전에, 설계에 선택될 PIC MCU에 대해 상당히 구체적으로 정해야 합니다. 8비트 PIC는 일반적으로 16비트 및 32비트 MCU보다 비용이 낮고, (A/D 컨버터와 같은) 적절한 주변장치 세트를 갖추며, 우수한 성능을 제공하므로 좋은 선택입니다.
Microchip은 여러 8비트 PIC 패밀리를 제공합니다. PIC10F 및 PIC12F는 가장 저렴하지만 메모리가 더 적고, 핀 수가 더 적으며, 주변장치도 더 적습니다. 최저 비용의 PIC 칩을 선택하면 설계 도중에 MCU가 애플리케이션의 요구 사항을 완전히 충족하지 못한다는 사실을 뒤늦게 발견할 위험이 있습니다. PIC18F 시리즈는 Microchip의 8비트 제품 성능 스펙트럼에서 반대쪽 끝에 해당합니다. 더 정교하며, 고도로 특화된 온칩 주변장치를 제공하고, 또한 가장 비싼 패밀리이기도 합니다. 첫 번째 설계에서는 PIC18F 시리즈가 아마도 과도한 사양일 것입니다.
PIC 마이크로컨트롤러로 설계
PIC 마이크로컨트롤러(또는 모든 MCU)를 프로그래밍하려면 일반적으로 다음 소프트웨어 도구가 필요합니다:
- IDE(Integrated Development Environment): 애플리케이션을 위해 작성된 기호 논리를 프로그램 명령으로 변환합니다
- 컴파일러: 프로그램을 MCU 어셈블리 언어로 변환하며, 설계 엔지니어들 사이에서는 일반적으로 HEX 파일로 알려져 있습니다
- IPE(Integrated Programming Environment): 일부 프로그램 튜닝 후 최종적으로 hex 파일을 PIC로 전송하는 데 사용됩니다
- 인-서킷 디버거/프로그래머
Microchip의 소프트웨어 개발 도구는 성능과 사용 편의성으로 높은 평가를 받고 있습니다. 이 회사의 MPLAB®X IDE, MPLAB®XC Compilers 및 MPLAB® IPE는 설계자가 타사 도구를 비교하고 구매해야 하는 부담을 덜어줍니다. Microchip의 기본 도구는 무료로 제공됩니다. 모든 Microchip 개발 도구의 개요는 여기에서 확인할 수 있습니다.
그림 2는 MPLABX Integrated Development Environment (IDE)의 회사 5개 카테고리에서 제공되는 Microchip 제품을 보여줍니다.

그림 2. MPLAB X IDE는 다양한 부가 MCU 프로그래밍 기능을 포괄합니다. 출처: Microchip Technology Inc.
처음 8비트 PIC를 사용하는 사용자를 위해 Microchip은 다운로드, 설치, 구성 및 주기적인 도구 업데이트의 번거로움을 없애는 클라우드 기반 IDE인 MPLAB® Xpress를 출시하여 시작을 한층 더 쉽게 만들었습니다. MPLAB Xpress에는 그래픽 인터페이스와 핀 맵을 사용하여 8비트(및 16비트) PIC MCU용 초기화 및 애플리케이션 C 코드를 자동으로 생성할 수 있도록 해주는 MPLAB Code Configurator가 포함되어 있습니다.
어떤 MCU든 마찬가지로 첫 단계는 구성 레지스터를 설정하는 것입니다. 이 레지스터에 프로그래밍되는 비트는 오실레이터 모드, 워치독 타이머, 프로그래밍 모드 및 코드 보호와 같은 기본적인 디바이스 동작을 지정합니다. 코드가 성공적으로 실행되려면 이러한 비트를 올바르게 설정해야 합니다.
구성 비트가 설정되면, 프로그램 생성 프로세스의 나머지 부분은 애플리케이션에 따라 달라집니다. 그리고 코드가 완성되면, 다음 단계는 논리 기반 엔터티를 비트의 현실 세계로 옮기는 작업을 포함합니다.
통합 프로그래밍 환경(Integrated Programming Environment, IPE)은 PC 또는 워크스테이션에서 생성된 프로그램을 MCU로 전송하는 것을 포함해 다양한 기능에 사용됩니다. 앞서 언급했듯이 Microchip의 환경은 이러한 기능을 결합하지만, 세 가지 중요한 개념은 시뮬레이션, 디버깅 및 PIC 프로그래밍입니다. 소프트웨어 도구와 그 사용 방법에 대한 자세한 설명은 이 문서의 범위를 벗어납니다.
하지만 PICkit™ 3 In-Circuit Debugger/Programmer는 추가 하드웨어이므로, 다른 도구의 소프트웨어 구성에서 개념적으로 한 단계 더 나아가는 것이기 때문에 언급할 가치가 있습니다. 이는 애플리케이션 프로그램이 MCU로 전송된 후에 사용됩니다. PICkit 3는 MPLABX IDE 소프트웨어를 실행하는 PC에 의해 제어되며 도구 제품군의 필수 구성 요소입니다.
그림 3의 범례는 프로그래밍 또는 디버깅되는 MCU와 Microchip Technology의 MPLABX IDE를 실행하는 PC 간의 주요 연결을 보여줍니다.

그림 3. Microchip의 PICkit 3는 다양한 MCU를 디버깅 및/또는 프로그래밍하기 위한 하드웨어를 제공합니다. 출처: Microchip Technology.
PIC 마이크로컨트롤러의 장점
PIC MCU를 시작하려면 애플리케이션에 대한 철저한 이해, 사용할 PIC의 기본 하드웨어 아키텍처, 그리고 소프트웨어 툴 체인에 대한 이해가 필요합니다. Microchip은 다른 MCU에 익숙한 엔지니어뿐 아니라 완전 초보 설계자에게도 실제 설계 프로세스를 매우 쉽게 접근할 수 있도록 했습니다. 무료 소프트웨어 도구를 통해 설정 비용이 합리적이며, Microchip의 설계 에코시스템 내부와 일반 웹 전반에 걸쳐 풍부한 코드와 조언이 제공됩니다. 예비 PIC 설계자에게 필요한 것은 시작하려는 의지와 프로젝트를 완료할 때까지 끝까지 해내는 끈기뿐입니다.
기사 태그
