LoginSignup
1
1

More than 1 year has passed since last update.

PIC開発 (PIC16F19155 でLチカ)

Last updated at Posted at 2021-09-18

PICの開発環境は改良が続けられている。メーカーであるmicrochipが供給するツールやライブラリの品質も大きく向上し、以前のものとはまったくの別物でC言語での開発も十分に可能である。また、PICはArduinoなどと比べ価格や消費電力など有利な点も多い。この記事では、マイコンにPIC16F1955 開発環境にMPLAB X IDE、書き込みツールにMPLAB SNAPおよびC言語(xc8)を使用した開発手法について解説する。まずはLEDをチカチカさせる。

入手方法

私は次のサイトで入手した。

種別 品名 入手先 URL
マイコン PIC16F19155 秋月電子 https://akizukidenshi.com/catalog/g/gI-13504/
書き込みツール MPLAB SNAP 秋月電子 https://akizukidenshi.com/catalog/g/gM-13854/
IDE MPLAB X IDE microchip https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide
C言語 xc8 microchip https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-xc-compilers

この他に抵抗、ブレッドボード、LED、コンデンサー、タクトスイッチ、ICクリップなども秋月電子で購入している。

回路図

実際にはRC1に接続したLED1個しか使わないが、LED2個とSW1個およびPIC構成される回路図を作成した。また、MLABO SNAP に接続するためのJ1を記載した。水晶発振器などもないこともあって非常にシンプルである。

image.png

ソフトウェアのインストール

私はxc8⇒MPLAB X IDEの順でインストールした。MPLAB X IDEをインストールしたあと、MPLAB X IDEのメニューTools⇒plaginから、MPLAB Code Configuratorをインストールする。MPLAB Code Configurator(MCC)は強力なツールでサンプルソースが不要なほどにコード生成を支援してくれる。

MPLAB SNAP (書き込みツール)

MPLAB SNAPは書き込みの他にステップ実行や変数Watchなどのデバックができるハードウェアである。パソコンとはmicro USB端子を用いて接続し、PICとはジャンパーワイヤなどを用いて接続する。配線を下表にまとめる。コンデンサーや抵抗を挟まずに直接接続する。電源は、マイコン側を切ってからMPAB SNAPを切る。PICKIT4とは異なり電力はMPALB SNAPからは供給されない。

MPLAB SNAP PIC16F19155 備考
1 MCLR 1 MCLR 通常実行時には外さないと動かない場合がある。
2 Vcc 20 Vcc MPLAB SNAPからは供給されないので、別途電源が必要
3 GND 19 GND
4 PGD 28 ICSPDAT
5 PGC 27 ICSPCLK
6NC - 接続しない
7 - - 接続しない
8 - - 接続しない

プロジェクトの作成

MPLAB X IDEからFile⇒NewProjectで表示されるダイアログに従いプロジェクトを作成する。
1.Standalone Project
2.Device >PIC16F19155選択
Tool> Snap-XXXXXを選択(XXXXXはシリアル番号?)。表示されない場合は、MPLAB SNAPとの接続に問題がある。
3.XC8 (v2.32)を選択
4.ProjectName>プロジェクトの名前をつける。ここではltikaにした。
最後、Finishボタンででプロジェクトがでる。

PICの設定

次にMCCを使って、PICの設定を行っていく。MCCのアイコンがない場合は、プラグインの設定を確認する。

動作周波数の設定

今回は内蔵クロックを利用し32MHzで使用するので、次画像のようにCurrent System Clockが32MHz (2x PLL)になるように設定する。
image.png

入出力の設定

MCCを用いて回路図の通りRC0 RC1を出力、RC4入力に設定する。

image.png

pullupの設定

RC4は内部pull upを設定する。内部pull upを使う場合はWPUにチェックを入れる。WPUはweak pull upの略。

image.png

コードジェネレート

あとは、Generateボタンをクリックすると、ここまでのPICの設定を行うコードが生成されプロジェクトに追加される。

image.png

ソフト

次にLEDをチカチカさせるコードを記載する。

image.png
のmain.cをクリックする。

image.png

main関数のwhileブロックの中に、LEDを光らせるコードを書く。

    while (1)
    {
        // Add your application code
        IO_RC1_SetHigh()  ; 
        __delay_ms(500);      
        IO_RC1_SetLow()  ; 
        __delay_ms(500);        
    }

このコードは500ms(=0.5秒)ごとにRC1のLEDを点滅させる。IO_RC1_SetHigh()およびIO_RC1_SetHigh()はRC1のデジタル出力を行うマクロで、MCCで生成されるpin_manger.hで定義されている。このファイルには他にもIO_RC3_Toggle() なども定義されているので一読するとよい。__delay_msは引数分のms間停止するマクロである。pic.hで定義されおり、xcに組み込まれている_delay関数を呼び出す。

実行

画面の上部 ミドリ三角ボタンの再生ボタンをクリックするとPICに転送され実行される。
image.png

実行中の画面
image.png

次回の予定

タクトスイッチを使った例を紹介する。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1