PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!
当記事は2009年12月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 2011.7.9

前へ
次へ
目次へ戻る
ホームページトップへ戻る
☆プロローグ

今までUSBを使ってパソコンと通信をする部分にはFTDI社のFT232RLかまたはFT245を使って、RS232C−USB変換をしておりました。
ところがUSBコントローラを内蔵しているPICがあることを知りました。
PICは232C通信をするためなどに使っています。
それならそのUSBコントローラを内蔵したPICを使えばFT232RLを使わなくても済んでしまいそうです。
FT232RLはなかなかに便利なICですが、ただ難点はフラットパッケージしかないことです。
それを使わなくても済むということならば、ここは一番ぜひとも挑戦してみるべきでありましょう。
さっそくPIC18F4550のマニュアルをダウンロードして読んでみたのでありますが…。

[第13回]

●PICプログラマ(真相判明…)

壊れてしまったと思っていた秋月のPICプログラマが、いじっているうちに生き返ってしまいました、というお話をいたしました。
あれはいったいなんだったのだろう。
きっと魔物の仕業に違いない。
あるいはきつねか狸にたぶらかされたのか。
そのように思っていたのですけれど、突然にすっかり謎が解けてしまいました。

なんてことはない、私のとんだ早とちりだったのです。

うっかりPICを逆差ししてしまったところ、LEDが赤々と点灯し、パソコン画面の書き込みソフトの表示が突然こんなふう(下の画像)になってしまったものですから、わー、こわれてしもうた!と、もう完全にパニクってしまいました(いやあ、お恥ずかしい)。

これはMicrochip社のPIC書き込みソフトなのですが、PICプログラマを接続しないで起動してもこの表示になります。
たまたまPICプログラマを接続しないで起動して、この表示に再会したものですから、それで真相がわかったのです。

落ち着いてよくよく読んでみますと、Tools→Check Communicationをリトライしてみて。と書いてあります。
でも、あのときは気が動転してしまって、ろくすっぽ読みもしないで、多分ソフトも一度終了し、PICプログラマもUSBケーブルから外してしまったのだった、と思います。
もちろんそうしてもかまわなかったわけで、ふたたびPICプログラマをUSB接続して、書き込みソフトを起動すれば、なんてことはない、普通の初期画面になります。


ところがうかつなことに、というかパニックのあとだったものですから、書き込みソフトが初期設定に戻ってしまっていたことに全く気がつきませんでした。
この状態で逆差ししてしまった18F4550をソケットに差してEraseをしたものですから、そうするとこういう表示になってしまいます。

で。当然、逆差しをしたPIC18F4550が壊れてしまった、と思い、別の18F4550で試してみたところ、なんと、同じ表示になってしまうものですから、「うわわわあ、えらいことをしてしもうた。秋月のPICプログラマ様が昇天してしまわれた」と思い込んでしまったわけです。

その後の経過はすでにお話し申し上げた通りです。
なんとしてでもPIC18F4550を使って、USB通信のソフトを作り上げなければならないという、その一念で、パラレルポートを使ったPICライターでPIC18Fの書き込みができるプログラムを、それも機械語のプログラムを作り上げてしまいました。

そのプログラムとパラレルポート使用のPICライターを使って秋月PICプログラマ搭載のPIC18F2550の複製をつくり(てっきりそれが壊れたのだと思ってしまったものですから)、その複製をPICプログラマに実装して、まずはPIC16F628で試してみたのです。
すると、なんとちゃんと認識してくれて、EraseもOKです。

書き込みもOKになりましたので、やあ、直った、直った、めでたし、めでたし、だったのです。
でも、18F4550で試してみましたら、やっぱり駄目なのですよね。
全てがわかってしまった今では、そりゃあ当たり前のことだと思いますけれど、そのときは、なんだか狐にだまされているような感じでしたのですねえ。
その後にあちこちやたらいじくっていたら、突然18F4550を認識し、書き込みできるようになってしまったものですから、まあ、直ってしまったから、きつねでも狸でも、どうでも良いわい。
ちょいとすっきりしないけれど、これにて一件落着、にしてしまいました。

説明をしっかり読めばよいのですけれど、そこがいい加減で、適当にあちこちさわって、設定なども行き当たりばったりで、適当にやってしまって、おまけに、自分でしたことをきれいさっぱり忘れてしまうものですから、ときとして、こういうお粗末になってしまいます。

上の画面をよーく見てみますと、Midrange/Standard Configurationと書いてあるのですよね。
今回はじめてここに気がつきました。Midrangeなのですよ。
え?おわかりになりません?
PICのランクです。
普通のPIC16Fなどが、このランクです。
普通ですから、初期設定ではこうなるのでしょうね。

Midrangeから他のランクに変更するには、Device Familyタブをクリックします。

すると、18Fがあらわれます。

私は、PICの種類に関係無く、全部自動で検出してくれるものだとばかり思っていましたので、こんなことには、全く気がつきませんでした。
でも、最初はちゃんと18F4550を書き込んでいたのですから、多分、ここを操作して設定したのでしょうけれど、困ったことに全くぜんぜん記憶にありません(今に始まったことではありません。毎度のことです。うう。こういうのが、アルツハイマーの初期症状なんだそうで…)。

秋月PICプログラマは最初っから壊れてなどいなかったのです。たまたま逆差しのショックで一時的にPICが暴走したか何かで、PICプログラマのUSB通信が中断したことが原因だったのです。たぶん。
それで、書き込みソフトが初期設定に戻ってしまったものですからPIC18Fを認識しなくなっただけでしたのに、てっきりPICプログラマが壊れてしまった!と思い込んでしまったのです(うわあ、お恥ずかしい)。

設定でPIC18Fを選んでおきさえすれば、PIC18F4550でも18F2550でも問題無く書き込めました、のでした。
この通りです。

これにて本当に一件落着、でした(やれやれ)。
CPUをつくろう!第405回(2009.12.21upload)を再編集

PICでUSBを![第13回]
2011.7.9upload

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