1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. 【Microchipマイコンで便利に】MPLAB® Code Configuratorを使用した簡単ペリフェラルドライバ実装 (タイマ設定・GPIO設定)

TECHブログ

【Microchipマイコンで便利に】MPLAB® Code Configuratorを使用した簡単ペリフェラルドライバ実装 (タイマ設定・GPIO設定)

【Microchipマイコンで便利に】MPLAB® Code Configuratorを使用した簡単ペリフェラルドライバ実装 (タイマ設定・GPIO設定)

みなさんこんにちは。
今回は、Microchip社のマイコンをご存知ない方でも、MPLAB® Code Configuratorを使用することで、簡単にできるアプリケーションの開発方法を紹介します。

  • 本TECHブログでは、デモ部分の説明に動画(後述)を使用しています。
    ぜひ動画と合わせてご覧ください。

こんな方におすすめです!

マイコンの開発が簡単にできる方法を知りたい方 (特におすすめです)
・Microchipマイコンの開発方法が知りたい方
・マイコン開発の工数を削減したい方

それでは始めましょう。

目次

MPLAB® Code Configuratorとは?

MPLAB® Code Configurator(以下MCC)について簡単に説明します。

MCCはMicrochip社が提供する無料のCコード生成ツールです。
従来は数千ページにも及ぶ分厚いデータシートを読まなければならず、大変だったデバイスの設定やペリフェラルの設定が、MCC を使用するとGUIで簡単に設定でき、開発時間が大幅に短縮できます。

また、以下のような特徴があります。

・統合開発環境のMPLAB® X IDEへプラグインとして追加するだけで使用可能
・Microchip社が提供するマイコン(8ビット、16ビット)をサポート
・多くのPICマイコンが対応しているPPS(ペリフェラル ピン セレクト)機能で柔軟なピンの割当が可能
・MCCではGUIでピンの割当と設定が可能

MCCには組み込みソフトウェアの開発に便利なアプリケーションライブラリ、システムドライバ、ペリフェラルドライバが含まれています。

・アプリケーションライブラリ(例:サンプルコード、コードライブラリ)
・システムドライバ(例:Clock周波数の設定、タイマの設定)
・ペリフェラルドライバ(例:GPIOの設定、LEDの設定)

1-1. MPLAB® X IDEへの追加方法

 
MPLAB® X IDEを起動します。

上部のToolタブよりPluginsを選びクリックします。

Available Plugins or Installsの中にあるMPLAB® Code Configuratorを選択し、インストールをクリックします。

Nextをクリックします。

License Agreementについて
問題がないようでしたら、左下I accept...にチェックを入れInstallをクリックします。のちに、MCCのインストールが始まります。(およそ5分~15分)

以上でMCCのインストールは完了です。
 

デモ:準備編

今回のデモで準備する環境を紹介します。
CURIOSITY DEVELOPMENT BOARDを使用し、LED点灯させる制御プログラムをMCCで生成し、動作させるデモを行います。

  • MPLAB® X IDE (統合開発環境)
    • Microchip社より無償で提供されているマイコン用統合開発環境
    • Microchip社のマイコン製品すべてに対応
    • 64bitOS:Windows/Linux/MACに対応
  • MPLAB® Code Configurator
    • 8,16bitマイコン用Cコード生成ツール
    • MPLAB® X IDEプラグイン(無償)
    • 64bitOS:Windows/Linux/MACに対応
  • MPLAB® XC8 Compile(コンパイラ)
    • 8bitマイコン用コンパイラ
    • 無償版を今回は使用
    • 64bitOS:Windows/Linux/MACに対応
ソフトウェア環境
統合開発環境 MPLAB® X IDE v5.50
コンパイラ MPLAB® XC8 Compiler V2.32
コンフィギュレータ MPLAB® Code Configurator v5.0.3
ハードウェア環境
評価ボード CURIOSITY DEVELOPMENT BOARD
DM164137
マイコン PIC16F1769(DIP)  

デモ内容について

  • スイッチを使用したLEDのON/OFF制御
  • タイマを使用したLEDの点滅

本TECHブログでも簡単な流れを説明していますが、以下の動画でも設定箇所を見やすく説明していますので、ぜひ動画もご覧ください。

  • mainプログラムに追加するプログラム文を動画の下に記載しますので、赤字部分をコピーしてご使用ください。

