ArduinoでPICにプログラムを書き込む方法

PICにプログラムを書き込むために、高価なPICライタを買う必要はありません。 適当な電源を与え、簡単なシリアル通信を行えば書き込めます。

お知らせ

ArduinoでPICにプログラムを書き込む方法 ACT.2を公開しました。
事前に書き込み用基板を作っておくことで、配線の手間が省け、比較的楽に書き込みができます。
また、VppやVddのON/OFFをソフトウェアから操作することができます。

ツイート

はじめに

Arduinoを入手したので、適当なプログラムを書いて動かしてみたら便利だった。
しかし、Arduinoは高価なので、量産には向かない。
そこで、安いPICを用いて同じようなプログラムを書こうと考えた。
プログラムは書けたものの、PICに書き込むには専用のライタが必要だと言われている。
市販のライタは高価だし、自作する方法も紹介されているが回路が複雑で、環境も選ぶので敷居が高い。
もっと手間とお金をかけずにPICにプログラムを書き込む方法は無いだろうか?

皆さんはこういう経験ありませんか?え?無い?恵まれていますね。
自分はこのような背景から、Arduinoを用いてPICにプログラムを書き込む方法を探し、 実際に書き込みテストに成功しました。

書き込む対象

今回は、PIC16F716の読み書きをするプログラムを作成しました。
PIC16F84Aなどの他のPICでは命令の体系が異なり、 プログラムの改造が必要な場合があります。

(2014/08/04追記)PIC16F628A系(PIC16F627A/PIC16F628A/PIC16F648A)に暫定対応しました。EEPROMの読み書きは未サポートです。

書き込みプログラム

書き込みの準備

  1. MBLAB®Xgpasmなどを用いて、 書き込むPICのプログラムを作成します。
    もしくは、インターネットなどから書き込むPICのプログラムを入手します。
  2. Arduinoおよびその他必要なハードウェアを用意します。
  3. ArduinoにPICの読み書きをするためのプログラムを書き込みます。
  4. PIC16F716の読み書きを行う場合は、以下の図のように配線します。
    配線図(PIC16F716)
    PIC16F628A系の読み書きを行う場合は、以下の図のように配線します。
    配線図(PIC16F628A)
    今回の実験では、ACアタプタは12V1Aのものを使用しました。
  5. ArduinoをUSBケーブルでPCに接続し、シリアルポートが認識されていることを確認します。

書き込み作業

上記Windows用プログラムのReadMe.txtを参照してください。

まとめ

PICライターの製品を用いなくても、PICにプログラムを書き込むことはできます。
しかし、Arduinoを他に使用するつもりが無い場合や、PICを大量に扱う場合は、 PICライターを購入する方がいいでしょう。

免責

このページの内容を参考に作業を行った結果、 ArduinoやPICなどの破損、およびその他のいかなる損害が発生した場合でも、 筆者は一切責任を負いません。
また、このページの内容の正確性は保証しません。
自己責任でご活用ください。

参考文献

更新履歴

2014/05/11
公開
2014/08/04
PIC16F628A系に暫定対応
2014/08/27
PIC16F628A系のIDの最初のワードが書き込めない不都合を修正

戻る