鳥なき里のマイコン屋(167) PIC16F18855、MPLAB IDEで吉例Lチカ

Joseph Halfmoon

遠い昔、ちょこっとだけ8ビットのPICマイコンを触ったことがありました。「PIC以前の」古いマイコンに比べたら「近代的」なマイコンであったのですが、データシートを読み込んでいないと戸惑う部分も多かった記憶。しかし「今どきの」PICマイコンは自動生成ツールなど充実して「楽ちん」だそうです。使ってみたいと思います。

※「鳥なき里のマイコン屋」投稿順Indexはこちら

PIC16F1xxxxマイコン

PICマイコンのマイクロチップ社は「新興」のマイコンメーカでした(今じゃ老舗?)何に比べてかと言えば、1970年付近にマイコンのルーツを持つ老舗のマイコンメーカ、インテル、モトローラ、テキサス・インスツルメンツ、東芝、NEC(以下略)といったメーカ群に対してです。老舗のマイコンメーカが32ビットマイコンを主軸に再編しつつある時期(1990年代)にマイクロチップ社は「あえて」8ビットマイコンで勝負をかけ、見事に業界を席捲したのでした。

それだけに当時としては開発環境も斬新で「お手軽」であったのです。しかし最新の32ビット・マイコンの開発環境の「お手軽」さに比べると今となっては若干重い感じがしてました(個人の感想っす。)

しかし、そんなことはない、PICマイコンの開発環境も進歩しておるのだ、という小冊子を拝見。以下であります。

トランジスタ技術2023年4月号の別冊付録 新定番PICマイコンPIC16F18857入門

これ読んで、ピピンと響くものがありました。しばらく前に購入したまま「PICはメンドイからまた後で」などと呟いてホコリを被っていた以下のパッケージであります。

EvaBoardPackage

先ほどのトラ技の小冊子の「推し」は、PIC16F18857という機種ですが、上記パッケージ内の開発ボードはPIC16F18855という同じファミリの下位機種?マイコンを搭載しております。じゃあやってみるってもんだろ~と。ラクチンらしいし。

MPLAB Xpress Evaluation Board

上記の箱に入っているのは以下の開発ボードです。

MPLAB® Xpress Evaluation Board

この”Xpress”という名のパッケージが「売り」にしているのが、MPLAB Xpress IDEという名のWebベースの開発環境を使えるよ、という点であります。最近はWebベースの開発環境も各社いろいろあります。マイクロチップ社もその流れにのって開発環境をリリースしたときにそのお試し用のボードとしてリリースしたボードじゃないかしら。

実をいえば上記のパッケージを購入したときに一度このWebベースの開発環境を使おうとしたのです。しかし、たまたまネットワークのご機嫌が悪かったのか反応が鈍く、あろうことが途中でハングしてしまったので、そこで中断。ホコリを被っていた、という次第。

今回はマイクロチップ社の開発ツールをローカルなストレージ上にインストールしてこのボードを使ってみたいと思います。

なお、このボードの特徴としては、パソコンのUSBポートに接続するとストレージデバイスとして認識されることがあげられます。マイコンのFlashにプログラムを書き込むのはそのストレージでオブジェクトファイル(HEXフォーマット)を書き込むことで行えます。他の廉価なマイコンボードとよく似ていますが、書き込み/デバッグ用のツールを用いる一般的なPIC用開発ボードとは異なっています。XPRESS_STORAGE

 

MPLABとコード自動生成ツールMCC

今回は、マイクロチップ社の以下の開発用IDEをPC(Windows 11)にインストールさせていただきました。

MPLAB® X IDE

IDEのバージョンは、v6.10です。なお、Windows11サポートは v6.05以降だそうな。

このIDEは8ビットPICだけでなく、マイクロチップ社の数多くのマイコンシリーズ全般に対応していますが、インストール時に何と何をターゲットにインストールするかは選択可能です。今回は8ビットPICのみをターゲットにしてインストールしてみました。

