2011/05/22

PIC18F2550ボード(秋月)とC18/USBライブラリのテスト

ガイガーカウンターの出力波形はちょっと置いておいて、PIC18F2550ボードをお試ししてみました。

この18F2550という石には、USB機能が内蔵されています。以前は、FTDIのFT232AMで外付けでUSB機能を付加していましたが、こっちだと単体で行けるので楽ちんかも、というのが採用の動機です。

問題は、FTDIのチップは元来USBシリアル変換器用のチップなのでUSB絡みの機能はチップに全部組み込まれていますが、18F2550の場合は裸のUSB機能だということです。したがって、ちゃんと使うにはそれなりのUSBスタック(と場合によってはUSBに関する知識、CDCとか)が必要です。

USBスタックとCコンパイラの選択としては、
という選択肢があります。C18は純正でweb上に情報もたくさんあるのですが、評価版は60日で最適化が切れるし買うと高いといったお約束事項があります。できればSourceBoostでやりたかったのですが、PicPackというUSBライブラリがエラーを出しまくってくれるので一旦中止。
C18とMicroChip Applciationライブラリをしこしこダウンロードして、"USB Device - CDC - Basic Demo"というのを丸パクリしてビルドしたら、いくつか手直しは必要ながら、秋月のボードでも動くようになりました。
  • リンカスクリプトを削除
    ブートローダを載せておいてUSBでダウンロードすることができて、それ用のメモリ割り付け(割り込みエントリとか)が選べるようになっています。基本PicKit2一本槍で書き込みなので、リンカスクリプトは使いません。
    左のプロジェクトペインの "Linker Script"にrm18f4550 - MCHPUSB Bootload.lkrといったリンカスクリプトが登録されているので、右クリックで削除します。
  • ボードは、"HardwareProfile - PICDEM FSUSB"とかいうのを適当に選択
    18F4550を使っているので、コンフィグ等は秋月18F2550ボードに流用が簡単です。
  • 余計なボード依存コードの削除(UserInit、BlinkUSBStatus)
    LEDとかは付けてないので。エラーが出なくなるまで外します。
  • つなぐと、不明なデバイスが~、と言われるので、ライブラリに同梱されているドライバをインストールします。
そんな感じで、LEDピカピカとかでボードをチェックしつついじっていたら、USBとターミナルソフト(TeraTermを使っています)の間で通信ができました。結構簡単。
PCとの通信用途であれば、この系列の石が結構いけそうな気がしてきました。

0 件のコメント: