制御用マイコンのRC3端子につながっている10kΩの抵抗R_LVPは、通常は不要です。次の記事「PICマイコンのプログラマ その4」で紹介しているHIDaspxを使って制御用マイコン(PIC18F14K50)にファームウエアを低電圧モードで書き込んだ場合には、この抵抗を接続しておいてください。(2011/3/13追記)
回路図の右上にある3.3Vのレギュレータとスイッチは、このプログラマでPIC18F14K50に書き込む場合に使います。そのときは、スイッチを3.3Vレギュレータの側に切り替えて使ってください。PIC18F14K50以外のマイコンに書き込む場合はスイッチをUSB5Vの側にしておいてください。PIC18F14K50に書き込むことがない場合は、3.3Vのレギュレータと切り替えスイッチは不要です。
制御用マイコンPIC18F14K50の左側、RA3の端子につながっているスイッチは、制御用マイコンPIC18F14K50にファームウエア(制御用プログラム)をブートローダー経由で書き込む場合に使います。普段使用するときはこのスイッチをOFFにしておいて下さい。
書き込み対象のPICマイコンを差し込むソケットには、20ピン以上のものを使って、この回路図のように配線しておくと、8,14,18,20ピンのPICに書き込むことができます。どのPICでも、ソケットの一番上に合わせてPICを差し込みます。ソケットには私はゼロプレッシャー(ZIF)ソケットを使っています。ちょっと高いですが、抜き差しが簡単で使いやすいです。安く作るのなら、耐久性が劣りますが普通のICソケットでもいいと思います。が、平ピンではなく、せめて丸ピンタイプのものを使ったほうが耐久性が良いと思います。
これくらいの規模の回路になると、ミニブレッドボードで組むのはちょっと難しくなります。もう少し大きなブレッドボードを使えば、頑張れば組めると思いますが、ユニバーサル基板を使ってハンダ付けで作るのがよいでしょう。
Writer509CDCの使用部品
マイコン | PIC18F14K50 | 200円 |
セラミック発振子 | 12MHz(コンデンサ内蔵) | 20円 |
トランジスタPNP | 2SA1015 | 100円/20個 |
トランジスタNPN | 2SC1815 | 100円/20個 |
ダイオード | 1N4148 | 100円/50個 |
コンデンサ | 0.1μF | 100円/10個 |
コンデンサ | 0.22μF | 100円/10個 |
コンデンサ | 1μF | 100円/10個 |
コンデンサ | 10μF | 200円/10個 |
抵抗 | 470Ω、10kΩ、100kΩ | 各100円/100個 |
LED | 赤色 | 400円/100個 |
USBコネクタ | Bタイプ・メス | 50円 |
ICソケット | ZIFソケット24ピン 丸ピンICソケット20ピン | 700円 60円 |
レギュレータ3.3V | S-812C33AY-B-G | 100円/8個 |
このプログラマに使っているマイコンPIC18F14K50に書き込むプログラムは前回のWriter509CDCのものと全く同じです。一応、こちらにもリンクをおいておきます。
<Writer509CDC用ファームウエア(Ver.1.0)のダウンロード>
(Ver.1.0にアップしました 2011/9/13)
Ver.1.0の動作確認が不十分なので、旧バージョンもおいておきます。
<Writer509CDC用ファームウエア(Ver.0)のダウンロード>
使い方は前回の「Writer509CDC簡易版」で紹介したEriter509CDCと全く同じです。
PC側の制御ソフトは、一応、私の作った書き込みソフトもあります。拡張PIC16F(PIC12F182、,PIC16F1823など)にも対応する目的で作りました。
◆Windows版書き込みソフト<W509CS>
◆Linux、Mac OSXなどクロスプラットフォーム版<W509Mono>
(2011/2/26追記)
回路図を次の4ケ所修正しました。
・3.3Vレギュレータの入力部に0.1uFのコンデンサを追加しました。
・マイコンの右側のピンRC0にLEDを接続しました。USBを接続したときに点滅します。
・Vppの高電圧を作るチャージポンプ回路のダイオードの1つを赤色LEDに変更しました。電圧を微調整するためです。
・VppをON/OFFするトランジスタの回路の抵抗値を2つとも100kΩにしました。
(2011/3/13追記)
回路図を修正しました。
制御用マイコン(PIC18F14K50)のファームウエアを低電圧モードで書き込んで、ConfigurationのLVPが有効になっている場合には、RC3につながっている赤色の10kΩの抵抗R_LVPを接続してください。それ以外の場合はこの抵抗は不要です。
(2011/3/13追記)
このWriter509CDCを使ってPIC18F14K50に書き込む場合、PC側の書き込み制御ソフトは「でんし研」さんの「Writer509+b版」をご使用ください。オレンジ電子さんのオリジナル版のPC制御ソフトではPIC18F14K50は対応していません。
本文中にも書いていますが、PIC18F14K50に書き込む場合は、電源をUSB5Vではなく、レギュレーターの 3.3Vを使ってください。
また、「FENG3」さんの「PICProg4U 2.3.0」も、Writer509でPIC18F14K50にも対応しているのですが、なぜか通信エラーが出たり、読み込みで間違った値が表示されたりするなどの不具合があります。
この問題はオリジナルのWriter509では発生しないので、私のWriter509CDCのプログラムに何らかのバグがあると思います。原因を究明して、プログラムを修正しようと思っていますが、まだできていません。
(2011/3/19追記)
PICProg4Uでエラーが出る原因がわかりました。が、PICProg4Uでエラーが出ないようにすると、今度はオリジナルのPC側制御ソフトでうまく動作しなくなってしまいます。そういうわけで、PICProg4Uを使いたい方のために、PICProg4U用ファームウエアを作成しました。本文中のダウンロードの中に追加しておきました。
この問題について、PICProg4Uの作者FENG3さんに相談したところ、ありがたいことに、次期バージョンでは私のWriter509CDCでも動くように対応していただけるそうです。次期バージョンが出るまでの間は、ファームウエアを使い分けるという暫定対策でお願いします。
(2011/7/13 追記)
今更ながら、いくつかのデバイスで書き込み動作の確認をしたところ、上に記載の回路ではPIC16F627A(628A他も多分同様)にうまく書き込めないことがわかりました。原因はVppの電圧不足のようです。スペック的に満足しているような気がするのですが。
(その後、さらに調べたところ、Vpp電圧の問題ではないようです。Writer509CDCを2つ持っているのですが、1つでは書き込めて、もう1つの方では書き込めないです。原因は不明です。回路はほぼ同じなんですが。)
このようにVppの電圧不足で書き込めない場合は、回路図の左上の、チャージポンプの1段目のLEDを、普通のダイオードに変更すると、Vpp電圧が1V程度上昇します。ただし、そのように変更した場合は、Vppの上限電圧が低いデバイスでの使用にご注意ください。
それと、もうひとつ、PIC12F510で、デバイスの消去がうまくできません。これもVpp電圧不足を疑ったのですが、上限の13.5Vまで上げてもだめでした。原因不明です。
参考までに、チャージポンプ1段目=LEDの場合と、普通のダイオードの場合の、Vpp電圧の測定値を書いておきます。負荷電流=約1mAの場合の値です。
駆動電圧 = 5V | 駆動電圧 = 3.3V | |
LED(赤色) | 11.2V | 7.9V |
ダイオード(1N4148) | 12.1V | 8.8V |
(2011/9/13追記)
ファームウェアをVer.1.0に更新しました。
ターゲットとへの書き込みクロックを少しだけ高速化しました。
あと、PIC12F510に書き込みができない問題を、不完全ながら修正しました。
このファームと、私の作ったPC側制御ソフトW509CsまたはW509Monoを使うとPIC12F510に書き込み可能です。オリジナルの書き込みソフトW509などでは、だめなようです。
↑最後まで読んでいただいた方はこちらのリンクをクリックしてランキングにご協力下さい。
↓ついでに、下のリアクションもチェックお願いします。