また上記のIDEの「売り」の一つがMCCというコード自動生成ツールが同梱されていることです。私が大昔の経験でメンドイと感じていた各種の設定などをGUIつかってやっつけてくれるツールみたいです。なお、古いバージョンのMPLABではMPLABインストール後、別途MCCの追加インストールが必要だったみたいですが、v6.10では最初から含まれていました。

一方別インストール必要であったのがCコンパイラ、XC8です。XCコンパイラについてはMPLAB X IDEノインストールの末尾に以下のような画面がでるので、一番下のXC compilers …というところにチェックを入れておくとXCコンパイラのWebサイトが開きます。

XCinstall

XCコンパイラには、Free版と、有料版があり、インストールの途中で以下のようにライセンスを選択可能です。XCchoice

有料版にすると性能が何割もアップするらしいです。この手の小規模のマイコンでは、有料版と無料版で性能が段違いというのは「あるある」じゃないかと思います。業務でガチなコードを書くのであれば有料版か。いやしかし、8ビットPICで性能気にするのであれば、アセンブラで書けばいいじゃん、という気がしないでもないです。

MPLAB X IDEでLチカしてみる

以下のような手順で、MPLAB X IDEでPIC16F18855用の吉例「Lチカ」オブジェクトコードを作成し、動作させることができました。

    • New projectを作る

とりあえず Standalone Projectということで、新規プロジェクトを作成します。newProject

    • デバイスの選択

ターゲットとなる PIC16F18855のFamilyは”Midrange 8bit”です。”Basic”じゃありません。Midrangeには大量なデバイスがありますがそこから探してセットします。Tool欄はアップロード/デバッグツールに何使うかの指定です。Expressボードは他とちがい、HEXファイルをストレージにドラッグ&ドロップで書き込めるのでTool欄はNo Toolとしてます。SelectDevice

    • MCCでコンフィグ

空の新規プロジェクトが出来たところで、上のツールバーをみると赤で囲んだところにMCCというボタンが現れてます(以下ではボタンを押した後なので灰色になってますが、押す前は青色です。)

3種類のMCCがあるようなのですが、今回ターゲットのPIC16F18855では左の2つが使えるようです。Melody と Classic です。以前からこのツールを使われていた方であれば慣れ親しんだClassicですが、当方、MCCは初めてなので、マイクロチップ社の最近の「推し」らしいMelodyの方を選択してみました。MCC_Melody

最初に、必要とする「コンテント」(オプショナルなライブラリなどのことみたい)を選択する画面が出ますが、最低限必要なものは皆含まれているようなので、今回は何も選択せずに Finish します。Required_Content

Finish後、何か動いているメッセージなどが表示され以下のような設定画面が現れます。この画面から各種の設定などをグラフィカルに行えるのですが、今回は吉例Lチカなので以下3操作のみです。

    1. パッケージをUQFN28に変更
    2. PORTAのビット0(ピンナンバ27)をGPIO出力に設定(エバボードのRA0端子にはD2というLEDが接続されております。エバボード回路図参照。)
    3. 以上設定後、左上の方にある「Generate」ボタンを押す

Settings

    • Lチカコード書き込み後ビルド

Generate後のエディタ画面のmain関数内に、以下のLチカコードを書き込みますです。

while (1)
    {
        RA0 = 1;
        __delay_ms(500);
        RA0 = 0;
        __delay_ms(500);        
    }

上記の吉例「Lチカ」コードを書き込みビルドした後の画面が以下に。ProjectWindow

SUCCESSFULと。そこに書いてあるパスを見に行くと確かにオブジェクトのHEXファイルが生成されております。

    • 開発ボードにオブジェクト書き込み、動作観察

HEXファイルをストレージ・デバイスにドラッグ&ドロップしたところが以下に。D2 LEDがゆっくりと点滅してます。

PIC16F18855_EvaBoard

工場出荷時には、4個あるLEDが忙し気に点滅しているオブジェクトが書き込まれていたので、なんかしんみりした感じになってしまいました。けどちゃんと書き込めてますわいなあ。吉例Lチカ成功。お次は?

鳥なき里のマイコン屋(166) Picoのビルドにみる、リンク後のファイル形式いくつか へ戻る

鳥なき里のマイコン屋(168) PIC16F18855で吉例Hello World. へ進む