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

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

PIC18F2550では大きすぎて、計画中のTK80互換マイコンボードND80ZVには組み込めそうにないことがわかりました。
USB機能内蔵のPICにはPIC18F4550、PIC18F2550のほかに20pinのPIC18F14K50があることはちょっと前から知っていました。しかしUSBに関する部分がPIC18F2550とはかなり異なっているようです。
案の定しっかり泥沼にはまってしまいました。

[第72回]

●PIC18F14K50

この1週間というもの、またもやとんでもないトラップにはまってしまって、泥沼でもがいておりました。
そのことの顛末は順次お伝えすることにいたします。

まずは前回からの続きのお話です。
やっとのことでHIDの通信プログラムも一応の完成をみましたので、Z80版TK80ボードにPIC18F2550を乗せようとしましたが、基板上に、そのスペースがとれなくて、さて困った、どうしましょう、というお話をいたしました。
そりゃあまあ、やってやれないことはないのでしょうけれど、そうすると、基板パターンの設計を最初からやり直さなくてはなりません。
そこで、かねてより目をつけておりました、PIC18F14K50について、使えるものかどうか、ちょいとあたってみることにいたしました。
PIC18F14K50は20pinです。
pin数はPIC18F2550の28pinよりもぐっと少なくて、PIC18F4550の40pinに比較すれば、なんと半分しかありません。
PIC16F88やPIC16F628が18pinですから、どちらに近いかといえば、そりゃあPIC16F88に毛が生えた程度のもの、という印象なのでありますが…。

それでもPIC18Fと冠しておりますとおり、アセンブラ(機械語)のレベルはしっかり18Fのレベルです。
そしてお目当てのUSB機能内蔵って、本当に信じていいのかなあ。
で、DAtaSheetを読んでみますと。
あ。こちらがPIC18F14K50のDataSheetです。




ちゃんとUSB V2.0 Compliant SIEと書いてあります。
うう。こりゃあ本物だ。



ああ。しかし…。
よくよく読んでおりますと、ふと不吉な予感が…。
クロックがPIC18F2550に比べてちょいとムリをしているのではないか、という懸念を感じます。
まあ。それはそれとしまして、肝心のUSB。
エンドポイントの数はPIC18F2550の半分ですけれど、それはそれでも十分過ぎると思いますから、まあよいとしまして、USBバッファが256バイトしかありません。
これはちょいと少ないのではありませんかあ?


ちなみに、PIC18F2550ではアドレス0400〜07FFの1KBありました。
むむ。アドレスも違っているじゃありませんか。
こういうことはやってほしくないなあ。
こういうことをやってくれると、プログラムのUSBバッファのところを全部書き直さなくちゃいけないじゃありませんかあ。
互換性軽視は某マイクロソ○トの専売特許かと思っていましたら。
マイクロチップよ、お前もか!

PIC18F2550(PIC18F4550も同じ)のUSBバッファメモリにつきましてはこちら([第55回])をご覧ください。

実際不吉な予感が見事に的中いたしまして、このUSBバッファのアドレスの違いのために、なんと丸2日も空費してしまうことになってしまったのでありまする…(泣)。

うう。
ところがところが、PIC18F2550とPIC18F14K50の違いは、そんなもんじゃあなかったのですよお。
互換性などというなまやさしいレベルではありませぬ。
はっきり言って。ひどい!
お口あんぐり。
まあ。MICROCHIPも、ようやってくれるわ。

こちらのトラップには、ものの見事にはまってしまって、しっかり4日間ほども、暗黒、出口無しの泥沼(!)で、もがいてしまいました。

まあ。ほんと。えりゃあ目にあってしまったぎゃあ。
もお。てぇゃぎゃぁにしといてちょお。
CPUをつくろう!第499回(2010.5.15upload)を再編集

PICでUSBを![第72回]
2011.7.12upload

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