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

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

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

[第2回]

●知ってしまいました

さていよいよ、大変だったことのはじまりです。
よくよく調べてみましたら、そもそものはじまりは10月の10日ころのことだったようです。
かれこれ一月ほど前に、お話しはさかのぼります。

あれこれ調べものがあって、ネットを検索していましたら、
「PIC(USB内蔵)」
なる言葉が目につきました。
USB内蔵?

そんなものがあるなんて、知らなかった…。
ううう、と思って調べてみましたら、もうかなり前から市場にでていて、なんと「トランジスタ技術」にも何回か紹介されているらしい…。
「トランジスタ技術」はずっとずっと昔から購読しているのでありますけれど、ここ数年は、買ってそのまま本棚につっこんでおくだけで全く読んでいませんでした。不勉強もいいところです。
雑誌記事では40pinのPIC18F4550が取り上げられておりましたが、もう少し小さい28pinの18F2550も同様にUSB内臓なのだそうです。
さらにさらに調べてみましたら、なんと20pinの18F14K50つうのもあるらしい。

知らなかった…。

私は、こんなものがあるとは夢にも思っていなかったので、それでMYCPU80にPIC16F88を載せて、わざわざ別の小さな基板まで作って、そこにUSB−232C変換ICのFT232RLを貼り付けたものを用意したのでしたけれど…。
こんなものがあることを知っていたら、そりゃあ、それを使うことを考えたでしょうよ。

…いえいえ。そうではありませぬ。
知らぬが仏、とはまさにこのことで、もし私がもう少し前にこのことを知ってしまっていましたら、多分まだMYCPU80は供給できていなかったことでしょう。
きっと、ここのところで泥沼にはまってもがいていたことでしょうねぇ。
これはまさに天の配慮。

もちろん知ってしまった今となっては、もうFT232RL+PIC16F88なんてかったるいものは使う気になりませぬ。
断然、PIC18F2550か、できれば18F14K50道を一直線。

んで、遅まきながら「トランジスタ技術」の、そのPIC利用のUSB通信なる記事を読み始めたのでありますが…。
こいつは、ちょっと、てごわいのでは?
うう。読んでも、わからんではないか。
こりゃ、大変だ。

結局、ネットをあちこちさぐったり、「トランジスタ技術」の別の記事もあわせて読んでみたりもしたのですが。
うう。1週間たっても、わからん。なんだか、ややこしくて、よくわからん、のでありますね。

私が最初喜んだのはどうやら早とちりだったようで、USB内蔵と言っても、そんなに簡単なものではないようなのですよ。
私は最初はFT232RLのように、難しいところは全部勝手にやってくれて、それでこちらは普通に今まで通りに232Cのつもりでプログラムを書けばそれでいい、とそんなふうに思っていたのですけれど、なかなかどうしてそんなものじゃないらしい。

なんでも最初のパソコンとの接続開始のところからいろいろホストにデバイス情報とかなんたらかんたらを送らなければならないらしい。
そのなんたらかんたらがまたややこしくて、早い話が、さっぱりわからん。
うう。これは、ちと、話が違うではないか…。

あかん。読んでもわからん。

で、ネットを必死でさぐってみましたら、なんと、おお、Microchip社のホームページに、簡単おまかせ接続の仮想232Cファームウェアなるものが用意されているらしいではありませぬか。
それ、それ。そういうものがあれば、それでいいの。こんな読んでもわからんようなものにかかわっていなくても。
こっちは、とにかくPICを使ってUSBシリアル変換が簡単にできれば、それでいいの。

あ?
でも、それ、機械語のオブジェクトファイルではないの?
だって、ファームウェアなんでしょ。

え?
Cなのぉ?
Cのソースで供給…?
なんで、そんな面倒なことを…。

だいたい、PICのプログラムをどーしてCなどで書いたりするのさ。
Microchipよ、お前もか!

Cのソースつうことは、じゃあ、コンパイラがいるではないか。
そこでまたもやネットサーフィン…。

なんでもMicrochip社にはPIC18用の純正コンパイラC18つうのがあるらしいのですよね。
それがまた、どういうわけか、Microchip社のサイトの読みにくいこと!
あんたたち、いったいどういう感覚でサイト作ってるの?
これじゃどこでダウンロードすればよいかもわからんではないか。
C18コンパイラをダウンロードしようとして、サイト内をあちこち行くのだけれど、特徴やら、何やらをたらたら紹介しているだけで、リンクが無い!みつかりません。
いまもってどこをどうやって行きついたのか、よくわからんけれども、とにかくやっとのことで、ダウンロードできるところに行きついたのであります(なんだかとんでもないところに置いてあったような…。また落ち着いたら、暇な時に調べてみます)。

このC18コンパイラは本当は有償なんだけれども、最初の2〜3ヶ月はお試し期間なんだそうですね。
おまけにその期間を過ぎても全然使えなくなる、ということではなくて、一部の機能が制約を受けるだけで、継続して使うことに特別の支障はないようです。もちろんとりあえずは無償でダウンロードさせていただきました。

ああ。それとついでにMPLABの最新版。そいつもダウンロードいたしました。
MPLABというのはPICプログラム開発のためのツールで、昔から供給されているものです。
もちろん私も以前から使っていますけれど、ずっとPIC16Fばっかりでしたから、PIC18F用に最新版が必要になるだろう、と思ったからです。

ところが、ところが、実に腹立たしいことに、このMPLAB最新バージョンとC18コンパイラが、一筋縄では、いってくれなかった…のでありますよ。
CPUをつくろう!第394回(2009.12.6upload)を再編集

PICでUSBを![第2回]
2011.7.8upload

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