Microchip MLAのCDCデモを動かしてみる

投稿日 2016/04/05

しばらくPICから離れていたらMicrochip®社のPICファームウェアの開発環境MPLAB X IDEやアプリケーション・ライブラリが変わっていました。

 

MPLAB X IDEは起動時のオープニング・イメージがガラッと変わりましたが、これまでのMPLAB X IDEからは大きな変更はないようです。今回使用したのはv3.26です。(現時点での最新)

Microchip MPLAB X IDE v3.26

オープン・イメージが一新された

Start Page

プロジェクト USB Device - CDC Basicをオープン

 

アプリケーション・ライブラリは、現在Microchip Libraries for Applications(MLA)という名称になっており、中身も大きく変わっています。IDEはMPLAB Xをサポートしているようですが、レガシーMPLABでは使えなようです。使用したMLAはv2015_08_10 windows版です。これも現時点で最新版です。

 

MPLAB X IDE v3.26, MLA v2015_08_10ともに、Microchip社のホームページから無償でダウンロードできます。いずれもライセンス・アグリーメントを読んでおく必要があるのは言うまでもありません。

 

今回はこのMLAに含まれるUSBフレームワーク CDCクラスの基本デモプログラム CDC BasicをMLAB X IDE下でコンパイルし、デモボードに書き込んで動作を確認してみました。CDC Basicはよく使われる仮想COMポートのデモです。

 

使用したデモボードは、PIC18F Starter Kitと、PIC24F Starter Kitです。

 

手順

 

MPLAB X IDEとMLAをMicochip社のホームページからダウンロードします。

 

今回使用したデモボードはPIC 18とPIC 24用ですので、CコンパイラXC8XC16もダウンロードしておきます。

 

MLAのダウンロード場所はどこでもいいのですが、トップをC:\にしたとすると、

 

フォルダ C:\microship\mla\v2015_08_10が作られ、その下に以下のような階層のフォルダ(一部を表示)が作られます。

 

apps

     crypto ...

     fileio

     gfx

     miwi

     smart_card

     smartphone

     tcpip

     usb

          device

               ...

               cdc_basic <- このデモプログラムを使用

               ...

          factory_demo

          host

bsp

doc

framework

utikities

...

 

フォルダappsにはデモプログラムが含まれています。USB、tcp/ip、fileio、gfx、miwiなど各種サンプル・アプリケーション群です。

 

フォルダbspはMicrochip社のさまざまなデモボード用のハードウェア・サポートファイル群です。exp16(エクスプローラー16)とそのPIM(Plug In Module)、各Starter Kitなどです。今回使用するPIC18F Starter KitとPIC24F Starter Kitも含まれます。各ボードに実装されているボタンやLED、ポテンショメータ、LCDなどのハードやクロック定義などが行われています。

 

フォルダframeworkには、USBやtcp/ipなど各アプリケーションに必要なモジュール群が含まれています。

 

今回はUSB cdcクラスのデバイスのデモプログラムを使用しますので、apps\usb\device\cdc_basicまるごとのコピーをその場に作っておきます。間違って壊してしまった時の用心です。

 

たとえば、

cdc_basic <- こちらをコンパイルする

cdc_basic_org <- 念のためオリジナルのコピーを残しておく

 

デモプログラムは、MLAのフォルダ郡における位置が重要です。cdc_basicのみをMLA外に移動させたりすると、コンパイルがうまくいかず苦労します。

 

cdc_basicのフォルダ構造は以下のようになっています。(一部を表示)

 

cdc_basic

     firmware

          MPLAB.X <- MPLAB X IDEでこれを指定してプロジェクトを起動

          src

               ...

     utilities

          bin

              dynamic_cdc_demo.exe  <- windows側プログラムの実行ファイル

          inf

          src

 

MPLAB X IDEを起動し、MPLAB.Xを指定してプロジェクトをオープンします。

 

このプロジェクトには、前述したようなさまざまなデモポードが考慮された構造になっています。個別にコンパイルできるようになっているのでそのままでもよいのですが、保有していないデモボード用のがあっても邪魔なだけですので、PIC18F Starter KitとPIC24F Starter Kitを残して、他はすべて削除しました。

 

MPLAB X IDE画面の左上にあるProjectsタブの先頭に表示されているプロジェクト名「USB Device - CDC - Basic」を右クリックして、「Properties」をクリックすると表示される「Project Properties - USB Device - CDC - Basic」の画面の左下にある「Manage Configurations」をクリックし、消すConfigurationを選択して、Removeします。ついでですが、残したConfigurationが複数(今回は2つ)ある場合は、どれをコンパイル対象にする(Activeにする)かを「Set Active」で指定できます。ここでConfigurationを残しても、ファイルは残るので、Projectsタブにある不要なデモボードのフォルダやファイルを右クリックの「Remove from Projects」で消しておきます。

 

PIC18F Starter KitとPIC24F Starter Kitのみを残すと以下のような画面になります。

MLA_demo_cdc_basic00.jpg
MLA_demo_cdc_basic01.jpg

Microchip MPLAB X IDEの画面

MLA USBフレームワークCDクラス Basicデモプログラムのプロジェクト

PIC18F Starter KitとPIC24F Starter Kitのコンフィグレーションのみを残した

両kitのコンフィグレーションは別々にコンパイルできる

 

windows PCとデモボードをUSBケーブルでつなぎ、IDEの「make and program deviceボタン」をクリックしてActiveなコンフィグレーション(上の画像ではPIC24F Starter Kit)をコンパイルし、hexファイルをデモボードに書き込みます。一連の動作はエラーがなければ自動で流れます。

 

今回使用したデモボードPIC18F Starter KitとPIC24F Starter KitはDebugger兼書き込み器が搭載されているため、pickit3のような書き込み器は不要です。IDEもちゃんとサポートしてくれています。

 

実行

 

書き込みが無事終了したら、ターゲットPICのUSBポート(Debuggerではない方)でWindows PCとデモボードをつなぎます。つなぐとすぐにwindowsに新たなCOMポートが認識されますので、デバイスマネージャで確認します。COMポートのボーレート等はデフォルトの9600のままで動きます。

 

COMポートが認識されていることを確認したら、windows側でdynamic_cdc_demo.exeを実行します。

 

このデモプログラムはCDCクラス・デバイスの基本のみですので、dynamic_cdc_demo.exeの画面から入力した文字のAscii Codeでの次の文字をエコーします。たとえば"1"を入力すれば"2"を返すという具合です。また、ボード上にプッシュスイッチがあれば、押すと、"Button pressed"と表示します。

 

以下はPIC18 Starter Kitでの実行の様子です。

MLA_demo_cdc_basic02.jpg

実行中のPIC18F Starter Kit(上)とPIC24F Starter Kit

PIC8F Starter Kitの下のUSBソケットはDebugger、

上のUSBソケットがターゲットPIC18のUSBポート

MLA_demo_cdc_basic03.jpg

windows側dynamic_cdc_demo.exeの画面

PICがCOM7として認識されている

ABCDE1234と入力し「Send Data」をクリックすると

BCDEF2345とエコーする。

ボード上のプッシュボタンを押すとButton Pressedと表示する。

 

 

MLAはとても複雑ですし、デモプログラムはMicroship社が提供している各種デモボードそれぞれで使えるように作られているため、少々難解です。しかしMLAを使いこなすにはデモプログラムから入るしかないかと思います。fileioやUSBのMSDクラス、CDCクラスなどのデバイス/ホスト・アプリケーションを作るにあたって避けて通れない機能が含まれているため、使いこなしたいものですね。 

 

 

 

 

 

 

(JF1VRR)