naoki86star

インターネットの片隅でなにかしら書いてみる

PIC24FJ64GB002を使ってUSB deviceを作れた

 MPLAB SNAP+MPLABX IDEを使ってPICを始めてそれ以来試してみた種類はPIC16F18326(346), PIC12F1822。シリアル通信とかADコンバータとかも使ってみて、うまいことネットまで間接的にもつながるようになると面白そう、そんな風に感じるようになってきた。
 それで、USB機能を持つPICが存在するということで、ぜひそれも試してみたいと思い始めていた。それら自体はネットで数多く紹介してもらって情報収集しやすいのだが、ちょっと自分の知識/基礎/スキル不足で実際やってみるところまでいかなかった。それとMPLAB SNAPで扱える機種はやや限定されることがあってPIC+USBといえばまずPIC18F14K50がよく目につくこれがSNAPでは対象外。それでPIC24FJ64GB002に注目していた。

 PIC24FJ64GB002については他のPICに比べるとやはり上位ということでネットでも多種の知識情報が多く得られると思う。いろいろ情報収集させてもらうなかここを読んだら、ちょっと実際にPIC24FJ64GB002+USB試してみようという気になり、やってみた。ここは自分にとってとりあえず知りたかった要点がピンポイントで書いてありまた書かれていないことがうまいこと今までの自分の知識で補えた。示唆いただいたものは

  • USB使う場合の最低限で使うべきPIN
  • USB通信の実装の雰囲気

 これのおかげでデータシートが格段に読めるようになる。*1
 USBに関するコードはMCCという自動設定+コード生成機能に依存しているとのこと。このMCCについては前に一回動かしてみたことがあった。i2cとかadcの設定と操作関数まで出力してくれてよいとは思っていた。 MCC生成のヘッダにはgenerateされる関数の使い方書いてあるので一通りは読むがよさげ。*2データシートを見ながらパラメータ設定計算の手間が省けるので今後は使っていくべきか。Project毎に生成するのでMCC生成コードに頼る共通コードみたいなのは扱いというか管理が面倒そう。

 WindowsPCのteratermからPICと通信できる(何のユースケースもないけども)自作USBできた、と思ってみたいところ。だけども、デバイスIDはMicrochip 社のサンプルのままだし、なんとなく自作というには最後の一歩が足りてない気がしてる。スタート地点にたどり着けたというのか。まあでもこんな短時間低コストである意味手抜きばかりでできたのは…*3

*1:なんだかなぁな自分なんだが。

*2:オンラインドキュメントにはなっていなさそう

*3:いつもながら羽生名人の「高速道路論」に強く同意してしまう。