PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!
当記事は2009年12月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 |
2011.7.12 前へ 次へ 目次へ戻る ホームページトップへ戻る |
☆PIC18F2550では大きすぎる… |
[第71回]
●28pinは大きすぎる…
毎日たくさんの方にご訪問いただいているのですけれど、ここのところ、また意外なところでつかえてしまって、更新がままなりません。
実は、説明のほうはちっとも進まないのですけれど、私の実際の作業としては、やっとHIDの送受信プログラムもほぼ出来あがりましたので、いよいよ試作基板の設計作業に入ろうとしたのですが…。
作業としては、先に作りました特注品のZ80版TK80ボードをもとにして、PIC16F88を使っていたところを、PIC18F2550に変更するつもりだったのですけれど…。
うう…。入りません。
なにしろPIC18F2550は28pinで、ちょっと大きすぎるのです。
PIC16F88が置いてあるあたりはちょいと窮屈になっているものですから、18pinを28pinにするのは、どう考えても、無理…です。
どうしても、ということになりますと、部分的にさわるだけではどうしようもなくて、基板全体を最初からレイアウトし直さなくてはならなくなってしまいます。
せっかく全体としてはまとまっていますのに、PICを置き換えるだけのために、いくらなんでも、そこまではしたくありません。
なんとかならないものか…。
実は、PICでUSB(HID)を、という検討作業の過程で、PIC18F4550とPIC18F2550のほかにも、PIC18F14K50が、やはりUSB内蔵であることも理解していました。
PIC18F14K50は20pinです。
それなら、PIC16F88(18pin)の代わりに置くこともできそうです。
で、検討作業にはいったのですが…。
今度は、pin数が足りません。
PIC16F88の18pinでやっていた機能に加えて、USBがプラスされてしまいますから、その分のD+、D−、Vusbを加えただけで、オーバーしてしまいます。
さらに今回はRS232CとUSBの切り換え用の端子も必要です。
さらにさらに、PIC16F88ではCPUクロックを内蔵の発振回路から得ていましたから、外付けのクロック発振用の端子もI/Oとして利用していました。
PIC18F14K50も内蔵発振回路はあるのですが、それを使うとUSBが利用できません。
USBを使う場合には、外部からクロックを供給するか、クリスタルを外付けするかしなければなりません。
どう考えても、I/Oが全く足りません。
しかし、解決策がないわけではありません。
現在の設計では、PIC16F88とCPUとのデータのやりとりをする部分は8ビットパラレルになっています。
そこを4ビット×2回で行うことにすれば、I/O端子が4本少なくて済みます。
しかし、それをするためには、PICの側と、Z80の側の両方のプログラムを書き直さなければなりません。
うむむ。
ちょいと面倒です。
それから、PIC18F14K50についても調べてみたのですが…。
PIC18F4550からPIC18F2550への変更は、CONFIGの設定がちょいと変わる程度で、ほとんど変更なしで移行することができました。
ところがPIC18F14K50は、USBバッファのサイズとアドレスが全然違うのですよねえ。
となると、こちらの方も全部書き直さなければなりません。
うう。
そこまでするか、それともなんとか工夫して、PIC18F2550の28pinを乗っけてしまうか…。
悩みつつも、迷いつつも、とりあえずは、PIC18F14K50に移行すべく、作業にとりかかったのですけれど…。
本日は時間がなくなってしまいました。次回はもう少し詳しく書くことができればいいのですけれど…。あれこれ取り込み中ですので、どうなりますことか。
CPUをつくろう!第498回(2010.5.12upload)を再編集
PICでUSBを![第71回]
2011.7.12upload
前へ
次へ
目次へ戻る
ホームページトップへ戻る