3-1. デモ0:Clock設定の作業手順

  • MCCを起動
  • Internal Oscillatorを設定
 
MCCを起動します。

Internal Oscillatorを設定します。

3-2. デモ1:スイッチを使用したLEDのON/OFF制御に関する作業手順

  • GPIO・I/Oアクセスの設定(PinManager)
  • ピンにカスタムネームをつける
  • コードをGenerate
  • main.cへ処理を追加
  • デモ1使用コード
  • マイコンへ書き込み
  • 実行

GPIOの使用方法として、見た目でわかりやすいようにLEDとスイッチを使用してON/OFFの制御を行います。

 
GPIO・I/Oアクセスの設定(PinManager)

PinManagerを選び下図のようにPort C 4をGPIO input、Port A 5をGPIO outputに設定します。

ピンにカスタムネームをつける

PinModuleを選び、RA5を“LED”に、RC4を“SW”と設定します。

コードをGenerate

左上にあるGenerateをクリックしコードを生成します。

main.cへ処理を追加

使用コードは下部にありますのでご活用ください。

デモ1使用コード

main.c内

#include "mcc_generated_files/mcc.h"
#define _XTAL_FREQ  2000000    // this is used by the __delay_ms(xx) and __delay_us(xx) functions 
/*
                         Main application
*/
void main(void)
{
    // initialize the device
    SYSTEM_Initialize();
    
~中略~

    while (1)
    {
        // Add your application code
 
	if (SW_GetValue() == 0) //処理内容について欄外※参照
           LED_SetHigh();
        else
           LED_SetLow();
__delay_ms(10);
} } /** End of File */

※処理内容
SW_GetValueが0(スイッチがON)なら
LED_SetHigh():LED点灯
違うなら
LED_SetLow():LED消灯

マイコンへ書き込み

上部のMake & Program Deviceボタンをクリックすることでプログラムのビルドとマイコンへの書込みを実行します。

実行

スイッチを押すとLEDが点灯し、離すとLEDが消灯します。

3-3. デモ2:タイマを使用したLEDの点滅に関する作業手順

タイマを使用して、LEDの点灯/消灯を切り替えるような機能を実装します。

  • タイマの設定
  • コードをGenerate
  • main.cへ処理を追加
  • デモ2使用コード
  • マイコンへ書き込み
  • 実行
 
タイマの設定

Device Resources内にあるTMR1をダブルクリックし、画像のように設定します。

コードをGenerate

デモ1と同様にコードをGenerateします。

main.cへ処理を追加
使用コードは以下にありますのでご活用ください。
※デモ1で使用したコードを削除した後に追加してください。
デモ2使用コード

main.c内

#include "mcc_generated_files/mcc.h" 
/* Main application */ void main(void) { // initialize the device SYSTEM_Initialize(); ~中略~ while (1) { // Add your application code if(PIR1bits.TMR1IF) { PIR1bits.TMR1IF = false; //処理内容について欄外※参照 TMR1_Reload(); LED_Toggle(); } } } /** End of File */

※処理内容
LED_Toggle()
pin_maneger.hに定義されている。
{ LATAbits.LATA5 = ~LATAbits.LATA5; }
LEDの状態反転

マイコンへ書き込み

上部のMake & Program Device ボタンをクリックすることでプログラムのビルドとマイコンへの書込みを実行します。

実行
0.5秒周期でLEDが点灯/消灯を繰り返します。

main.cで使用した、SW_GetValueやLED_SetHigh、 LED_SetLow 、LED_ToggleはMCCによって作られたGPIOのAPIで、MCCが作成したヘッダーファイル内に記載されています。

まとめ

今回は、Microchip社のマイコンを知らない方・開発を簡単に行いたい方に向けて、Microchip社の開発ツール“MCC”を使用してLEDの制御機能を例にGPIO設定、タイマ設定の実装の概要を説明しました。

MCCにはADCやDACの設定をはじめとして、PWMやCANなどのコード生成も可能ですので、一度お試しいただきたければと思います。

参考文献
MPLAB® Code Configurator v3.xx 日本語ユーザガイド

関連ブログ

32Bitのマイコンを簡単に開発するために、Harmonyを使用してMP3再生機能を実装してみました