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

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

PICとのつきあいはもうずいぶん長いのですが、今まで使ってきたのはPIC16FXXというナンバーのものばかりでした。
PIC18FXXは初めてさわります。
PIC18FXXはPIC16FXXに比べるとハードウェア、ソフトウェアの機能がかなり拡張されていることがわかりました。
USBを扱うためには、その拡張されたハード、ソフトについて理解する必要がありそうです。
ということでまずはPIC18F4550の機能を理解することからエントリーいたします。

[第17回]

●PIC18F4550のデータメモリアクセス

PICは16F64の時代から、データメモリをいくつかのメモリバンクに分割してアクセスするようになっていて、これが結構面倒でしたが、PIC18F4550では、なんと2KBのRAMエリアを256バイトずつのバンクに分割してアクセスする、というすごいことになっています。
んで、これをアクセスする方法というのが、何通りも用意されているのですが、そのうちの最も「たまらぬ」アクセス方法は、スタンダードの命令セットに拡張機能を付加して使うというもので、その名の通り、’Extended Instruction set’として説明されています。

XINST Configuration bitを1にすることで、通常の命令セットが変身して、新たな機能が付け加わるというものらしいのですが、それは既存の命令機能をそのまま利用して、拡張されたメモリシステムをアクセスするための工夫であることは理解できなくもないのですけれど、なんとも面倒なことに違いはありません。

ほんと、こんな面倒なアクセス方法がなんで必要なのでしょうかねえ。
どうしても私には「たかがPIC」という考えが抜けないのですけれど、PICを使ってそれほどすごいことをやろう、というのでしょうかね。
私は、そういうことは、それこそPICじゃなくって、汎用のCPUであるZ80とか8086を使うべきところだと思うのですけれど。
PICじゃ無理ですってば。

ああ、そうか。それでCを使ってムリムリにプログラムを作ってしまおうつうことなのですねえ。

そうでも思わないことには、こんな複雑なメモリアクセス方法などとても合点がいきません。
で、参考までに。
そこんところの説明をしているあたりを、PIC18F4550のData Seetからちょいとコピーしてみました。
こんなんですよお。
わかります?







あ。無理にこんなもの読まなくてもいいです。
最初、このあたりを読んだときは、さすがに絶望的になりましたよ。
こんな面倒なことをせにゃあならんのか、って。

結論から言うと、多分、こんな面倒なものは理解する必要は、なさそうです。
まだ、USBのプログラムは完了していませんから、ひょっとすると必要になってしまうのかも知れませんけれど…。

こんな面倒なことはしなくても、もっともっと簡単なメモリアクセスの方法がありました。
CPUをつくろう!第409回(2009.12.30upload)を再編集

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

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