標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第420回]

MYCPU80をご購入いただいた方へのご連絡です。
前回お知らせしましたように、MYCPU80基板に配線ミスがありました。
詳細につきましては前回([第419回])をお読みいただきますようお願いいたします。

●MYCPU80キットをご注文いただきました

大学さまからMYCPU80キットのご注文をいただきました。
ご注文有難うございました。
さっそくプリント基板を発注いたしました。入荷までちょっと時間がかかります。
お待たせして申し訳ありませんが、よろしくお願いいたします。

昨年暮れにご注文をいただいて、現在お待ちいただいております方がお二人いらっしゃいます。
お二方の分のプリント基板は今週前半には上がってくる予定です。
基板が入ってきましたら、メールにてお知らせいたしますので、お振込みのご準備をお願いいたします。

●USBのお話です

いよいよ、といいますか、やっと、USBのお話に取りかかります。
当初の予定では、まず先にPIC18Fライターの説明をして…、ということだったのですけれど、ここまでえらく時間がかかってしまいました。
ここで、さらにPICライターのお話を、ということになりますと、肝心のUSBになかなか入れません。

実際の作業としても、まあほんとに大変なことでした。
いや、大変なことです(まだ過去形にはなりません)。

本来ならば、4ビットCPU回路、8ビットCPU回路の製作と、TK80クローンの製作に、とっくの昔にとりかかっていなくてはならないのですけれど、つい「PICでUSBを」などと思いついてしまったものですから、見事に立往生してしまいました。
しかしここまできて今更FT232RLに戻るわけにはいきません。
意地でも初志貫徹あるのみ、です。

ずっとPICの話題などをテーマにしてここまできましたが、その裏ではもちろん、必死にPICUSBに取り組んでおりました。
遅々として進みませんでしたので、その合間に記事を書いてきたのですけれど、もうそろそろ速度アップしなければなりません。

そうしますと、当面実作業と関係がなくなってしまったPICライターについて書きながら、片方でUSBのソフト開発をスピードアップするというのは、単細胞の私としましては、いささか荷が重くなります。

そういうことですので、当初の予定を変更しまして、まずはUSBのお話に入りたいと思います。
PIC18Fライターについては、適当なときに時間を見つけて説明をしたいと思いますので、ご了解をお願いいたします。

●まずは今までの経過から少しずつ…

当初私はUSBについて全く無知だったものですから、232Cの進化したもの、程度の認識でした。
ですからPIC18F4550にUSBインターフェースが内蔵されていることを知ったときも、ちょうどFT232RLを使って仮想232C通信が簡単にできたように、いわばPICの中にFT232RLが内蔵されている、というイメージで理解しておりました。
ちょうどFT232RLがそうでしたように、Microchip社も多分USBドライバを用意しているに違いないから、そいつを使えばPICでもUSBを使って232C通信が簡単にできるに違いない。

それは、とんでもない思い違いでした。
PIC18F4550のDataSheetを読み始めてみましたら、どうも様子がおかしい。
ちょっとこれは話が違うじゃありませんか。
232Cのようにちょこちょこっと命令を書いたら、あとは全部ドライバが処理してくれて、こちらはバッファとの間でデータを読み書きするだけ、なーんて、とんでもない思い違いでした。

USBドライバ内蔵、といったって、うんと下層のハードに近い部分でのことであって、USBの約束事(こいつがまた滅法ややこしい)については全てソフトウェアでこなさなければならない、らしい。
うう。ちょっと、それは、話が違うではないの?
だって、FTDI社はちゃんとファームウェアだけで、USBでの仮想232Cをやってくれているじゃありませんか。
なんで同じことがMicrochip社にはできないのぉ?

ま、今更文句を言ったってしょうがありませんから、とにかくDataSheetのUSBのところを読んでみたのですけれど。
だめ。
あきません。
全く、さっぱり、わかりません。
うう。こりゃあ、だめだなあ。

で、「トランジスタ技術」誌のバックナンバーとか、インターネットのあちこちをさぐったところ、どうもこれはMicrochip社が用意したサンプルプログラムを使うしかなさそうだ、ということがわかってきました。
皆様、そうやっていらっしゃるようで。

ええ。さっそくダウンロードしましたよ。
Microchip社のサイトから。
Microchip Solutionsというどでかい一式を。

で、さっそくサンプルをみてみましたら、全部Cじゃありませんか。
なんで、PICのプログラムをCで書いたりなんかするのよぉ。
ねぇ。Microchipさんよぉ。
こういうのは、やめてくれませんかねぇ。

んでも、これが世の中の流れということならば、これはもうどうしようもないことでありますから、あきらめて、これまたMicrochip社のサイトから、フリーのPIC用C18コンパイラをダウンロードさせていただきました。

ダウンロードさせていただいたのですけれど、そのMicrochip Solutionにあるサンプルプログラムつうのがまたでかすぎてさっぱりわからない。
どうしてCというのはこんなにゴチャゴチャ書くんでしょーかぁ。
要は、USBで232C通信がやりたいだけなんですってば。
こんなにあれこれいらないから、そうするためには、こことこことここだけあればいいから、ってのを教えてくれませんかねぇ。

おまけにCつうのはほんとにいやらしいことに、関数やら変数やらの定義を一体どこでやっているんだか、さっぱりわかりません。
いや、さっぱりわからない、というのは言い過ぎで、ソースがどこのファイルなのか、かなり丁寧にコメントしてはあります。
でも、それにしたって、ソースプログラム自体が余りに長すぎる。
こんなの、理解できるわけ、ないじゃありませんか。

そこへもってきて、PC側のプログラム、それもMicrchip Solutionにあるのですけれど、こいつはぬぁんとVB.NetにVC++にVC#なんですよねぇ。どうしてフツーのC++がないんですかねぇ。
うう。なんか世の中Microsoft一色、といった感じで、こういうのは、ほんと、気に入らないなぁ。

つうことは、結局、サンプルで試してみることもできない、ということでありますよねぇ。

そこで。
じたばたするのはやめて、覚悟を決めました。

やってやろーではありませんか。
PICファームウェアはアセンブラで。
そしてPC側のアクセスプログラムはBorland C++で。

かくして苦難の日々が始まったのでした。

PIC18F4550のUSB制御プログラムをアセンブラで書く、ということになりますと、残念ながらMicrochip社もアセンブラでのサンプルプログラムは用意してくれていませんから、全く最初から自分で全部書くしか仕方がありません。
そのためには、USB通信の仕組みについて、まず理解することが必要です(いやあ、ほんと、大変なことでした)。

2010.1.18upload

前へ
次へ
ホームページトップへ戻る