この18F2550という石には、USB機能が内蔵されています。以前は、FTDIのFT232AMで外付けでUSB機能を付加していましたが、こっちだと単体で行けるので楽ちんかも、というのが採用の動機です。
問題は、FTDIのチップは元来USBシリアル変換器用のチップなのでUSB絡みの機能はチップに全部組み込まれていますが、18F2550の場合は裸のUSB機能だということです。したがって、ちゃんと使うにはそれなりのUSBスタック(と場合によってはUSBに関する知識、CDCとか)が必要です。
USBスタックとCコンパイラの選択としては、
- SourceBoostと、PicPackライブラリを使う
- C18と、Microchip純正のMicroChip Applicationライブラリに含まれているMCHPFSUSBを使う
という選択肢があります。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 件のコメント:
コメントを投稿