RCDライタの製作 |
||||||||
JDMプログラマの「亜種」です。 |
||||||||
ご注意 このPICライタはJDMプログラマと同様、パソコンのシリアルポートから電源を供給されるため、パソコンのシリアルポートが低出力の場合は、不向きです。 |
||||||||
ハーフマットで取り扱っているRCDライタ(組立キット、要はんだ付け)【写真】 | ||||||||
[▲]
回路図と動作原理(簡単な説明)
|
||||||||
RCDライタの基本的な回路図です(2003年11月28日作成)。試作機をユニバーサル基板で組み立てて、動作確認をしてから回路図をおこしました。順序が逆のようですが、実地に動作確認をしながらつくっていきましたので、このほうが確実でした。40ピンのPIC16F877Aなど、1kワードを超えるメモリをもつデバイスで大きなサイズのプログラムを書き込むことができなかったため、この回路図と専用基板では1kワードまでの8ピン〜18ピンのPIC対応としました。 | ||||||||
RCDライタの原型の回路図 バージョン2.1
|
||||||||
LVPモードをもっているデバイスのために、PGMピンをGNDにプルダウンするように回路図を修正しました(2004年2月1日) |
||||||||
C1はチャージポンプの電解コンデンサです。シリアルポートのTxDが極性反転すると、ツェナダイオードD7をとおしてC1にチャージされた電荷は、0Vから一気にシリアルポートのGNDとTxDとの電位差の2倍にスイングし、その電圧はD7によってPICのプログラム書き込みに必要な高電圧であるVPPの13Vに制限されます。もうひとつPICのプログラム書き込みに必要な電源であるVDDはTxDの反転と同時に形成されますが、抵抗R4とコンデンサC3(C2)によってVDDの電圧の上昇が遅延します注1。プログラミング用のデータ信号・PGDと同クロック・PGCは、ダイオードD1、D2、D3、D4によってクランプされ、VDD(+5V)とGND(0V)のそれぞれの電位でダイオードの電圧降下分の範囲内に収斂します。これらのダイオードは、PICのラッチアップを防止する役割をもっていますが、5.1Vのツェナダイオードで置き換えることももちろん可能です。PGDとPGCはまた、VDDの形成にも寄与しています。したがって、書き込みソフトである「IC-Prog」のハードウェアチェックを実行すると、発光ダイオードLED1はDATA、CLOCK、MCLRのいずれの項目をチェックしても点灯するでしょう。 パソコンのシリアルポートの出力がよわいばあい、デバイスによってプログラミングに必要な電圧と電流がそれぞれことなりますので、デバイスによってプログラム書きこみで失敗したり、あるいはどのデバイスも読み書きできないばあいがあります。そのときは、R3を数百Ωから1kΩ程度のものにとりかえてためしてみてください。改善されることがあります(R3を10kΩ程度の半固定抵抗にしてもいいでしょう。また、動作確認用のLED1を取り外すと改善することもあります)。また、電流不足によってVPPやVDDの電圧が低下することがあります。入手可能であれば、D6を5.6V、D7を14Vのツェナダイオードに変更してみてください。改善されることがあります注2。 |
||||||||
注1 教科書でよく紹介されているCR時定数の回路図と異なっているため、某国の工科大学の研究チームから「VDDが遅延するはずがない」とのご指摘をうけました。その後、同研究チームで実測したところ、「たしかに遅延していた」とのご報告がありました。 注2 ツェナダイオードは、電流が小さいときはツェナ電圧が定格のツェナ電圧の最小値に近づく傾向があります。それで、電圧が少し高い目のツェナダイオードを使うわけですが、昇圧できるわけではありませんので、パソコンのシリアルポートの電圧がもともと低い場合は効果はありません。 |
||||||||
ダウンロード
|
||||||||
上記ドングルタイプのスマートメディアサイズのRCDライタ PCBEファイルのダウンロード(LHAにて圧縮、21KB)。 現時点ではもっとも小型にRCDライタをつくることができますが、C1が100μFのままだとサポートデバイスは PIC12F629/635/675、PIC16F627、PIC16F630/676、PIC16F684、PIC16F818/819、PIC16F87/88に限定されます。PIC16F84/84Aは、R3を数百Ωから1kΩに変更し、書き込みソフトとしてIC-ProgまたはPICProg4Uを使用したときだけうまく書き込めます。小径の電解コンデンサが入手できるのであれば、C1を470μFに変更するとバージョン2.3のようにサポートデバイスが広がります。 注:アドビのリーダーでパターン図が縮小されて印刷されたりする場合は、「印刷」の「ページ処理」のオプションで「PDF のページサイズに合わせて用紙を選択」を有効にしてください。 |
||||||||
その後の改良
|
|||||||||||||||
RCDライタとIC-Prog(1.05C、日本語化パッチ適用)をつかって、PICへのプログラム書きこみテストが何度もくりかえされました。使用していたパソコン環境は、マザーボードがGIGABYTEのGA-6IEMで、CPUがCelelonの1.2GHz、メモリ512MB、HDD40GB、OSはWindows98SEでした。IC-Progの「ハードウェアの設定」は、「ハードウェア」がJDMプログラマ、「I/Oの遅延」は10、「インターフェース」は高速なダイレクトI/O注1です。つまり、「インターフェース」をのぞいてほとんどIC-Progの起動時のデフォルト状態です。 書き込みテストをしてわかったことは、PIC12C509Aのような、プログラミングに必要な高電圧と電流を保持する時間が長いワンタイム・プログラマブル(OTP)のデバイスに書きこむことはライタの性質上、ほとんどできないことでした注2。 RCDライタを公開してから1年がたちました。この間、おおくの方からご質問やご意見、励ましのメールをいただきました。とくに、海外の方々から質問メールが多数寄せられました。質問のおおくは、海外では日本とちがってPIC16F84AよりもPIC16F628がよく使われているようで、RCDライタではPIC16F628に安定した書き込みができないというものでした。また、マイクロチップ社は、1kワードをこえるプログラム・メモリをもつ8〜14ピンの高機能少ピンPICを開発し、販売をはじめました。 メモリサイズの大きいデバイスでは、プログラミングに要する時間に反比例して電圧が降下していくので、IC-Progでは「ダイレクトI/O」をできるだけ使用するようにすると、よい結果がえられることがわかりました(2004年1月5日)。このことは、プログラム書き込みに要する時間を可能な限り短くするとよい結果が得られるということでした。さらに、海外の方々から、PIC16F628のような、1kワード以上のメモリをもつデバイスに書き込む場合は、電解コンデンサC1の容量を220μF〜470μFのものにとりかえるとよい結果が得られた、との報告がいくつかありました(2004年8月26日)。 RCDライタは、当初、1kワード程度のプログラム・メモリをもつPICでの使用を想定していましたが、こうした事情から、私は、安定した書き込みのためにRCDライタのチャージポンプ・コンデンサC1の容量を470μFに変更することにしました(2004年10月9日)。 また、RCDライタを使っているとパソコンのシリアルポートが廃れる、あるいは壊れる、といった風説がながれました。RCDライタは、チャージポンプ回路によってPICのプログラミングに要求される高電圧を生成しています。したがって、コンデンサへの充放電のスイッチング動作によって、瞬間的に過電流、過電圧をふくむサージ電流が発生します。動作開始時にはシリアルポートのGNDラインからの充電電流が発生し、とくに、パソコンの電源を入れたままRCDライタをシリアルポートに活線挿抜(かっせんそうばつ)すると、過渡的に突入電流が流れます。たいていのパソコンのシリアルポートはRCDライタ程度のサージ電流で壊れることはありませんが、絶対に壊れないと私は保証することはできません注3。 それで、わたしは、下図のようにチャージポンプのコンデンサC1の容量を470μFに変更するとともに、過電流を抑制する200オームの抵抗R6をC1に直列に接続するマイナーチェンジをRCDライタの回路に対して行いました。この修正は、RCDライタへ外部電源を供給するなど取り扱いの不注意や落雷等の影響からシリアルポートを保護するためのものではありません。この件に関して貴重なアドバイスをくださった、スオミの国の Lauri Vikström 氏に感謝します(2004年12月24日)。 |
|||||||||||||||
注1 ダイレクトI/O WindowsNT/2000/XPではシリアルポートに直接アクセスすることは制限されていますので、IC-Progで「ダイレクトI/O」を使うには、ポートドライバ icprog.sys (icprog.sys の実体は、giveio.sys です)をインストールする必要があります。インストール方法や使い方を間違えると、パソコンやOSに損傷をあたえることがありますので、よくわからない場合は「インターフェース」の設定で Windows API を選択したほうが無難です。 注2 ワンタイム・プログラマブル(OTP)デバイス EPROMメモリののOTPデバイスは、要求されるプログラミング用の高電圧VPPのVIHHの範囲が厳しく、しかも、メモリセルに数回から最大で25回の上書きが必要ですので、数ワード程度書き込んだだけでRCDライタから供給するVPPがVIHHを下回ってしまいます。何度でも書き替えられるFLASHメモリのPICとちがって、OTPのPICは、一度「0」にしたセルを「1」に戻すことはできません(紫外線消去できるJWタイプの窓付きPICは消去して再書き込みできますが、古い一部の機種をのぞいて、JWタイプのPICでもコードプロテクトをかけてしまうと紫外線消去も再書き込みもできなくなります)。 注3 現在までに、RCDライタの使用によってパソコンのシリアルポートが壊れたという報告がわたしにあったのは1件です。その1件についても2週間後、ソフトウェアの使用方法がまちがっており、シリアルポートはふたたび使えるようになった、という訂正報告がありました。しかし、万が一ということがあります。もしあなたのパソコンのシリアルポートのサージ電流保護が貧弱であなたのパソコンが壊れはしないかとの不安を感じる場合は、サージ保護回路をシリアルポートに設けるか、RCDライタの使用を中止してください。RCDライタの使用あるいはRCDライタを使用できないことによって被る損害をわたしは補償することはできません。 |
|||||||||||||||
改良したRCDライタの回路図 バージョン2.3 (ハーフマットのRCDkitd)
|
|||||||||||||||
みなさんからお寄せいただいた貴重なご意見をとりいれて、RCDライタに改良を施しました(バージョン2.3)。変更、追加された部品は、この回路図では赤色になっています。 | |||||||||||||||
ガラスコンポジット基板を使った自作基板です。これは無料配布で使用したものです。 | TEXTOOLも取り付け可能な基板サイズにしました。 | ||||||||||||||
基板メーカーで製作した専用基板です。これはRCDライタ組み立てキット(RCDkitd)として2007年2月までハーフマットで取り扱っていました。 | TEXTOOLを取り付けたところです。18ピンのZIFソケット(テストソケットあるいはゼロプレッシャーソケットとも)は3MのTEXTOOLしか製造しておらず、高価です(安いのはコピー商品で、金メッキされていません)。 | ||||||||||||||
ダウンロード
|
|||||||||||||||
私が使用しているRCDライタ(バージョン2.2) パターン図(PDF) 部品配置図(PDF) 部品表(PDF) 過電流保護抵抗つきのRCDライタ(バージョン2.3) パターン図(PDF) 部品配置図(PDF) 部品表(PDF) ハーフマットのRCDライタ(RCDkitd) RCDライタ組立説明書(PDF) 迷惑メールがひどいのでダウンロードサービスは中止しました(ほしい方はメールで連絡してください)。 注:アドビのリーダーでパターン図が縮小されて印刷されたりする場合は、「印刷」の「ページ処理」のオプションで「PDF のページサイズに合わせて用紙を選択」を有効にしてください。 |
|||||||||||||||
[▲]
[▲]
ICソケットの半円形のノッチ(切り欠き)のある方向とPICの半円形のノッチのある方向をあわせます。PICのパッケージの表面にある小さな円いくぼみ(または白丸の印刷)がPICの1番ピンの位置です。PICの1番ピンがICソケットの1番ピンの位置にくるようにPICをICソケットに挿入します。 | ||||||||||||||
RCDkitdなどバージョン2.3以前(ICソケットは18ピン)の挿入位置
|
||||||||||||||
8ピン
|
14ピン
|
18ピン
|
20ピン
|
|||||||||||
PIC10F2xxのDIPパッケージはピン配置が異なります(ホビーキットはのぞく)ので書き込めません。 | PIC16F627A PIC16F628A PIC16F648Aは アダプタを使用してください。 |
20ピンのデバイスは、ICソケットからはみ出します。TEXTOOLの場合は20ピンデバイスを装着できませんので、別のICソケットを間にかませるとよいでしょう。 | ソケットからはみ出した20ピンのデバイスのピンは、プログラミングに必要なピンではありません。 | |||||||||||
RCDkiteなどバージョン2.5(ICソケットは20ピン)の挿入位置
|
||||||||||
8ピン
|
14ピン
|
18ピン
|
20ピン
|
|||||||
PIC10F2xxのDIPパッケージはピン配置が異なるので書き込めません。 | PIC16F627A PIC16F628A PIC16F648A用の アダプタは不要です。 |
|||||||||
[▲]
IC-Prog Bonny Gijzen 氏作、フリーソフト、RCDライタでの動作確認済み |
|||
JDMプログラマだけでなく、多くのハードウェア、デバイスをサポートしている定番ソフトです。RCDライタを使うには、 IC-Prog の設定で JDMプログラマ を選択します。 ダウンロード:下記ファイルをダウンロードして圧縮ファイルは解凍し、適当なフォルダにすべて入れて使用します
日本語化パッチについて: ROC氏が IC-Prog の日本語化パッチを作成し、公開されています(2009-7-17現在、ホームページ不明)。 |
|||
WinPic Wolfgang Büscher 氏作、フリーソフト、RCDライタでの動作確認済み |
|||
高速なポートアクセスが可能な定番ソフトです。RCDライタを使うには、 WinPic の「インターフェース」設定で COM84プログラマ またはRCDライタを選択します。
ダウンロード:下記 WinPic のページにある DL4YHF's WinPic Programmer installation archive をダウンロードします。プログラム本体をダウンロードして解凍し、インストーラを実行します。マニュアルは、プログラムのインストール先に生成されます。インストール後、MPLAB-IDE のデバイス定義ファイル *.dev を参照しますので、MPLAB-IDE をインストールしたフォルダの中にある Device フォルダの場所(通常は C:\Program Files\Microchip\MPLAB IDE\Device)を「オプション」で設定しておきます。 WinPic日本語版: WinPic日本語版 は、ここです(現在公開されているバージョンはオリジナルより1つ古いです)。 |
|||
PICProg4U FENG3 作、フリーソフト、RCDライタでの動作確認済み |
|||
RCDライタで VDD FIRST のPICにたいしても書き込めるように作られたソフトです。.NET Framework1.1 / 2.0 で動作します。
ダウンロード:下記ページからプログラム本体をダウンロードして解凍し、インストーラを実行します。 |
|||
[▲]
N/A
|
ソフトウェアの側でこれらのデバイスには対応していません。書き込むことはできません。
|
N/A
|
ソフトウェアの側でこれらのデバイスを選択できますが、RCDライタではうまく書き込めません。
|
UT
|
デバイスが手元にないため未検証です。現時点では推奨しません。
|
|
書き込みテストをした結果、うまく書き込めました(枠内の記号は下記参照)。
|
C
|
書き込みソフトのインターフェース(PICライタ)の設定でCOM84プログラマを選択しました。
|
J
|
書き込みソフトのインターフェース(PICライタ)の設定でJDMプログラマを選択しました。
|
R
|
書き込みソフトのインターフェース(PICライタ)の設定でRCDライタを選択しました。
|
デバイス名 |
RCDライタのICソケットにセットして書き込めます。
|
デバイス名 |
RCDライタのICソケットでは書き込めませんので、アダプタやICSPの手法を使って書き込みます。
|
RCDライタ(バージョン2.1、C1=100μF)
(2007年2月12日現在)
デバイス
|
コードメモリ
|
必要な電圧
|
IC-Prog
|
WinPic
|
PP4U
|
備考
|
名称
|
ワード
|
MCLRピン
|
100uF
|
100uF
|
100uF
|
|
PIC12F629 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(1)(2)
|
PIC12F635 |
1024x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
|
PIC12F675 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(1)(2)
|
PIC16F627 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
|
PIC16F627A |
1024x14
|
10 <= VPP <= 13.5
|
J
|
C/J/R
|
R
|
(3)
|
PIC16F628 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
|
PIC16F628A |
2048x14
|
10 <= VPP <= 13.5
|
J
|
C/J/R
|
R
|
(3)
|
PIC16F630 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
(1)(2)(4)
|
PIC16F648A |
4096x14
|
10 <= VPP <= 13.5
|
J
|
N/A
|
R
|
(3)
|
PIC16F676 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
(1)(2)(4)
|
PIC16F818 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
N/A
|
(5)(6)
|
PIC16F819 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
N/A
|
(5)(6)
|
PIC16F84A |
1024x14
|
12 <= VPP <= 14
|
J
|
N/A
|
R
|
(7)
|
PIC16F87 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
N/A
|
N/A
|
(6)
|
PIC16F88 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
N/A
|
N/A
|
(6)
|
備考
|
||||
(1) 書き込みソフトとしてWinPicを使う場合、プログラム書き込み時に自動的にデバイスを消去しますので、ユーザーによるデバイスの消去は不要です。これらのデバイスを手動で消去してしまうと、内蔵クロックの補正値(OSCCAL値)も消去され、補正値の復元は手動でおこなう必要があります。書き込みソフトとしてIC-Progを使う場合、このようなダイアログが表示されたら、「OSCCAL = 34xx」(xxが工場出荷時の補正値、34 はRETLW という命令)となっていることを確認して「いいえ」をクリックしてください。通常、Hexファイルには補正値は含まれていませんので、代用値は 3FFF と表示されます。「はい」をクリックすると、補正値が3FFFで上書きされて消失してしまいますので、注意が必要です。
(2) これらのPICには、工場出荷時にプログラムメモリの最終番地に内蔵クロックの補正値(校正値、OSCCAL値)があらかじめ書き込まれています。誤ってその補正値が消失してしまったときのために、買ってきたばかりのPICにいきなりプログラム書き込みをおこなうのではなく、前もってPICから読み込んで補正値をメモしておくことをおすすめします。 (3) PIC16F627A/628A/648Aではアダプタを自作して使用してください(型番に「A」のつかないPIC16F627/628ではアダプタは不要です)。 (4) PICProg4Uバージョン0.8.3は、OS等使用環境によってはデバイス選択時とファイル読み込み時の表示速度が極端に低下することがあります。 (5) 書き込みソフトとしてWinPicを使う場合、「Option(日本語版ではオプション)」で「raise Vdd before MCLR=Vpp(日本語版では Vddの上昇を50us待ってからVppを適用する)」を有効にします。 (6) 書き込みソフトとしてPICProg4Uを使うと、プログラムメモリへは正常に書き込めますが、データEEPROMに書き込むデータがあるときはデータEEPROMへの書き込みで失敗します。 (7) PIC16F84Aは、R3を数百Ωから1kΩに変更し、書き込みソフトとしてIC-ProgまたはPICProg4Uを使用したときだけうまく書き込めます。WinPicを使用すると、プログラムメモリの6番地にPIC16F84AのデバイスIDが誤って書き込まれてしまい、JDMプログラマなど高電圧が安定している他のPICライタを使用しないと完全に消去することが困難になります。 |
||||
RCDライタ(バージョン2.2/2.3、C1=470μF)
(2007年2月12日現在)
デバイス
|
コードメモリ
|
必要な電圧
|
IC-Prog
|
WinPic
|
PP4U
|
備考
|
名称
|
ワード
|
MCLRピン
|
470uF
|
470uF
|
470uF
|
|
PIC10F200 |
256x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F202 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F204 |
256x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F206 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F220 |
256x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F222 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC12F508 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(2)
|
PIC12F509 |
1024x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(2)
|
PIC12F510 |
1024x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(2)
|
PIC12F629 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(2)(3)
|
PIC12F635 |
1024x14
|
10 <= VPP <= 12
|
N/A
|
C/R
|
R
|
|
PIC12F675 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(2)(3)
|
PIC12F683 |
2048x14
|
10 <= VPP <= 12
|
N/A
|
C/R
|
R
|
|
PIC16F54 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
|
PIC16F57 |
2048x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(4)
|
PIC16F59 |
2048x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(4)
|
PIC16F627 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
|
PIC16F627A |
1024x14
|
10 <= VPP <= 13.5
|
J
|
C/J/R
|
R
|
(5)
|
PIC16F628 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
|
PIC16F628A |
2048x14
|
10 <= VPP <= 13.5
|
J
|
C/J/R
|
R
|
(5)
|
PIC16F630 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
(2)(3)(6)
|
PIC16F636 |
2048x14
|
10 <= VPP <= 12
|
N/A
|
C/R
|
R
|
|
PIC16F648A |
4096x14
|
10 <= VPP <= 13.5
|
J
|
C/J/R
|
R
|
(5)
|
PIC16F676 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
(2)(3)(6)
|
PIC16F684 |
2048x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(11)
|
PIC16F685 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(7)(8)
|
PIC16F687 |
2048x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)
|
PIC16F688 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(8)(11)
|
PIC16F689 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(7)(8)
|
PIC16F690 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(7)(8)
|
PIC16F818 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
N/A
|
(10)(11)
|
PIC16F819 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
N/A
|
(10)(11)
|
PIC16F84 |
1024x14
|
12 <= VPP <= 14
|
J
|
N/A
|
N/A
|
(9)
|
PIC16F84A |
1024x14
|
12 <= VPP <= 14
|
J
|
N/A
|
R
|
(9)
|
PIC16F87 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
J
|
N/A
|
(11)
|
PIC16F870 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F871 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F872 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F873 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F873A |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F874 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F874A |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F876 |
8192x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
N/A
|
R
|
(10)(11)(12)
|
PIC16F876A |
8192x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
C/R
|
R
|
(10)(11)(12)
|
PIC16F877 |
8192x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
N/A
|
R
|
(10)(11)(12)
|
PIC16F877A |
8192x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
C/R
|
R
|
(10)(11)(12)
|
PIC16F88 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
J
|
N/A
|
(11)
|
PIC16F913 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(12)
|
PIC16F914 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(12)
|
PIC16F916 |
8192x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(12)
|
PIC16F917 |
8192x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(12)
|
備考
|
||||
(1) RCDライタでPIC10F2xx のSOT23パッケージに書き込むには、マイクロチップ社の PIC10F2XX PROGRAMMER ADAPTER(P/N AC163020)を使用するか、PIC10F HOBBY KIT(P/N AC163021)などのDIPへの変換基板を使用します。DIPへの変換基板の自作については、ここに情報があります。市販品としては、サンハヤトのSOP用シール基板 (2) これらのPICには、工場出荷時にプログラムメモリの最終番地に内蔵クロックの補正値(校正値、OSCCAL値)があらかじめ書き込まれています。誤ってその補正値が消失してしまったときのために、買ってきたばかりのPICにいきなりプログラム書き込みをおこなうのではなく、前もってPICから読み込んで補正値をメモしておくことをおすすめします。 (3) 書き込みソフトとしてWinPicを使う場合、プログラム書き込み時に自動的にデバイスを消去しますので、ユーザーによるデバイスの消去は不要です。これらのデバイスを手動で消去してしまうと、内蔵クロックの補正値(OSCCAL値)も消去され、補正値の復元は手動でおこなう必要があります。書き込みソフトとしてIC-Progを使う場合、このようなダイアログが表示されたら、「OSCCAL = 34xx」(xxが工場出荷時の補正値、34 はRETLW という命令)となっていることを確認して「いいえ」をクリックしてください。通常、Hexファイルには補正値は含まれていませんので、代用値は 3FFF と表示されます。「はい」をクリックすると、補正値が3FFFで上書きされて消失してしまいますので、注意が必要です。 (4) RCDライタでこれらのPICに書き込むには、ICSPの手法を用いるかアダプタを自作します(書き込みテストにはハーフマット製の8ピンICソケット>6ピンヘッダ変換アダプタと簡易アダプタF57を使用しました)。 (5) PIC16F627A/628A/648A用のアダプタが必要です(型番に「A」のつかないPIC16F627/628ではアダプタは不要です)。アダプタは18ピンのICソケットで簡単に作れます。 (6) PICProg4Uバージョン0.8.3は、OS等使用環境によってはデバイス選択時とファイル読み込み時の表示速度が極端に低下することがあります。 (7) 20ピンのデバイスですので、RCDライタの18ピンソケットから10番、11番ピンがはみ出しますが、プログラム書き込みは可能です。 (8) プログラム書き込み後の照合でプログラムが正常に書き込まれているにもかかわらずエラーがでることがあります。これは、プログラム書き込みと読み込み、照合の一連の動作をソフトウェアが自動的におこなう際、メモリサイズの大きいPICだと読み込みの段階でRCDライタの高電圧が低下して不足することが原因でおきます。この場合、プログラム書き込み後、単独で照合だけを再度実行することでPICに正常に書き込まれたかどうか確認することができます。 (9) PIC16F84とPIC16F84Aでは、R3を数百Ωから1kΩに調節し、書き込みソフトとしてIC-ProgまたはPICProg4Uを使用したときだけうまく書き込めます。PIC16F84Aの書き込みでWinPicを使用すると、プログラムメモリの6番地にPIC16F84AのデバイスIDが誤って書き込まれてしまい、JDMプログラマなど高電圧が安定している他のPICライタを使用しないと完全に消去することが困難になります。 (10) 書き込みソフトとしてWinPicを使う場合、「Option(日本語版ではオプション)」で「raise Vdd before MCLR=Vpp(日本語版では Vddの上昇を50us待ってからVppを適用する)」を有効にします。 (11) プログラムメモリへは正常に書き込めますが、データEEPROMに書き込むデータがあるときはデータEEPROMへの書き込みで失敗します。 (12) RCDライタでこれらのPICに書き込むには、ICSPの手法を用いるかアダプタを自作します(書き込みテストにはハーフマット製の8ピンICソケット>6ピンヘッダ変換アダプタと簡易アダプタ840を使用しました)。 |
||||
PIC16F627A/628A/648A 用のアダプタの製作法 | ||||
18ピンのICソケットを用意します。
ICソケットの11番、16番、17番の3ヵ所の半田付け用のリードを根元から切断します。 こうして作ったアダプタをPICとRCDライタのソケットの間に挿入して使用します。 |
||||
RCDライタ(バージョン2.5)
(2007年2月12日現在)
デバイス
|
コードメモリ
|
必要な電圧
|
IC-Prog
|
WinPic
|
PP4U
|
備考
|
名称
|
ワード
|
MCLRピン
|
470uF
|
470uF
|
470uF
|
|
PIC10F200 |
256x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F202 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F204 |
256x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F206 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F220 |
256x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC10F222 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(1)(2)
|
PIC12F508 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(2)
|
PIC12F509 |
1024x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(2)
|
PIC12F510 |
1024x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(2)
|
PIC12F629 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(2)(3)
|
PIC12F635 |
1024x14
|
10 <= VPP <= 12
|
N/A
|
C/R
|
R
|
|
PIC12F675 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(2)(3)
|
PIC12F683 |
2048x14
|
10 <= VPP <= 12
|
N/A
|
C/R
|
R
|
|
PIC16F54 |
512x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
|
PIC16F57 |
2048x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(4)
|
PIC16F59 |
2048x12
|
12.5 <= VPP <= 13.5
|
N/A
|
N/A
|
R
|
(4)
|
PIC16F627 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
|
PIC16F627A |
1024x14
|
10 <= VPP <= 13.5
|
J
|
C/J/R
|
R
|
(5)
|
PIC16F628 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
|
PIC16F628A |
2048x14
|
10 <= VPP <= 13.5
|
J
|
C/J/R
|
R
|
(5)
|
PIC16F630 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
(2)(3)(6)
|
PIC16F636 |
2048x14
|
10 <= VPP <= 12
|
N/A
|
C/R
|
R
|
|
PIC16F648A |
4096x14
|
10 <= VPP <= 13.5
|
J
|
C/J/R
|
R
|
(5)
|
PIC16F676 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
R
|
(2)(3)(6)
|
PIC16F684 |
2048x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(11)
|
PIC16F685 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(7)(8)
|
PIC16F687 |
2048x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)
|
PIC16F688 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(8)(11)
|
PIC16F689 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(7)(8)
|
PIC16F690 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(6)(7)(8)
|
PIC16F818 |
1024x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
N/A
|
(10)(11)
|
PIC16F819 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/J/R
|
N/A
|
(10)(11)
|
PIC16F84 |
1024x14
|
12 <= VPP <= 14
|
J
|
N/A
|
N/A
|
(9)
|
PIC16F84A |
1024x14
|
12 <= VPP <= 14
|
J
|
N/A
|
R
|
(9)
|
PIC16F87 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
J
|
N/A
|
(11)
|
PIC16F870 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F871 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F872 |
2048x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F873 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F873A |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F874 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F874A |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
C/R
|
R
|
(10)(12)
|
PIC16F876 |
8192x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
N/A
|
R
|
(10)(11)(12)
|
PIC16F876A |
8192x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
C/R
|
R
|
(10)(11)(12)
|
PIC16F877 |
8192x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
N/A
|
R
|
(10)(11)(12)
|
PIC16F877A |
8192x14
|
VDD + 3.5 (Max 13.5)
|
N/A
|
C/R
|
R
|
(10)(11)(12)
|
PIC16F88 |
4096x14
|
VDD + 3.5 (Max 13.5)
|
J
|
J
|
N/A
|
(11)
|
PIC16F913 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(12)
|
PIC16F914 |
4096x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(12)
|
PIC16F916 |
8192x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(12)
|
PIC16F917 |
8192x14
|
10 <= VPP <= 12
|
N/A
|
N/A
|
R
|
(12)
|
備考
|
||||
(1) RCDライタでPIC10F2xx のSOT23パッケージに書き込むには、マイクロチップ社のPIC10F2XX PROGRAMMER ADAPTER(P/N AC163020)を使用するか、PIC10F HOBBY KIT(P/N AC163021)などのDIPへの変換基板を使用します。DIPへの変換基板の自作については、ここに情報があります。市販品としては、サンハヤトのSOP用シール基板 (2) これらのPICには、工場出荷時にプログラムメモリの最終番地に内蔵クロックの補正値(校正値、OSCCAL値)があらかじめ書き込まれています。誤ってその補正値が消失してしまったときのために、買ってきたばかりのPICにいきなりプログラム書き込みをおこなうのではなく、前もってPICから読み込んで補正値をメモしておくことをおすすめします。 (3) 書き込みソフトとしてWinPicを使う場合、プログラム書き込み時に自動的にデバイスを消去しますので、ユーザーによるデバイスの消去は不要です。これらのデバイスを手動で消去してしまうと、内蔵クロックの補正値(OSCCAL値)も消去され、補正値の復元は手動でおこなう必要があります。書き込みソフトとしてIC-Progを使う場合、このようなダイアログが表示されたら、「OSCCAL = 34xx」(xxが工場出荷時の補正値、34 はRETLW という命令)となっていることを確認して「いいえ」をクリックしてください。通常、Hexファイルには補正値は含まれていませんので、代用値は 3FFF と表示されます。「はい」をクリックすると、補正値が3FFFで上書きされて消失してしまいますので、注意が必要です。 (4) RCDライタでこれらのPICに書き込むには、ICSPの手法を用いるかアダプタを自作します(書き込みテストにはハーフマット製の8ピンICソケット>6ピンヘッダ変換アダプタと簡易アダプタF57を使用しました)。 (5) PIC16F627A/628A/648Aではアダプタは不要です。RCDライタのソケットで書き込めます。 (6) PICProg4Uバージョン0.8.3は、OS等使用環境によってはデバイス選択時とファイル読み込み時の表示速度が極端に低下することがあります。 (7) 20ピンのデバイスですので、RCDライタの18ピンソケットから10番、11番ピンがはみ出しますが、プログラム書き込みは可能です。 (8) プログラム書き込み後の照合でプログラムが正常に書き込まれているにもかかわらずエラーがでることがあります。これは、プログラム書き込みと読み込み、照合の一連の動作をソフトウェアが自動的におこなう際、メモリサイズの大きいPICだと読み込みの段階でRCDライタの高電圧が低下して不足することが原因でおきます。この場合、プログラム書き込み後、単独で照合だけを再度実行することでPICに正常に書き込まれたかどうか確認することができます。 (9) PIC16F84とPIC16F84Aでは、R3を数百Ωから1kΩに調節し、書き込みソフトとしてIC-ProgまたはPICProg4Uを使用したときだけうまく書き込めます。PIC16F84Aの書き込みでWinPicを使用すると、プログラムメモリの6番地にPIC16F84AのデバイスIDが誤って書き込まれてしまい、JDMプログラマなど高電圧が安定している他のPICライタを使用しないと完全に消去することが困難になります。 (10) 書き込みソフトとしてWinPicを使う場合、「Option(日本語版ではオプション)」で「raise Vdd before MCLR=Vpp(日本語版では Vddの上昇を50us待ってからVppを適用する)」を有効にします。 (11) プログラムメモリへは正常に書き込めますが、データEEPROMに書き込むデータがあるときはデータEEPROMへの書き込みで失敗します。 (12) RCDライタでこれらのPICに書き込むには、ICSPの手法を用いるかアダプタを自作します(書き込みテストにはハーフマット製の8ピンICソケット>6ピンヘッダ変換アダプタと簡易アダプタ840を使用しました)。 |
||||
さまざまな作例 | |||||
|
|||||
oga さんの作例です。 たけぴょん さんの作例です(復活)。 ハンガリーの airband さんの作例です(ケース入りと内部)。 ブラジルの Alexandre Costa さんの作例です(写真とPCBパターン)。 ドイツの Helmut Stettmaier さんはブレッドボードに組みました(写真)。 ももじ さんもブレッドボードで組みました(写真)。 Henri さんの作例です(写真)。 スウェーデンの Sven-Erik Ottosson さんの作例です(写真)。 Stefan Pietzonke さんの作例です(写真)。 |
|||||
RCDライタの組み立てキットの販売および基板の無料配布について
自作される方の便宜をはかるためにRCDライタの組み立てキットの販売や手作り基板の無料配布をおこなっています。
■RCDライタの組み立てキットは、ハーフマットで取り扱っています。
■RCDライタの手作り基板の無料配布は、現在、多忙に付き休止しています。
基本的に穴あけはしてありますが、写真のようにフォトレジストが残ったままのものや、磨いてフラックスを塗布したものなどがあります。注:猫はついていません。 |
|||
■諏訪エレクトロニクス社のAcum−PICシリーズにもRCDライタの基板が添付されるようです(いちどみてみたいなぁ…)。
注意事項:PICライタの製作にあたっては、自己責任でおこなってください。このページに記載されている情報をもとに製作された結果、ライタが動作しない、PICが破損した、パソコンが壊れた、家庭不和になった等の損害を被られても、FENG3はいっさい関知しません。