PICマイコン開発の落とし穴2009年07月16日 23時25分47秒

秋月のAKI-PIC2に同じく秋月のUSBマイコンボードPIC18F2550装着してPICKit2起動したところ

PICマイコンを使った開発の引き合いがあったため、調査しています。

実はPICマイコンの存在は知っていましたがこれまで使ったことがなかったからです。

秋月のPICプログラマ

この手のツールは秋月電子通商が得意分野なのでこちらからプログラマを調達することにしました。 秋月で扱っているのは大きく以下の2つ。

前者は秋月のオリジナルでPCとの接続はRS-232Cで、電源供給はACアダプタが別途必要です。RS-232Cケーブルなども付属せず、値段は5,700円。別途3点セットを購入した方が無難でしょう。これの値段が1,800円。 これに対して後者はMicrochipの純正のPICKit2と互換性を有していて、PCとの接続と電源供給はUSBです。USBケーブルが付属で、値段は6,800円。 初期投資の値段だけを絶対比較した結果、私はPICkit2互換品のAKI-PIC2プログラマボードを選択しました。

実験用のPICマイコン

プログラマだけあっても仕方がないので適当にマイコンも購入しました。同じく秋月で調達。

両方ともPIC18F2550です。これを選んだのは引き合いがあるシステムのマイコンがPIC18F2525ということで型番が近かったから。また、同じマイコンを2つ入手したのはマイコンボード完成品の説明書に「AKI-PICプログラマー Ver.4対応」という表現しかされていなかったからです。 単品のマイコンと互換だからプログラマは選ばないよね、ということを実験したくて比較のために買ったわけです。

結論としては完成品は問題なくPICkit2互換プログラマで認識できました。

ちなみに秋月での代表的な2製品を紹介しましたがMicrochip純正のPICkit2も入手できます

プログラマ用ソフト

プログラマのPC側のソフトは秋月で購入したボードに添付されています。これはMicrochipの「PICkit2」の書き込みソフトそのものです。添付のCD-ROMに格納されていたバージョンは「2.54」でした。 最新版はこちらからダウンロードできます。 これはこれで特に問題無しです。秋月のボードで初期起動そのものは問題ないことを確認しました。

開発環境

統合環境はMPLABというものを使います。これもMicrochip純正、かつ、無償です。 こちらからダウンロードできます。 これはまだきちんと使いこなせていません。理由はC言語コンパイラの選定について問題があるからです。

Cコンパイラ

Cコンパイラは基本的には無償ではありません。 但し、評価版やアカデミック版などで無償で利用できるものは用意されています。Microchipのリンクはこちらです。 他の紹介サイトや秋月の説明書ではMicrochipのCコンパイラには「Student」版が存在することになっていますが、現在はそのようなものはおいてありませんでした。「アカデミック版」が代わりに置いてあるようです。

Student版のダウンロードの説明を見ると名前とメールアドレスだけを登録するとダウンロード可能だったようですが、現在は私が試した限りは違います。 会社名や会社の住所も含めて何でもかんでも必須で入力する必要があります。アカデミック版のダウンロードでなんで会社名なんだとは思いますが、仕方がありませんね。

上記のリンクからは「HI-TECH C」と「MPLAB C」がダウンロード可能です。通常はこれらでとりあえず開発は可能なものと思われます。無償版でも基本的な開発には問題はないようです。まだ試していませんが・・・

有償でしか手に入らないCコンパイラ問題

PICマイコンを調査しているきっかけは案件の引き合いがあることでした。実は現状のCソースコードなども入手しているのですが、それが特定のコンパイラに依存している記述になっています。

そのコンパイラとはCCS Cコンパイラというものです。 これは評価版すら存在しない有償のコンパイラです。 これはもう、ひどいコンパイラで、開発元は自分のところの利益しか考えていません。 ソフトウェアの移植性や可搬性などという概念は持ち合わせていません。 極論するとC言語風の翻訳をするマクロアセンブラですね。 その問題は「組込み関数」にあります。

このコンパイラを使うことを決めれば非常に開発が簡単になることは確かですが、そのソースコードは組み込み関数を多用しているために、C言語の最大の利点である移植性を犠牲する結果となります。

標準ライブラリ関数の名前を使った特殊用途の機能やプリプロセッサ用の構文を使うことにより他のコンパイラで開発を行うようなケースでは移植性が失われてしまいます。

まんまとメーカの戦略にはまってコンパイラを購入するか、案件を断るかのどちらかで悩み中です。

あ、そうそう。有償だけでしか手に入らない、評価版すら存在しない、という表現をしましたが、実は「デモ版」というものは用意されています。でもこれはかなりの機能制限版で評価するのに値しません。コード出力の制限が低すぎてまだ試していませんが・・・

PICマイコンの業務案件との兼ね合い

業務として案件がたくさんあるような開発ならばコンパイラ位購入するのはやぶさかではないのですが、業務としてはほとんど期待できないです。請けても開発費の予算は数万円とかその程度の規模ですからね。

もともとPICというのは小ロットの中小企業の特殊な機器に使われる位で、開発もその企業の内部で済ませることが多いですから外注に発注する案件としては成立しません。

PICマイコンの一般的な情報

ちなみに、PICマイコンの一般的な情報はこちらのサイトが詳しいです。PICkit2などの情報もこちらにまとめてあります。ありがとうございました。