UbuntuでPICマイコンのソフトウエア作成を行うためのツール一式のインストール方法
検証環境
・Ubuntu 12.04 LTS, 14.04 LTS, 16.04LTS (後日検証済)
・Pickit 2 (中国製互換製品 Sure Electronics Pickit 2)
Microchip社のPICkit2関連のツールの公開が終了してしまう可能性があるため、念のため直リンクと個人的保存を『Sure ElectronicsのPICkit 2購入 (及びツール類の保存)』の記事に記載している。
Pickit 2用ツールのインストール
Microchip社PICkit 2 Development Programmer/Debugger公式ページに掲載されている「PK2CMD V1.20 Linux & Mac OS X Source Code with Makefile」をダウンロードしてインストールする。
$ wget http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1.20LinuxMacSource.tar.gz $ tar xvf pk2cmdv1.20LinuxMacSource.tar.gz $ cd pk2cmdv1.20LinuxMacSource
ここで、最新のデバイス定義ファイルPK2DeviceFile.dat
に対応させるため、ソースコードcmd_app.h
を一部分修正する(デバイス定義ファイルの最大バージョンが 5 となっているので、この値を最新のデバイス定義ファイルのバージョン番号 6 以上とする。今回は適当に100と変更した)。
この修正を行わないと、PK2DeviceFile.dat device file requires an update of pk2cmd
というエラーがコマンド実行時に表示される。(ソースコードを見れば原因は一目瞭然だが、やはりめんどくさい)
class Ccmd_app
{
public:
static const unsigned char DevFileCompatLevel = 100;
static const unsigned char DevFileCompatLevelMin = 0;
}
ソースコードを修正したら、ビルドしてパスの通った場所に実行ファイルpk2cmd
をコピーする。
$ make linux $ sudo cp pk2cmd /usr/local/bin
さらに、PICkit 2 Development Programmer/Debugger公式ページに掲載されている「Device File 1.62.14」をダウンロードして、パスの通った場所にコピーする(今回は、pk2cmd実行ファイルと同じ場所にコピーした)。
$ wget http://ww1.microchip.com/downloads/en/DeviceDoc/PK2DFUpdate-1-62-14.zip $ unzip PK2DFUpdate-1-62-14.zip $ sudo cp PK2DeviceFile.dat /usr/local/bin
以上でPK2CMDのインストールは終了。
次に、Pickit 2をユーザ権限で使えるように、ユーザに読み書き権限を与える。Pickit 2をUSB接続した状態でデバイスIDを読み取り、
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 04f2:0841 Chicony Electronics Co., Ltd
Bus 002 Device 003: ID 046d:c52f Logitech, Inc. Wireless Mouse M305
Bus 001 Device 004: ID 04d8:0033 Microchip Technology, Inc. PICkit2
udevの定義ファイルを作成する。rules.dディレクトリ内であれば、ファイル名は数値2ケタで始まっていれば何でも構わない。今回は50-udev.rulesというファイルを作成して追記した。
ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="0033", MODE="0666"
この設定ファイルを作成した後に、再度Pickit 2をUSB接続すると、/dev/bus/usb
以下のどれかのデバイスファイルの書き込み権限が有効となっているはず。それがPickit 2だ。
Pickit 2が認識されているか、適当なPICマイコンを接続した状態で次のようなコマンドの実行結果を確かめる。
・Pickit 2のファームウエアバージョンの表示
$ pk2cmd -p -s# Unit # Unit ID OS Firmware 0 ? 2.32.00
・取り付けられているPICの種類と状態を確認(-cスイッチはブランクチェック、-iスイッチはPICデバイスのIDとリビジョン番号の表示)
$ pk2cmd -p Auto-Detect: Found part PIC12F1822. Operation Succeeded $ pk2cmd -p -c Auto-Detect: Found part PIC12F1822. Program memory is NOT blank. Address Good Bad 000000 003FFF 002851 Operation Succeeded $ pk2cmd -p -i Auto-Detect: Found part PIC12F1822. Device ID = 2700 Revision = 0008 Device Name = PIC12F1822 Operation Succeeded
64bitOSの場合、i386ライブラリのインストール
『Installation Dependencies on 64-bit Linux』に書かれている必須ライブラリをインストールする。
$ sudo apt-get install libc6:i386 libx11-6:i386 libxext6:i386 libstdc++6:i386 libexpat1:i386
XC 8コンパイラーのインストール
Microchip社MPLAB X Integrated Development Environment (IDE)公式ページからLinux 32-Bit and Linux 64-Bit 版 MPLAB® XC8 Compiler v1.12をダウンロードしてインストールする。
$ wget http://www.microchip.com/mplabxc8linux $ tar xvf mplabxc8linux $ sudo ./xc8-v1.12-linux.run
MPLAB X IDEのインストール
Microchip社MPLAB X Integrated Development Environment (IDE)公式ページからLinux 32-Bit and Linux 64-Bit 版 MPLAB® X IDE v1.60をダウンロードしてインストールする。
$ wget http://www.microchip.com/mplabx-ide-linux-installer $ chmod +x mplabx-ide-linux-installer $ sudo ./mplabx-ide-linux-installer
MPLAB Xのショートカット・キー
MPLAB X内でのショートカット・キーがWindows版と少し異なる。主要なショートカットキーは
・Show Code Completion Popup → CTRL + バックスペース(\)
・Toggle Comment → CTRL + /
PICデバイスへの書き込み
MPLAB X IDEでプログラム作成後、コマンドラインツールのpk2cmd
を用いてPICデバイスに書き込む。
書き込みは、-pスイッチにデバイスを指定せずに自動認識させ(Auto-Detect in all detectable families)、 -fスイッチに続けて書き込むファイルtest.X.production.hex
を指定し(Hex File Selection)、-zスイッチでEEPROM領域を書き換え対象外とし(Preserve EEData on Program)、-mスイッチにパラメータを付けないことで書きこみ前にゼロクリアを指定する(the entire device will be erased & programmed)。
$ pk2cmd -p -ftest.X.production.hex -z -m Auto-Detect: Found part PIC12F1822. PICkit 2 Program Report 22-1-2013, 20:27:06 Device Type: PIC12F1822 Program Succeeded. Operation Succeeded
EEPROMデータの表示
アドレス0x0000 〜 0x0010(16)のデータを表示したい場合は次のように範囲を指定して実行する。
$ pk2cmd -p -ge0-16 Auto-Detect: Found part PIC12F1822. Read successfully. EEData Memory 0000 FF FF FF FF FF FF FF FF 0008 FF FF FF FF FF FF FF FF 0010 FF FF FF FF FF FF FF