久しぶりに秋月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でビルド
- MPLAB-Xを起動して、「File」→「Open Project」で『/home/ユーザー名/microchip/mla/v2014_07_22/apps/usb/device/cdc_serial_emulator/firmware/MPLAB.X』を指定してプロジェクトを開きます。
- この状態だとターゲットデバイスがPIC16F1459になっているので、設定を変更します。
Projectツリーを右クリックして「Set Configuration」で「LPCUSBDK_18F14K50」を選択します。 - ビルドします。
「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では対応している感じがしなかったのでブートローダなしとしました。