今回は安く簡単に自作できて、しかもUSB接続で使える便利なプログラマの紹介です。このように書くと、とても素晴らしいプログラマのように聞こえるので、作ってみようと思われる方がおられるかもしれませんが、実は大きな欠点があります。それは、いわゆる「鶏と卵問題」です。このプログラマにはPICマイコンを使って制御しているので、作るためにPIC用のプログラマが必要なのです。
そんな、便利そうで、ちょと残念なプログラマですが、とりあえず紹介致します。「鶏と卵問題」の対策は、あとで。
このプログラマは、名付けて「Writer509CDC」です。オレンジ電子さん作の「Writer509」と互換のUSB接続タイプのプログラマです。オリジナルのWriter509は、パソコンとの接続はシリアル(RS232C)ポートを使いますが、Writer509CDCはUSBで使えるようにしたものです。オリジナルのWriter509ではPIC12F509などのマイコンを使って、シリアル(RS232)通信でのパソコンとの通信と、プログラム書き込みの制御を行います。USB接続のWriter509も既にいくつかネット上で公開されていますが、ほとんどは従来のWriter509と、USB-シリアル変換ICを組み合わせたものです。このWriter509CDCは、USB通信機能を内蔵したPIC18F14K50を使って、USBでのパソコンとの通信と、プログラム書き込みの制御を行います。
回路図は右の図のとおりです。パソコンとのUSB通信も、書き込みの制御もすべて1つのマイコンで行っているので、部品数が非常に少なくなっています。
回路図の0.33μFのコンデンサは、秋月電子では手ごろな値のコンデンサがなかったので、下の部品表では0.22μFのコンデンサを2つ並列に使うことにしています。
USBケーブルは、壊れたUSBマウスなどのケーブルを使うか、100円ショップ等の安いものでよいと思います。パソコンに接続するほうのコネクタを残して、反対側のコネクタ(または不要なマウスなど)を切って使います。
PICマイコンにプログラムを書き込むためには、(一部の 新しいPICを除いて)動作電圧の5Vの他に、Vppと呼ばれる9~12Vの高電圧が必要になります。今回紹介するWiter509CDCでは、この高電圧を006P型の9Vの電池を使って作っています。
Writer509CDCの使用部品
マイコン | PIC14K50 | 200円 |
セラミック発振子 | 12MHz(コンデンサ内蔵) | 20円 |
トランジスタ | 2SA1015 | 100円/20個 |
コンデンサ | 0.22μF ×2個 | 100円/10個 |
抵抗 | 10kΩ | 100円/100個 |
抵抗 | 100kΩ | 100円/100個 |
電池 | 006P角型9V | |
電池スナップ | こんなもの | 10円 |
USBケーブル |
このプログラマは回路構成が簡単なので、右の図のように150円の小さなブレッドボードで作ることもできます。ただし、小さなブレッドボードでは穴の列数がすくないので、書き込み対象のPICとしては14ピンくらいのものまでしか挿せません。18ピン以上のPICに書き込む場合は、もっと大きなブレッドボードを使うか、この小さなブレッドボードをもう1つ使うかする必要があります。
(2)マイコンのプログラム
Writer509CDCに使っているマイコンのプログラム(ファームウエア)はこちらに置いておきます。
<Writer509CDC用ファームウエア(Ver.1.0)のダウンロード>
(Ver.1.0にアップしました 2011/9/13)
Ver.1.0の動作確認が不十分なので、旧バージョンもおいておきます。
<Writer509CDC用ファームウエア(Ver.0)のダウンロード>
このプログラムはMicrochip社が提供しているUSB Frameworkを使用して作成しています。
私の作成したファームウエアのダウンロードファイル一式の中の「Writer509CDC.hex」というファイルをPIC18F14K50に書き込んで使ってください。
少し専門的な話になりますが、このhexファイルは、同じくMicrochip社のUSB Frameworkの中に含まれている「HID Bootloader」にも対応していますので、PIC18F14K50に「HID Bootloader」のファームウエアが既に書き込まれている場合は、PICプログラマがなくても、このBootloaderを使って私のファームウエアをパソコンからUSB経由で直接PICに書き込むことができます。Bootloaderについての説明は少し専門的になりまので、ここでは省略して、また後日、機会があれば説明します。
(3)使い方
回路が完成して、PIC18F14K50ファームウエアの書き込みができたら、書き込み対象のPICをWriter509CDCに接続します。上の回路図、またはブレッドボードの図では、接続例としてPIC16F630の場合の配線を描いています。
書き込み対象のPICの接続ができたら、Writer509CDCのUSBケーブルをパソコンのUSBポートに接続します。ただし、パソコンに接続する前にもう一度、回路の配線を確認してください。配線が間違っていた場合、最悪パソコンを壊してしまう危険性があります。そのあたりは自己責任でお願いします。
Writer509CDCを初めてパソコンに接続した場合、パソコンが新しいハードウエアを認識し、ドライバーのインストールを求められます。そのとき、ドライバの検索先として、上のマイコンファームウエアのダウンロードファイル一式の中に含まれる「inf」フォルダを指定してください。それで、あとは自動的にドライバがインストールされるはずです。ドライバーがインストールされると、Writer509CDCはUSBの「CDCクラス」として認識されます。そしてパソコンとWriter509CDCは「仮想COMポート」経由で通信を行います。
ここまでくれば、あとは普通の(オリジナルの)Writer509と同じように使用できます。パソコン側の書き込み用ソフトはオレンジ電子さんのWriter509のページからダウンロードして使ってください。ソフトの使い方も同じくオレンジ電子さんのページをご覧ください。
一応、私の作った書き込みソフトもあります。拡張PIC16F(PIC12F182、,PIC16F1823など)にも対応する目的で作りました。
◆Windows版書き込みソフト<W509CS>
◆Linux、Mac OSXなどクロスプラットフォーム版<W509Mono>
(4)その他:Vppの電圧について
PICマイコンの比較的古いものでは、高電圧に12V程度必要なため、Vppに9Vの電池を使った回路では書き込めないものもあります。書き込もうとするPICでVppに何V必要化はWriter509の作者オレンジ電子さんのホームページを 見て確認してください。ちなみに、私がこのブログでこれまでに紹介した作品で使っているマイコンのうち、PIC12F683とPIC16F630は Vpp=9Vで書き込み可能です。PIC12F615はスペック上はVpp=10V以上必要なので書き込みできないことになりますが、新しい電池を使えば ぎりぎり書き込めるかもしれません(実際には試していないのでわかりません)。
Vppの高電圧もマイコンを使って作る方法もあって、実は私のWriter509CDC用プログラムにはそのための動作も用意してありますが、それを利用すると回路が少し複雑になるので、それについてはまた後日紹介します。
<Writer509CDC全機能版はこちら>
(5)「鶏と卵」問題:ファームウエアの書き込みについて
正直なところ、この問題を簡単に解決できる方法はないのですが、手間をかける覚悟があるのなら、なんとかする方法はあります。その方法については、また後日紹介させていただきます。
と言って、終わってしまうとせっかくここまで読んでいただいた方に申し訳ないので、もし、「なんとしてもこのプログラマを作りたい!」と言う方は、ご相談ください。場合によっては何とかお力になれるかもしれません。
<鶏と卵問題対策はこちら>
(2011/9/13 追記)
ファームウエアをVer.1.0に更新しました。
ターゲットへの書き込みクロックを少し高速化しました。
↑最後まで読んでいただいた方はこちらのリンクをクリックしてランキングにご協力下さい。
↓ついでに、下のリアクションもチェックお願いします。