티스토리 뷰
MCC (Microchip Code Configurator)
MCC는 MPLAB X IDE 안에서 플러그인 형태로 지원한다.
쉽게 이해할 수 있는 C언어 기반의 코드를 생성하는 그래픽 프로그래밍 환경이며 무료로 제공된다.
직관적인 인터페이스를 사용하여 MCU의 GPIO, ADC, Timer, PWM 등과 같은 주변 장치와
usb, TCP/IP 등과 같은 라이브러리를 설정하여 쉽게 사용할 수 있으며 8비트, 16비트, 32비트 MCU 모두를 지원한다.
MCC란 무엇인가?
- 임베디드 프로젝트를 위한 주변장치, I/O, 그리고 라이브러리 설정을 돕는 그래픽 유저 인터페이스
- 초기화 함수를 생성하고 쉽게 이해할 수 있는 드라이버를 프로젝트에 추가
- MPLAB X IDE 및 MPLAB Xpress에 내장된 강력하고 쉬운 개발 플랫폼으로 무료로 제공된다
MCC의 장점
- 애플리케이션을 위한 모든 초기화 함수와 드라이버를 자동으로 생성
- GUI를 통해 PPS 핀과 같은 핀 할당을 손쉽게 할 수 있는 기능제공
- 인터럽트 매니지먼트 : 인터럽트의 경우 GUI를 통해 우선순위 및 활성화 유무 설정
- 코드 생성 시 간단하고 심플한 드라이버를 생성하여 쉽고 빠르게 이해가능
- 검증된 코드가 생성되기 때문에 개발을 간결하고 빠르게 진행한다
- 직관적인 라이브러리로 쉽게 사용
- 복잡한 Core Independent Peripheral (CIP)에 대해서도 쉽게 설정하여 사용할 수 있다.
MCC를 활용하여 파이프라인 ADC를 설정할 경우 각 레지스터 설정이 필요없다.
GUI를 통해 파이프라인 ADC를 어떻게 설정할 것인지 선택하는 것으로 코드가 자동 생성된다.
실습을 통해서 MPLAB의 MCC에 대해서 알아보자.
MPLAB X IDE를 설치하면서 MCC(Microchip Code Configurator)를 설치했다.
새 프로젝트를 만들고 Finish를 누르면 프로젝트 설정이 종료된다.
여기까지 진행하면 프로젝트 틀만 만들어졌을뿐 아무것도 없다.
Tools > Embedded > MPLAB Code Configurator 3.0 으로 들어간다.
MCC는 크게 3개의 영역을 가진다.
1. Composer Area
2. Resource Area
3. Pin Manager Area
1. Composer Area : Easy Setup Tab, Register Tab, Notifications Tab
Easy Setup Tab에서는 GUI를 통해 클럭에 설정, PLL 등과 같은 기능 설정 시 사용할 수 있고,
Register Tab에서는 Easy Setup Tab에서 설정된 값이 레지스터 값으로 자동 변환되어 보여지게 된다.
반대로 레지스터 탭에서 값을 직접 변경하게 되면 Easy Setup Tab의 설정 값이 반영되게 된다.
Notifications Tab에서는 주변장치나 모듈을 설정하는 동안에 경고, 힌트, 유용한 정보를 보여주고
탭의 상단에 표시된 숫자는 이러한 경고, 힌트, 유용한 정보의 갯수를 나타낸다.
(Notification 창이 Pin Manager 창 옆쪽에 Notification 알림이 뜬다.)
2. Resource Area : Project Resource, Device Resource, Version
Device Resources에서는 선택된 디바이스에서 사용 가능한 모든 모듈을 표시하며
Project Resources에서는 현재 사용중인 모듈을 표시한다.
Version에서는 현재 설치되어 사용가능한 라이브러리 버전을 표시한다.
Project Resource에서 시스템 모듈을 마우스 왼쪽 버튼으로 클릭하면 사용자는 Configuration 비트를 설정할 수 있다.
MCU의 내장 오실레이터를 사용할 경우,
MCU는 현재 선택된 디바이스의 내장 RC 오실레이터의 주파수를 자동으로 불러들여 주파수가 선택된다.
하지만 만약 사용자가 외부 오실레이터를 사용할 경우 MCU에서는 어떤 주파수가 사용되는지 알 수 없으므로
외부 오실레이터의 주파수를 사용자가 직접 입력해야한다.
Project Resource에서 인터럽트 모듈을 마우스 왼쪽 버튼으로 클릭하면 인터럽트 사용 유무 및 우선순위 설정을 할 수 있다.
3.Pin Manager에서는 GPIO 입력 또는 출력 모드에 따른 세부 설정을 할 수 있다.
GPIO의 입력, 출력 아날로그와 같은 설정은 체크 박스를 간단하게 클릭하는 것만으로 설정할 수 있다.
왼쪽 첫번째 박스의 Start High는 초기 파워업 또는 리셋에 의한 MCU 스타트 없이 (???)
GPIO 출력을 HIGH 또는 LOW로 출력할 것인지 설정가능하다.
아날로그는 아날로그 input 모드 여부, 해당 핀을 ADC나 컴퍼레이터와 같은 아날로그 입력모드로 사용시 사용된다.
아웃풋은 GPIO 출력모드 또는 입력모드를 설정할 때 사용된다.
WPU, WPD는 위크풀업, 위크풀다운의 약자로 GPIO에서 위크풀업, 위크풀다운을 설정할 때 사용된다.
OD는 Open Drain의 약자로 GPIO의 출력 모드 사용 시 Open Drain으로 사용할 지 설정하는 데 사용한다.
IOC는 인터럽트 온 체인지를 설정하는 부분으로 각 핀의 Rising Edge, Falling Edge를 설정하여 이에 대한 인터럽트를 선택하는데 사용한다.
Device Resource에서는 사용중인 Datasheet 링크와 선택된 디바이스에서 사용가능한 주변장치와 라이브러리를 표시한다.
Datasheet를 클릭하면 마이크로칩의 데이터시트가 포함된 페이지를 열거나 저장된 Datasheet를 확인할 수 있다.
Device Resource 화면에서 사용할 주변장치를 마우스 왼쪽 버튼으로 더블클릭하면 주변장치가 프로젝트 리소스영역으로 이동한다.
더 이상 필요가 없게되면 프로젝트 리소스 영역에서 해당 주변장치의 오른쪽의 X를 클릭하면 해당 주변장치가 Device Resource로 이동한다.
ADC 모듈을 선택하면 기능 상세 설정을 할 수 있는 Composer Area에 Configuration Tab이 나타난다.
ADC 모듈의 상세 설정은 Project Resource 창에 포함된 주변장치 ADC를 마우스 오른쪽 버튼을 클릭하여
해당 모듈의 기능을 상세하게 설정할 수 있는 창이 Composer Area에 나타난다.
Pin Module에서는 Package view 영역에서 User가 설정한 핀 설정 상태를 볼 수 있다.
Grid view에서는 사용가능한 핀의 리스트, I/O들을 나타낸다.
패키지 설정을 눌러서 현재 사용중인 디바이스의 패키지를 선택하면 사용중인 패키지의 형태로 패키지의 모양이 변하는 것을 확인할 수 있다.
Package view의 각 핀의 색상에 따라 현재 핀의 상태를 표현한다.
파란색은 할당되지 않은 사용 가능한 핀이고, 녹색은 사용중인 핀, 회색은 설정 가능하지 않은 전원부와 같은 시스템 핀이다.
링크로 표시된 부분은 여러개의 기능이 중복되어 할당된 핀을 말한다.
Pin Select에서 열린 자물쇠를 클릭하면 선택된 자물쇠는 닫힌 모양으로 바뀌고 색상은 파란색에서 녹색으로 바뀐다.
(자연적으로 Input을 클릭하여 자물쇠를 잠그면 Output이 주황색이 되고,
Output을 클릭하여 자물쇠를 잠그면 Input이 주황색이 된다.)
동일한 핀에 다른 기능이 중복되어 선택되면 자물쇠는 링크 아이콘 모양으로 변경된다.
UART2의 RX, TX 핀을 PPS로 할당할 경우, (??? PPS)
UART의 RX, TX를 각각 원하는 핀을 클릭한 후 코드를 생성하면 자동으로 생성이 된다.
MCC를 통해 주변 장치 및 시스템 설정을 마치고 코드를 생성하기 위해 generate 버튼을 누르면 새로운 코드가 생성된다.
생성된 결과를 output 창에 보여준다.
output 창에서는 새 파일이 생성되었는지 기존 파일에 자동으로 합치기가 되었는지, 수동으로 합치기가 필요한지 나타난다.
(상세 결과 화면 : 새 파일, 자동 합치기 Auto-Merged, 수동 합치기 필요 Manual Diff Merge Required,
MCC output unchanged. User edits maintained)
MPLAB X IDE에서 플러그인 형태로 제공하는 MCC를 통해 검증된 코드와 쉽고 빠른 UI를 통해
코드의 오류는 최소화하고 소프트웨어의 완성도를 높일 수 있으며 이를 통해 갈수록 짧아지고 있는
제품의 개발 주기에 효율적으로 대응할 수 있으리라 생각된다.
'임베디드 > PIC' 카테고리의 다른 글
MPLAB X IDE에서 MCC 사용해서 코드 작성하기 (0) | 2019.09.18 |
---|---|
MPLAB X IDE에서 프로젝트 설정하는 방법 (0) | 2019.09.17 |
소프트웨어 툴 (MPLAB X IDE) 설치하기 (0) | 2019.09.17 |