PIC18F系 の開発

  • 特徴
     PIC18F14K50/2550 は USB 対応でありながら、非常に安価です。また、開発ツールも Microchip から無料で入手可能です。

  • 開発環境
     最近の開発ツール MPLAB-IDEXは Windows だけではなく、Mac, Linux にも対応になりました。使い慣れた環境ですぐに開発を始めることが出来ます。

    • MPLAB-IDEX
       MPLAB-IDEX は Microchip の純正の開発環境です。沢山の解説が Web で見つかりますので、ここでは割愛します。
  • Bootloader
     PIC18F14K50/2550 に予め Bootloader を書き込んでおくことにより、PICWriter を使わずにユーザのプログラム(ファームウェア)を書き込むことが出来ます。Bootloader には大きく分けて、HID を利用したものとバルク転送を利用したものとがあります。このバルク転送を利用したものを今回は使用します。

    • Bootloader (PIC18F14K50)本体
       Bootloader の本体はこちらの方が開発されています。ターゲットに合わせて、Bootloader の起動方法の変更が必要になる場合があります。

      • 改造方法
         ターゲットで用いているスイッチに合わせて Bootloader のコードを変更すると、新たにスイッチを設けなくても Bootloader の機能を利用出来るので便利です。ここでは改造例として、当社で製品化した「英数/かなキーボード」で説明します。

        • 改造前
           オリジナルのコードは Port C2 を起動時に読み取るようになっています。

        • 改造後
           英数/かなキーボードの場合は、スイッチを両方押して、電源投入した時に Bootloader が起動するようにします。

    • ファームウェア
       ユーザが書き込むプログラムファームウェアとしてビルドします。それぞれの Bootloader で割り込みベクタが異なっていますのでそれに合わせて設定します。最近のサンプルでは #define 文で定義しておけば、そのままベクタが設定されるようになります。

  • 書き込みツール
     上記で作成したファームウェアを書き込む PC側のソフトの設定を行います。ここでは Windows と Macintosh/Linux の Unix 系 OS の説明をおこないます。

    • Windows
       Windows は少し面倒です。ブートローダの起動状態では、オリジナルの Microchip のデバイスとして Windows では認識されています。そのためこれに対応した ドライバが必要になります。最初のブートローダモードではドライバを読み込ませて、Windows に認識させる必要があります。ドライバの組み込み後に、書き込みソフトウェアでファームウェアを書き込みます。

      • ドライバ
        1. ダウンロード
        2. 適当なフォルダに展開
        3. ブートローダ・モードになるように USB を差し込む(ボタンの同時押し)

           不明なデバイスとして認識される。

        4. 2. で展開したディレクトリのドライバを読みこませる
        5. 認識された後
      • PDFSUSB
        ダウンロードが完了したら、適当なフォルダに解凍し、PDFSUSB.exe をダブルクリックして起動。
    • Macintosh/Linux
       Mac/Linux などの Unix 系の OS では fsusb で書き込みを行います。fsusb を使うためには、libusb と呼ばれる USB をユーザ領域で使うためのシステムが必要になります。基本的に自分でソースからビルドすることになります。自分でビルドする環境がない人もいるかと思いますので、as is でビルドした成果物を載せておきます。as is ですので、動作保証はできません。Macintosh のみの対応になります。Linux な人々はビルドするのは日常茶飯事だと思いますので。

      • libusb
         usb をユーザランドで使うためのシステムになります。最近のlibusb は1.0.x 系列なのですが、fsusb では 0.1.x 系列が必要です。このため、libusb-comat のバージョンの違いを吸収するレイヤー相当のシステムを導入する必要があります。Macintosh の場合は Homebrew で簡単に導入することが可能です。こちらを導入すると、libusb の対応したバージョンも自動で導入することが出来ます。

      • libusb-compat

      • fsusb
         こちらから入手可能です。libusb の導入が終わっていれば、make 一発でコンパイル終了です。

  • 参照先
     以下のサイトを参考にさせて頂きました。

  • 謝辞
     上記の方々をはじめ、各方面から協力をいただきましたこの場を借りてお礼申し上げます。