趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。※サイト移転しました(tomono.eleho.net ⇒ tomono.tokyo)
RSS icon
  • PIC18F14K50でUSB-CDCを作成

    投稿日 2015年 2月 8日 コメントはありません

    久しぶりに秋月PIC18F14K50ボードをターゲットとしてUSBシリアルエミュレータを作成する必要がでてきたので、環境構築しました。

    1.OSのインストール

    今回はUbuntu14.04 LTS 日本語Remix 32bit版を使いました。
    例によってUSBデバイスにインストールしました。

    2.MPLAB-Xのインストール

    ダウンロードしてzipファイルを展開します。
    実行属性をつけた後、sudo suでrootになって、ファイルを実行すればインストールできます。。

    3.Cコンパイラのインストール

    CコンパイラはXC8を使います。インストール方法はMPLAB-Xと概ね同じです。
    前回はC18コンパイラを使ったのですが、すでにダウンロードできなくなっています。(後述の通り、XC8でもUSBシリアルエミュレータが動くようになっています)

    4.Microchip Libraries for Applicationsのインストール

    CDCを使いたいのでライブラリを使います。2013年12月20日版以降のものはMPLAB-X IDE向けのもののみ対応とのことです。

    やっぱりrootじゃないとインストールできないのですが、インストールは

    /root/microchip

    の下にされてしまいます。そのままだと一般ユーザーだとアクセスできませんので、

    $ sudo su
    # cp -rp microchip ~ユーザー名/.

    として自分のホームディレクトリの下にコピーしておきます。

    5.MPLAB-Xでビルド

    1. MPLAB-Xを起動して、「File」→「Open Project」で『/home/ユーザー名/microchip/mla/v2014_07_22/apps/usb/device/cdc_serial_emulator/firmware/MPLAB.X』を指定してプロジェクトを開きます。
    2. この状態だとターゲットデバイスがPIC16F1459になっているので、設定を変更します。
      Projectツリーを右クリックして「Set Configuration」で「LPCUSBDK_18F14K50」を選択します。
    3. ビルドします。
      「Run」→「Clean and Build Project」でビルドします。

    6.シリアルの速度を変更する

    シリアルの初期化はプロジェクトツリーの下の「Source Files」の下の「bsp/low_pin_count_usb_development_kit/usart.c」で行っていて、その56行目付近を変更することでシリアルの速度を変更できます。

    今回は9600bpsに設定するので、

    に変更します。

    あとがき

    できればブートローダを書き込んでから、その上でCDC Serial Emulatorをインストールしたかったのですが、どうもソースを見るとXC8では対応している感じがしなかったのでブートローダなしとしました。