PICでUSB

NO IMAGE

BoostCを使ってUSBプログラミングができないかと探していたら、PIC Packなるライブラリを配布しているサイトがあった。

「おぉ~、神よぉ~~~~」

…しかし、サンプルのソースをコンパイルしようにもエラーが出てしまい、玉砕。勉強不足のためか、エラー箇所の間違いがさっぱり分からん!

で、色々サイトを渡り歩いていると、Microchipが配布しているC18コンパイラは無償でずっと使えるとある…ぬぅあに~!?

60日過ぎると最適化ができなくなるだけで、コンパイルはできるのだそうだ。何だよぉ~~~。てっきりおいらは60日過ぎると一切使えなくなるのかと思ってたぜ。

MicrochipのサイトからMPLABとC18コンパイラをダウンロードして環境を整えた。しかし!入門本とは設定内容からリンカのファイル名まで違っている始末。Microchipさん、新しくするのはいいけれど、もっと統一性を持たせてよ。

ちなみに、2010年現在C18コンパイラのリンカスクリプトは、MCC18\bin\LKRにあるxxxx_g.lkr(xxxxはマイコン名)に置かれている。入門本と内容がかなりことなっているし、大混乱だ。

で、以前購入した「USB機器自作のすすめ」という本に添付されているソースファイルをコンパイルすると…あん?エラーだって??

引っかかったのは、疑似命令の箇所#pragma config BORV=43の所。43って何じゃ?取りあえず、コメントにしてしまう(コメントにせず、値を43から2に変更すればいいらしい)。

それが済んだら、今度はスムーズに行った。HEXファイルをマイコンに書き込んでみると、あれ?PCがマイコンを認識しないよ??どうも、ブートローダー経由でこのサンプルプログラムを書き込むと良くないようだ。

ROMライターで再度プログラムを書き込み、PCがマイコンを認識できた!でも…本の通りにinfファイルをいじっても、ドライバーがインストールできないのだ。え????

マイコンのソースを見て、PIDで指定している値が本と違うことが判明。本はPID_0046にしろと書いてあるけれど、実際のプログラムではPID_0047だったのだ。これじゃ、いくらやっても認識しないよな。(^o^;)

プログラムを修正して、どうにかドライバーをインストールすることを確認。一部ポートが違うけれど、ソリトンウェーブから発売されているUSB-PICトレーナー(ブルガリア・オリメックス製)では、LEDの点灯と文字のエコーバック(?)できた。

後で分かったのだけれど、この本を書いた筆者のサイト(www.picfun.com)に間違いが出ていた。本の誤記は仕方ないにしても、プログラムの誤記って、筆者がコンパイルして確かめたんじゃ?それとも、編集側が編集の際に打ち間違えたのか??真意のほどは???

それにしても、先はまだまだ長そうだ。しかし、C18コンパイラのおかげで多少近道できたみたい。現時点で分かったのは、USBマイコンを動かすための儀式はかなり面倒であるため、儀式を簡単にするためのUSB用ライブラリは元よりソースファイルが充実している開発ツールを使うのが賢いやり方ということだ。