今回はMPLABXの概要を説明します。
今回の説明
回路を完成させるために以下の順序で説明しています。このエントリの説明は(3)「プログラムを作る」の部分の開発用ソフトウエア準備のステップになります。
- LEDを電池と抵抗のみで光らせる回路を組み立てる
PICマイコンの回路を組み立てる前に、まずはブレッドボードに慣れておくことにします。電池、抵抗、LEDのみを使って、ブレッドポード上に回路を組んでLEDを光らせてみます。ここでは電池、抵抗、LEDの回路記号と回路図の説明をして、回路図からブレッドボードに組む方法を説明します。まずはブレッドボードに慣れましょう! - PICマイコンのベース回路を組む
はじめの一歩の回路は、LEDを1秒に1回光らせるだけの回路です。この回路をブレッドボードに組み立てます。 - プログラムを作る
LEDを1秒に1回光らせるプログラムを作成します。 - PICマイコンに書き込んで動作させる
作成したプログラムをPICマイコンに書き込んで動作させてみます。 - ベース回路にスイッチを追加
LEDの点滅をスイッチで開始させるために、ベース回路にスイッチを追加します。これまではLEDを光らせる、という出力制御をしましたが、今度はPICマイコンで外部から信号を入力する方法を確認します。 - ベース回路にブザーを追加
スタートスイッチ付きの、1秒に1回光らせる回路を作りましたので、ブザーを追加してタイマーとして完成させます。
開発環境概要
これから、macOSまたはWindowsでPICマイコンのプログラムを作成し、PICマイコンにプログラムを書き込んで、前回までに完成させた回路を動作させてみます。今回と次回で、以下の項目について説明します。
- PICマイコンのプログラム開発環境の概要説明
PICマイコンプログラムの開発環境はMicrochip社から無償で提供されているMPLABX IDEというソフトウエアを使用します。このソフトウエアはインストーラを使用してインストールしますが、MPLABX IDEインストール後、コンパイラも別途インストールする必要がありますので、まずはPICマイコンの開発環境がどうなっているのか、概要を説明します。 - 開発環境インストール前の準備
他の多くのアプリ開発環境と同様、ひとつのPICマイコンプログラムは、ひとつの「プロジェクト」と呼ばれているもので管理・開発します。プロジェクトのファイルはデフォルトではユーザフォルダのすぐ下に「MPLABXProjects」という名称でフォルダが作成されます。フォルダの場所や名称を変更したい場合は、どのような名称でどこに置くか決めておきます。 - 開発環境のインストール
Microchip社のサイトからMPLABX IDEとコンパイラをダウンロードしてインストールします。 - プログラム開発の流れ
ブレッドボード回路の動作確認をする前に、PICマイコンのプログラム開発の流れを説明します。 - プロジェクト作成・プログラム作成・ビルド・書き込み・動作確認
1秒に1回発光ダイオードを光らせるプログラムをビルド、PICマイコンに書き込んで動作確認をします。前回までに作成したブレッドボード回路が動作するかの確認を目的として、まずはプログラムをそのままコピペして動作確認します。最初はプログラム自体の解説はせず、まずはプログラム開発の流れを確認いただくことを目的としています。
ということで、まずは開発の最初から最後まで、具体的に手を動かしてどんな感じか体験してみるのがよいと思います。途中ちょっとぐらいわからないことがあっても問題ありません。まずは全体の流れを知ることが大切です。プログラムの中身は動作確認が終わったら詳細に説明していきます。
PICマイコンのプログラム開発環境の概要
先に説明しました通り、PICマイコンのプログラムはMicrochip社から提供されている無償の “MPLABX IDE” というソフトウエアを使用して開発します。
注意点としては、MPLABX IDEをインストールしても、MPLABX IDEの本体と、アセンブラ(プログラミング言語の一種)しかインストールされません。今回は、C言語でプログラムを開発しますので、Cコンパイラが必要になりますが、MPLABX IDEをインストールしただけではCコンパイラはインストールされていない状態です。別途Cコンパイラをダウンロード、インストールする必要があります。
PICマイコン用のCコンパイラは、XC8、XC16、XC32、という3種類がMicrochip社から無償で提供されています。インストーラは別々ですので、XC8、XC16、XC32をすべてインストールする場合、インストーラを3つ実行する必要があります。
このようにCコンパイラにはXC8、XC16、XC32というように3種類ありますが、どのコンパイラを使うかはPICマイコンの型番によって決まります。例えば、今回使用しているPIC12F1822は8ビットマイコンですので、XC8コンパイラを使用することになります。XC16、XC32は、より高機能なPICマイコン用のコンパイラです。
また、これらのコンパイラは無償版ライセンス以外にも有償版ライセンスがあります。
ここで無償版と有償版の違いについて簡単に説明します。PICマイコンを動かすには、MPLABX IDE上でC言語プログラムを作成し、作成したフログラムをXC8コンパイラでコンパイルします。コンパイルするとPICマイコンに書き込むコードが生成されますので、このコードをPICkitを介してPICマイコンに書き込みます。
無償版と有償版の違いは、この生成されるコードがどの程度最適化されているかになります。当然、有償版の方が生成されるバイナリコードはサイズが小さく、効率もよくなっていますが、ただ、無償版でも個人ユースでは特に問題ありません。
なおXCコンパイラですが、年に数回アップデートがあります。この入門シリーズ記事ではXC8コンパイラしか使いませんので、XC16、XC32コンパイラは必要になったらインストールすればよいと思います。今回のインストール作業で一緒にインストールしても、将来使う状況になったときに結局新しいバージョンがリリースされていて、再度インストール、という可能性が高いためです。
今回のインストールが終わると、以下のようなソフトウエア構成となります。なお、XC16、XC32をインストールした場合は、それらも追加になります。
インストール前の準備
これから、MPLABX IDEとXC8コンパイラのインストールを行います。なお、インストール後はプログラムを作成するわけですが、作成するプログラムをどこに格納するか決めておきましょう。
他の多くのソフトウエア開発環境と同様、MPLABX IDEでは、ひとつのPICマイコンプログラムはひとつの「プロジェクト」というもので管理・開発します。プロジェクトのファイルはデフォルトではユーザフォルダのすぐ下に「MPLABXProjects」という名称でフォルダが作成されてしまいます。
ユーザフォルダのすぐ下はすでにいろいろ整理している状況であれば、プロジェクトファイルは「書類」フォルダ(macOS)や「ドキュメント」フォルダ(Windows)に作成したいかもしれません。
そこで、以下のように「書類」フォルダ(macOS)あるいは「ドキュメント」フォルダ(Windows)の下に「MPLABX」という名称でフォルダを作成、ここのプロジェクトファイルを格納していくことにします。なお、デフォルトの方がいい、という方は特に作業は必要ありません。また、「書類」「ドキュメント」フォルダ以外で作業したい場合は、以下の説明をご希望のフォルダに置き換えて作業してください。
インストーラダウンロード
MPLABX IDEとXC8コンパイラのインストーラをダウンロードします。
最初にマイクロチップ・テクノロジー・ジャパンのサイトにアクセスします。
トップページの「製品情報」にマウスカーソルを合わせます。
製品メニューが表示されますので、「MPLABX IDE」をクリックします。
「MPLABX IDE」をクリックすると、以下のような本家Microchip(microchip.com)のMPLABX IDEダウンロードページが表示されます。
このページの下の方に行くと、以下のようなタブメニューが並んでいるところがありますので、ここの「Downloads」タブをクリックします。
MPLABX IDEのダウンロードリンクが表示されますので、この中からmacOS用あるいはWindows用のMPLABX IDEインストーラをダウンロードします。
なお、Cコンパイラも後でインストールしますので、以下の手順でダウンロードしておきます。
このページの上の方に戻り、上の方にあるメニューの「MPLAB」にマウスカーソルを合わせます。
以下のようにメニューが表示されますので、「MPLAB XC Compilers」をクリックします。
先ほどのMPLABX IDEの時と同様に、下の方にタブが並んでいますので、そのタブから「Downloads」タブを選択します。選択するとXCコンパイラのインストーラが表示されますので、XC8コンパイラのインストーラをダウンロードします。XC16、XC32は16ビットや32ビットマイコン用のコンパイラとなりますので、すぐにステップアップしたい、と考えているようでしたらインストールしておいてもよいと思います。
これで、MPLABX IDEとXC8コンパイラのインストーラのダウンロードができました!
MPLABX IDEのインストール
最初にMPLABX IDEのインストールを行いましょう。ダウンロードしたMPLABX IDEインストーラを実行してください。
macOS、Windowsともに標準的なインストール手順になります。インストール手順の途中でオプションの選択がありますが、デフォルトで進めて問題ありません。詳細な手順の説明は省略しますが、以下、注意点など説明します。
インストーラを実行すると最初に何やら英文が表示されますが、これは使用許諾契約画面です。先に進むには「I accept the agreement」を選択する必要があります。
また、MPLABX IDE本体のインストール先を指定する画面がありますが、基本的にはこのままにしておきましょう。理由ですが、この後インストールするXC8コンパイラもこのディレクトリ内にインストールされます。インストール先をバラバラにしてしまうと、自分でMPLABX IDEのディレクトリ設定を行う必要が出てきてしまいます。
インストール途中に、以下のようなインストールするアプリを選択するダイアログが表示されます。
余計なアプリがインストールされないか、ちょっと心配になるかもしれませんが、これは両方とも選択状態のままで問題ありません。「MPLABX IDE」は、これからPICマイコンのプログラムを作成したり、PICマイコンに書き込んだりする統合開発環境と呼ばれているアプリケーションです。「MPLABX IPE」はすでにビルドしたプログラムがある場合、それをPICマイコンに書き込みアプリで、この入門シリーズでは使用しませんが、あとあと必要になってくるかもしれませんのでインストールしておきます。
また、3番目の項目は、MPLABX IDEの利用状況のデータをMicrochip社に送信するかどうかのチェックボックスです。ユーザ名やプロジェクトの情報は送付されませんので、問題なければこのままでもよいでしょう。
また、次の画面の設定は変更しないようにしてください(macOS)。
また、インストールが終わると、以下のようなインストール完了ダイアログが表示されます。
このダイアログでは、「XCコンパイラはインストールされないので、別途インストールしなさい」とか「Microchipのサイトに行くと情報がありますよ」などというメッセージが表示されています。チェックポックスをONにしておくと、このダイアログを閉じた後に該当のマイクロチップ社のサイトが開かれてしまいますので、必要なければチェックボックスはすべてOFFにします。
またWindowsの場合、「MPLAB driver switcher」というアプリもインストールされていることがあります。このアプリは、「MPLABX IDE」と以前リリースされていた「MPLAB Version8」が使用するUSBなどのデバイスドライバが異なるため、その選択を行うためのものです。MPLABXのみをインストールしている場合は必要ありません。
これでMPLABX IDEのインストールが完了しました。引き続きCコンパイラのインストールに進みます。
XC8コンパイラのインストール
ダウンロードしたXC8コンパイラのインストーラを実行してインストールします。
先ほどのMPLABX IDEと同様に、macOS、Windowsともに標準的なインストール手順になります。インストール手順の途中でオプションの選択がありますが、デフォルトで進めて問題ありませんので詳細な手順の説明は省略します。
なお、インストール途中でライセンスの確認ダイアログが表示されます。無償で使用しますので Free を選択した状態で進めてください。
また、インストール先を指定する画面では、MPLABX IDEの時と同様に特別理由がなければこのままにしておきましょう。勝手に変えてしまうと、あとで手動でいろいろ設定が必要になります。
次の画面はデフォルトで選択されていませんが、PCの他のログインアカウントでも使用する場合は “Apply settings to all users of this machine”をONにします。
また、”Add xc8 to the PATH environment variable”はONにしてください。(OFFの場合、ソースコードを表示したときにエラー表示が出るケースがあるようです)
これでXC8コンパイラのインストールが完了しました。
プロジェクトフォルダの設定
最後にプロジェクトフォルダを設定します。
最初の方で説明しましたが、デフォルトのプロジェクトフォルダは、ユーザフォルダ直下の「MPLABXProjects」フォルダに設定されています。これから、プロジェクトフォルダを最初に作成した「書類」フォルダ(macOS)、「ドキュメント」フォルダ(Windows)の下の「MPLABX」フォルダに設定します。
それでは、MPLABX IDEを起動してください。macOSの場合は、「アプリケーション」→「microcip」→「mplabx」→「バージョン番号」フォルダ→「mplab_ide.app」です。Windowsの場合はデスクトップのショートカット「MPLAB X IDE vx.xx」か、ショートカットがなければスタートメニューから起動します。
起動後、以下の手順でプロジェクトフォルダの設定を変更します。
macOSの場合
アプリケーションメニュー(MPLAB X IDEメニュー)の「Preferences…」を選択します。選択すると環境設定ダイアログが表示されますので、以下の手順で自分で作成したプロジェクトフォルダを指定します。
なお、MPLABXの初回起動時には、ユーザフォルダのすぐ下に「MPLABXProjects」というフォルダが作成されます。このフォルダは使用しませんので削除します。
Windowsの場合
アプリケーションメニューの「Tools」メニューから「Options」を選択します。選択するとオプション設定ダイアログが表示されますので、以下の手順で自分で作成したプロジェクトフォルダを指定します。
なお、MPLABXの初回起動時には、ユーザフォルダのすぐ下に「MPLABXProjects」というフォルダが作成されます。このフォルダは使用しませんので削除します。
これでPICマイコンのプログラムを開発する準備ができました。
次回は、MPLABX IDEでの開発がどのような感じで進めるのか、全体像をつかむために作成したブレッドボードを実際に動作させてみます。
更新履歴
日付 | 内容 |
---|---|
日付 | 内容 |
2016.8.17 | 新規投稿 |
2018.11.22 | スクリーンショットを最新版に更新 |
2018.11.23 | 画像リンク修正 |
2022.1.31 | PICkitの対応マイコン確認方法の記述削除。Microchip社からの情報がなくなり、PICKitのファームウエアバージョンアップで最新マイコンに対応されているとのこと |
2023.4.5 | Add xc8 to the PATHのオプション設定記述を変更 |
いつもツールラボ様にお世話になっております。
MPLABの機能についてお聞きしたいです。
機能のなかに書き込みと読み取り機能があるのですが、この読み取り機能とはいったいどのような事をしてくれるんでしょうか?
自分で考えてた結果とは異なったため疑問に思いお聞きした次第です。
私が試してみたのは、12F1822にて簡単なプログラムを書き、新たに別のプロジェクトを作り読み取り機能を使いました。
結果pickit3のメモ欄には
The following memory area(s)will be read:
program memory:start address=0x0,end address=0x7ff
configuration memory
EEData memory
User Id memory
Read complete
と出ており読み取ってはいるようなのですが、プログラムがMPLAB上に出てくるわけではないのでしょか?
読み取り機能の正しい使い方について教えて頂きたいです。
よろしくお願いします。
ご質問どうもありがとうございます。
読み取り機能ですが、書き込みボタンの隣にあるボタンのことですよね。
このボタンをクリックすると、接続されているPICマイコンからデータを読み取ってくれます。
この読み取るデータですが、C言語のプログラムを読み取れるわけではありません。読み取るデータは以下のものになります。
・プログラムメモリのデータ
・Configurationメモリのデータ
・EEPROMのデータ
これらのデータは0x14FE354B…..などのような16真数のデータで読み取りされます。
決してC言語のプログラム自体が読み取れるものではありませんのでご注意ください。
また、書き込み時の設定によっては、これらのデータの読み取りは禁止することができるので、読み取り禁止の場合は読み取りこともできません。
例えば、メーカーが製品に組み込むPICマイコンのプログラムやデータを読み取れらては都合が悪い場合に読み取り禁止にします。
たびたびすみません。また雑談です。
eagleから派生してこのシリーズを読み始めました。
以前12F683を何度か使ったことがあり、そのときはPICKIT2を使っていました。MPLABもすっかり変わってしまい、今回Pickit3 を購入してトライしていますがTool Labsさんの解説がないとまた挫折してしまうところでした。
(PICKIT2でも1822に使えるのでしたか?)
それにしてもeagleもそうですがソフトのバージョンアップは良いことですが見た目からガラっと変わってしまうと年寄りにはツライです。
コメントどうもありがとうございます。
PICKIT2はデフォルトでは12F1822は書き込みできません。ただ、PICKIT2のファームを書き換えると新しいPICマイコンにも書き込みできるはずですが、PICKIT3をお持ちであれば、PICKIT3を使った方がいいと思いますよ。
確かにソフトはバージョンアップで色々と変わってしまいますので、バージョンアップのたびに戸惑ってしまいます。また最近のプログラミング言語はPython2→3や、Swift2→3のように結構変わってしまうこともあるので、最近は戸惑うことばかりです。
その点、電子回路は自然現象が対象なので仕様が変わらず安心して習得できるんですよね。自分の場合、電子回路系の書籍は中古で20年とか30年前の本を買うこともあります。それでも役に立つんですよね。
とは言っても、これからはハードとソフト、両方わからないと自由にものづくりができない世界になってきていますので、ハード、ソフト、バランスよく身につけて行きたいと思っています。