2015年2月8日日曜日

PIC18F14K50でUSB-CDCを作成

久しぶりに秋月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に設定するので、
SPBRG = 225;
SPBRGH = 4;
に変更します。

あとがき

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

0 件のコメント: