MPLABXIDE

ここ数年は、高電圧高周波やコイル系の工作が多くて、PICマイコンに触っていなかったが、またPICをやることになった。

PIC16FからPIC18Fに進んだ時でも大きなストレスだったのに今回はPIC24Fへ進む。
開発環境も大きく変わる。MPLAB IDE ver8からMPLAB X IDEになって、開発言語もアセンブラからC言語に変わる。
PICでデータを取得して内部フラッシュ領域に書き込み、USBストレージとしてPCから読み込む。とてもアセンブラで書ききることはできないためC言語で取り組む。

昔もC言語(CCS-C)での開発にチャレンジしたことがあったけどその時は頓挫した。移行できなかった理由は以下のとおり
・プロジェクトファイルの複雑化でリンクエラー多発。(アセンブラ時代はmain.asmだけで事足りたのだ)
・数ある関数と便利なAPIを把握しきれなかった。
・関数がブラックボックスすぎて、頭でクロック時間を数えながらのタイミング出力が取れなかった。
・Cコンパイラもいくつかあって、サードパーティでバグ情報とかもあって、使いこなせなかった。

このへんをしっかり理解しながらやっていきたい。

事前に調べたことをメモしておく。2015年7月の情報。数年もすれば、またガラッと変わってリンクも切れまくるだろう(汗)

・開発環境
MPLAB X IDE ver 3.05 いやー巨大で複雑。その全容はもうわからない・・・
Cコンパイラ XC16: 日本語の情報を探しても古いもの(C18とか)ばかり出てくるので、あまり情報がない。
最新版なのでエイヤでインストール。
フリー版は最適化がいまいちに設定されているらしい。個人ユースなので不都合を感じるまでフリーで進む。ライセンスの仕組みもワークステーション版とかネットワーク版とかよくわからないので。
2015072502

・USB Bootloader
このプログラムをFLASHに書いておけば、PICライタ不要でUSBケーブル一本でPCと接続して、プログラムの書き換えなどができるらしい。PICマイコンボードなどでは Bootloaderが予め書き込まれている場合もある。

・USB Mass Strage Device
PICをUSBでPCにつなぐと、PCにはストレージとして認識されるというものである。
ストレージ領域はPICのプログラムFLASH領域が使用されるので、数kB程度の領域にしかならない。
しかし、PICで取得したセンシングデータをこの領域にファイル化しておけば、PCからすぐtxtデータとして読み出せ、エクセルで開くことでグラフ表示などもできそう。
PIC内蔵Flashを使う(Internal Flash)だけでなく、SDカードをつなぐこともできる(SD card reader/data logger)。ちょっと把握していないが、いちいちプログラムを考えなくてもPIC経由でSDカードの読み書きができるのだろう。 これは便利(使いこなせれば)
Microchip Libraries for Application(MLA)として提供される。インストールしたが、プロジェクトファイルにどう組み込んで、ソースからどう呼び出すのかはこれから勉強。

・PICは、PIC24FJ128GB202あたりをチョイス
高速ADサンプリング(200ksps程度)が必要なので、PIC18F(MAX 32.5ksps)では不可能という点において16bitのPIC24Fを選ぶ。高速ADCが必要でなければ、シンプルなPIC18Fを使いたかった。
そのほかに、ピン数は少なく、USB搭載(GB)、メモリは64k以上欲しいということで、この型番を候補にする。
近くの部品屋(マルツ)で売っていれば買うし、なければ通販で買おう。

・PIC プログラマ
ICD2、PICkit2は持っているが、PIC24Fは非対応なので、PICkit3を買おう。
PICkit3でUSBブートローダを書き込んだら、もう使わなくてすむかもしれない。
しかし、USBでつないだときに、プログラマとして認識するのか、ストレージとして認識するのか、スイッチで切り替えるようだが、ネットでもいろんな情報があってよくわからない。

・参考書
後閑さんのC言語ではじめる PIC24F活用ガイドブックがタイトル的にはばっちりだが、2007年出版ということで今の開発環境より大分古い情報なので他を探そう。時代があっていれば、MPLAB IDEの細かい操作まで教えてくれるので、とてもありがたい本だったはずなんだ。

・MPLAB X IDE Quick Start
Quick Startのページにしたがって、プロジェクトをCreateしてみる。
これだけ最初に設定する必要がある。
2015072504
実際のデバイスもプログラマもないので、適当に選択していく。
(この時に、PIC24Fや新しいPIC18FはPICkit2が対応していないことを知る)

プロジェクトが出来たら、File – New fileで、c main fileを作る。 file名 newmain.cで保存
ファイルにはすでに#include <stdio.h>とかint main()関数が必要最小限書かれている。少し頼もしい
2015072503

最近はExcel VBAばかりでC言語の構文なんてはるか昔に忘れてしまった。
int aaa = 100;程度だけ書いて、Build Main Projectを実行すると、OutPut Windowがちゃかちゃか動かして、
BUILD SUCCESSFUL (total time: 115ms)が出てきた。おぉビルド完了した。やったね。

新しい環境で何かやるときは、一気に10ステップ20ステップ進もうとして動かなくてどこか悪いのか探すより、まず動く状態(プログラム書き込める状態)でピボット踏むように半歩半歩進めていきたいものだ。

さぁC言語の勉強を始めて、USBモジュールのAPIを呼び出すところから初めていこう。