2018/5/21追記:

公式サイト紹介しているブログを見てもらうと早いが、pickleが幅広いPICマイコンに対応している。下記で紹介されている方法では、限られたPICマイコンしか書き込みができない。pickleを使ったほうが、いろんなPICマイコンに対応していて便利かもしれないのでご参考に

 

何かわからないところがあったらコメントを書くか@akimasa2000にでも話しかけてくれると、答えるかも?

インストール

まずは適当なRaspberry Piを用意して、Raspbianを入れておく。そして、build-essential(おそらく初期で入っている)とgit(git cloneでダウンロードしない場合は不要)を入れる。その後、リポジトリを取得して、ビルドする。

sudo apt update
sudo apt install build-essential git
git clone https://github.com/WallaceIT/picberry
cd picberry
make raspberrypi #詳細は下表を参照

picberryの説明に次のような表がある。

TARGET Processor/Board
raspberrypi Raspberry Pi v1 or Zero
raspberrypi2 Raspberry Pi v2 or v3
am335x Boards based on TI AM335x (BeagleBone)
a10 Boards based on Allwinner A10 (Cubieboard)

自分の使うRasPiが1だったり、Zeroの場合はmake raspberrypiと、2や3の場合はmake raspberrypi2でビルドする。

接続

上の図はattiny85だと書いてあるが、これをPIC12F322だと思って欲しい。左に切り欠きがあって、左下に1ピンのサインがある。

電源以外に接続する必要があるピンはデータシートを参照してほしい。

picberryの説明に次のようにある

If not specified in the command line, the default GPIOs <-> PIC connections are the following:

for the Raspberry Pi:

PGC  <-> GPIO23
PGD  <-> GPIO24
MCLR <-> GPIO18

操作する

picberryのディレクトリに実行ファイルが出来上がっていると思うので、実行する。

次のようなメッセージが出た場合は、接続が間違っているか何か問題がある。

sudo ./picberry -f pic10f322 -b
picberry PIC Programmer v0.2
Device ID: 0x0
ERROR: unknown/unsupported device or programmer not connected.
Press ENTER to exit program mode...

ブランクチェック

新品のPIC10F322を使った場合は、次のようなメッセージが出てくる。

sudo ./picberry -f pic10f322 -b
picberry PIC Programmer v0.2
Device Name: PIC10F322
Device ID: 0x0000014c
Revision: 0x00000002
Blank check...chip is blank.
Press ENTER to exit program mode...

バルクイレース

 $ sudo ./picberry -f pic10f322 -e
picberry PIC Programmer v0.2
Device Name: PIC10F322
Device ID: 0x0000014c
Revision: 0x00000002
Bulk Erase...DONE!
Press ENTER to exit program mode...

書き込み

 $ sudo ./picberry -f pic10f322 -e
picberry PIC Programmer v0.2
Device Name: PIC10F322
Device ID: 0x0000014c
Revision: 0x00000002
Bulk Erase...DONE!
Press ENTER to exit program mode...

対応しているPIC

Pull Requestにあるように、次のデバイスでの読み書きはテストした。秋月で入手できた奴だけだ…。

  • PIC10F322
  • PIC12LF1822
  • PIC16F1823
  • PIC16F1825
  • PIC16F1827
  • PIC16F1828
  • PIC16F1829

次のデバイスでもテストは行っていないが可能なはず。(順番は昇順でなく適当なので注意)

  • PIC10F320
  • PIC10LF320
  • PIC16F1826
  • PIC16LF1826
  • PIC16LF1827
  • PICLF1823
  • PIC12F1822
  • PIC16F1824
  • PIC16LF1824
  • PIC16LF1825
  • PIC16LF1828
  • PIC16LF1829