はじめに
こちらのページでは、Microchip社の8bitマイコンの評価ボードであるCuriosity High Pin Count Development Board を用いてマイコンのプログラムを作成する方法を記載します。Microchpの開発環境には、コード自動生成ツールによってペリフェラルの初期化などがGUI上で簡単に行えますが、ここではハンドコードでのプログラムを作成します。
使用環境
評価ボード
![](/business/semiconductor/articles/261f71027cde3dcb7b1c893c7b34f962_3.png)
評価ボードは左にあります、Curiosity High Pin Count Development Boardを使用します。(https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/DM164136)
使用マイコン
今回、使用するマイコンは8bitマイコンのPIC18F27Q10を使用し、パッケージはSPDIPの28ピンタイプを
使用しています。
開発環境
開発環境はMPLAB® X IDEを使用し、コンパイラはMPLAB® XC8 Compilerを使用しています。
今回使用したそれぞれのVerは、MPLAB® X IDEが5.40、MPLAB® XC8 Compilerが2.20を使用しています。
MPLAB® X IDE
https://www.microchip.com/mplab/mplab-x-ide
MPLAB® XC8 Compiler
プログラム概要
PIC18F27Q10のTimer0 Moduleを用いて評価ボードに搭載されているLEDを500ms間隔で点滅させるプログラムを作成します。Timer0 Moduleはカウントモードとして、8bitまたは16bitモードが選択できますが、今回は16bitモードを使用します。Timer0を使用して、10msごとに割り込みを発生させます。10msの割り込みを使用してLEDを500ms間隔で点灯、消灯を繰り返します。
![](/business/semiconductor/articles/Port_1.png)
Curiosity High Pin Count Development Board上のLEDは、左図のようにポートRA7が接続されており、ポートをHighにすることでLEDが点灯し、ポートをLowにすることでLEDが消灯します。
プロジェクトの作成
MPLAB® X IDEを使用してプロジェクトを作成します。
MPLAB® X IDEを立ち上げ、「File」メニュー → 「New Project」をクリックします。
![](/business/semiconductor/articles/dce0f2d58fc0fc4c32cc524a73c3bf46_2.png)
New Projectボックスが立ち上がるので、「Microchip Embedded」→「Standalone Project」を選択 →「Next」をクリックします。
![](/business/semiconductor/articles/7b3e44950db3fb63ca3791afa1eeca9f_3.png)
次にデバイスを選択します。「Device」部分に今回使用するマイコンである、「PIC18F27Q10」と打ち込み、「Next」をクリックします。
![](/business/semiconductor/articles/1ca989637cd75aa4270449506c8e7943.png)
次にCompilerの選択をします。MPLAB® XC8 Compilerをインストールしている場合、画面上に「XC8(v2.20)」と表示されるので選択し「Next」をクリックします。
![](/business/semiconductor/articles/06a57d8d5fdac538b1231bc7b423c79a.png)
プロジェクトの保存場所とプロジェクト名を決めます。「Project Location」の「Browse」をクリックし、任意のプロジェクト格納場所を選択します。(ここではCドライブの下に「Lab」というフォルダーを作成し、ここをプロジェクト格納場所にしています。)
「Project Name」にプロジェクト名を入れます。(ここではLabとしています。)
「Encoding」を「Shift JIS」にすることによって、コメントなどに日本語が使用できます。「Finish」をクリックするとプロジェクトが作成されます。
![](/business/semiconductor/articles/3584f340774d5a8d3d9a450e1459ab13.png)
メインプロジェクトの選択
MPLAB® X IDE上にプロジェクトが複数ある場合、どのプロジェクトで作業をおこなうかを選択する必要があります。作業するプロジェクトを選択するには、「Production」メニュー →「Set Main Project」→作業をするプロジェクト(今回はLab)を選択します。
MPLAB® X IDE上に他のプロジェクトが無い状態で、プロジェクト作成を行った場合は上記の操作は必要ありません。
![](/business/semiconductor/articles/f010431c0d1fa4ad73ffe01ac2dd759b_1.png)
Configuration Words
PICマイコンにはConfiguration Wordsというものがあります。これはマイコンの電源投入時に使用するオシレータなどの設定をすることができます。PIC18F27Q10では初期設定は外部オシレータを使用する設定となっていますが、Curiosity High Pin Count Development Boardには外部オシレータは搭載されておりませんので、内蔵オシレータを使用して動作させます。
そのため、Configuration Wordsの変更が必要となります。MPLAB® X IDEを使用することで、Configuration Wordsの変更が簡単におこなえます。Configuration Wordsの変更は、MPLAB® X IDEの「Productoin」メニュー →「Set Configuration Bits」→「Configuration Bigts」を選択します。
![](/business/semiconductor/articles/317256aa0bd75f28af73521ff00eea58_1.png)
画面の下部分に「Configuration Bits」が表示されます。
![](/business/semiconductor/articles/Configuration%20Bit2.png)
今回の変更は、「FEXTOSC」、「RSTOSC」、「WDTE」を変更します。「Option」列のプルダウンメニューより、「FEXTOSC」を「OFF」、「RSTOSC」を「LFINTOSC」、「WDTE」を「OFF」にします。
この設定によって、電源投入時マイコンは内蔵低速オシレータで動作し、WDTが禁止された状態で動作を開始します。上記の設定が済みましたら、「Generate Source Code to Output」をクリックすることで、設定がコードとして表示されます。
表示されたコードをすべてコピーし、「ConfigurationBit.h」というファイルを作成しこのファイルにコピーしたコードを貼り付けます。
![](/business/semiconductor/articles/Configuration%20Bit3.png)
作成ファイル
今回作成したソースファイルとヘッダーファイルは下記になります。
・ソースファイル
main.c :メインプログラム
SystemInit.c:初期化処理プログラム
timer.c :タイマ関係プログラム
interrupt.c :割り込み処理プログラム
・ヘッダーファイル
define.h :定数などの宣言
ConfigurationBit.h:Configuration bitの設定
SystemInit.h :SystemInit.cで使用される関数宣言
timer.h :timer.cで使用される関数宣言
これらのファイルは作成したプロジェクトフォルダー(Lab.xフォルダー)内に、「src」という新しいフォルダーを作成し、「src」フォルダー内に保存しています。
レジスター名などのヘッダーファイルは下記ヘッダーファイルを記述することで使用できますので、各ソースファイル内でincludeします。
#include <xc.h>
以下は各ソースファイルで行っている処理を簡単に示したものになります。
■main.c ファイル
![](/business/semiconductor/articles/2aeacb4c8554aaf07a10976a7f81cdb8_2.png)
■SystemInit.c ファイル
![](/business/semiconductor/articles/f9d2af67cc6f25fed3a1201be21b06d5_4.png)
■timer.c ファイル
![](/business/semiconductor/articles/c8270656d73dab3443af13f29b3d6b4e.png)
■interrupt.c ファイル
![](/business/semiconductor/articles/fb9886675239004a57cd6ed92a25118f.png)
割り込み処理
割り込み処理は下記の関数を用意することで、ペリフェラルの割り込み状態になった場合、この関数に処理が渡されます。すべての割り込みがこの関数に入ってきますので、割り込みフラグ(PIRxレジスタ―)を確認し、対応する割り込みを確認します。
void __interrupt() Interrupt_routine( void )
{
}
プロジェクトへのソースコード追加
プログラムファイルが完成しましたので、プロジェクトに作成したソースファイルを追加していきます。
MPLAB® X IDE上で作成したプロジェクトの「Source File」を右クリックし「Add Existing Item」をクリックします。
![](/business/semiconductor/articles/d73db2337e757885d27def9e24a0b8bf.png)
保存したソースファイルがあるフォルダーを選択し、「interrupt.c」、「main.c」、「SystemInit.c」、「timer.c」を選択し「Select」をクリックします。
![](/business/semiconductor/articles/23989009cfb161ad091cabccb0fc1d8b.png)
「Source Files」に選択したソースファイルが追加されたことを確認します。
![](/business/semiconductor/articles/40a79109419e771c9d33a882d2d20e38.png)
ソースファイルのビルド
ソースファイルが追加できましたので、次にビルドをおこないます。
「Production」メニュー →「Build Main Project」をクリックするとビルドが開始されます。
![](/business/semiconductor/articles/c51410b0098b72d13658054be028ce91_1.png)
C言語の構文エラーなどがない場合は、下図のように「BUILD SUCCESSFUL」が表示されビルドが完了します。
![](/business/semiconductor/articles/008cdf87453c1a49c960c884b63dfd9d_1.png)
デバッグ
デバッグを開始したときに、main関数の最初の1行目で動作がStopするようにオプションを設定します。(この設定は1回おこなうと今後は保存されていますので、次からデバッグをおこなう場合は必要ありません。)
「Tools」メニュー →「Options」をクリックします。
![](/business/semiconductor/articles/1a1329feca49a34ce372614b86ad148d_1.png)
「Options」ボックスが表示されるので、「Embedded」→「Generic Settings」タブの「Debug Reset@(Following reset action during paused debug session)」を「Main」、「Debug Startup(Following debug project action)を「Halt at Main」にし「OK」をクリックします。
![](/business/semiconductor/articles/6c1a9cf4e13a3fe653b1cfa72f4192d8_1.png)
次にデバッグをおこないます。
最初にデバッガの選択をおこないます。今回使用します、Curiosity High Pin Count Development Boardにはオンボードデバッガーが搭載されておりますので、パソコンとCuriosity High Pin Count Development BoardをUSBで接続するだけでデバッグができます。
パソコンとCuriosity High Pin Count Development BoardをUSBで接続します。
![](/business/semiconductor/articles/a671d32ae194c49053766f3697fda593.png)
デバッガーの選択は、MPLAB® X IDEで作成したプロジェクト「Lab」を右クリックして、一番下の「Properties」をクリックします。
![](/business/semiconductor/articles/36061efff8279436bffe370b2424d56f.png)
「Project Properties」ボックスが立ち上がりますので、「Categories」欄から「Conf:[default]」を選択し、「Connected Hardware Tool」のプルダウンメニューから「Starter Kits(PKOB)-XXX」を選択し、「OK」をクリックします。
![](/business/semiconductor/articles/7582601fa872e807db69978ca56cb87b_1.png)
デバッグを開始するには、「Debug」メニュー →「Debug Main Project」をクリックします。
![](/business/semiconductor/articles/d432de71653588f51d5ce0ae6c4f721d_1.png)
デバッグ開始位置が、main関数の1行目となりプログラムがStopします。
![](/business/semiconductor/articles/f0041167f33db6395302f1564c93cc2b_1.png)
「Debug」メニュー →「Continue」をクリックするとプログラムが動作し、LEDが500msで点滅を繰り返します。
![](/business/semiconductor/articles/d9b8844222ba4cac0eb740f21ec514c4.png)
今回使用しましたプロジェクトは以下よりダウンロード可能です。
注意事項
このページに記載している内容及びダウンロードできるプロジェクトに関して、正確な記述に努めておりますが、内容に対して何らかの保証をするものではありません。
開発ツールやコンパイラのバージョンによって、操作が異なる場合もあります。
プロジェクトファイルダウンロードはこちら
お問い合わせ
本記事に関してご質問などがありましたら、以下よりお問い合わせください。
Microchipメーカー情報Topへ
Microchipメーカー情報Topページに戻りたい方は、以下をクリックしてください。