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에서 처음 광범위하게 사용되었습니다. 이 아키텍처는 프로그램 명령을 저장하기 위한 메모리 공간과 데이터를 위한 또 다른 공간을 할당합니다. 온칩 플래시 메모리, ROM, RAM 또는 외부 칩에 위치할 수 있는 별도의 메모리 공간을 갖는 것은 일반적으로 프로그램 실행 속도를 향상시킵니다. (용어 "하버드 아키텍처"는 종종 느슨하게 사용됩니다. “하버드”라고 불리는 많은 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(통합 개발 환경)
- 프로그램을 MCU 어셈블리 언어로 변환하는 컴파일러로, 일반적으로 설계 엔지니어들 사이에서 HEX 파일이라고 알려져 있음
- 프로그램 조정 후 HEX 파일을 PIC로 전송하는 데 최종적으로 사용되는 IPE(통합 프로그래밍 환경)
- 인서킷 디버거/프로그래머

그림 2. MPLAB X IDE는 광범위한 부가 MCU 프로그래밍 기능을 포함합니다. 출처: Microchip Technology Inc.
8비트 PIC을 처음 사용하는 사용자들을 위해 Microchip은 MPLAB® Xpress라는 클라우드 기반의 IDE를 출시하여 다운로드, 설치, 구성 및 주기적인 도구 업데이트의 번거로움을 없앴습니다. MPLAB Xpress는 MPLAB Code Configurator를 포함하고 있으며, 이를 통해 사용자들은 그래픽 인터페이스와 핀 맵을 사용하여 8비트 (및 16비트) PIC MCU의 초기화 및 응용 C 코드를 자동으로 생성할 수 있습니다. 모든 MCU와 마찬가지로, 첫 번째 단계는 구성 레지스터를 설정하는 것입니다. 이 레지스터에 프로그래밍된 비트는 오실레이터 모드, 감시 타이머, 프로그래밍 모드 및 코드 보호와 같은 기본적인 디바이스 작동을 지정합니다. 이러한 비트는 코드가 성공적으로 실행되기 위해 정확히 설정되어야 합니다. 구성 비트를 설정한 후에는 프로그램 생성 과정의 나머지가 응용 프로그램에 따라 달라집니다. 코드가 완료되면 다음 단계는 논리 기반 엔티티를 실세계의 비트로 옮기는 것입니다. 통합 프로그래밍 환경(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 설계자로서 필요한 것은 시작하려는 열정과 프로젝트를 끝까지 완성하려는 끈기뿐입니다.
기사 태그
