PIC16C84/84用ギャングプログラマ PICCOPY
▲▲
トップページに戻る
▲
前のページに戻る
●概要
これは、マスターとなる1個のPIC16C84(又はF84)の全プログラム
をターゲットとなる最大8個のPIC16C84(又はF84)にコピーするライ
タの回路図及びライタ制御に使用したPIC16C64のプログラムを収めたもの
です。(上記写真は宇城氏に製作いただいたプリント基板にて製作したもの)
単純なコピー以外にも、マスターとターゲットの比較(コピー時にも比較は行っ
ています)、コピー後にターゲットのプログラムにプロテクトをかける機能もあり
ます。
また、本装置はPC等と接続する必要は無く、単独で作動しますから、どなたで
も使用して頂けるようになっています。
本装置のハードウェア又はソフトウェアはフリーですのでだれでも自由に使用、
配付、改造することができます。ただし、本装置の制作又は使用により生じた一切
の損害については保証しません。
注:書き込み手順の異なるPIC16C6x/C7x、及びメモリ容量の異なる
PIC16C83/F83等のコピーは出来ません。
●配付ファイル
このファイル piccopy3.zipをダウンロードし解凍すると下記のファイルが
展開されます。
1) | PICCOPY.CE2 | ;回路図
|
2) | PICCOPY.SRC | ;回路図で使用したライブラリ・ソース
|
3) | PICCOPY.LIB | ;同上ライブラリ
|
4) | PICCOPY3.ASM | ;制御用プログラム
|
5) | PIC16C64.DEF | ;定義ファイル
|
6) | PICCOPY3.OBJ | ;オブジェクトファイル
|
7) | README.DOC | ;ドキュメントファイル
|
1)〜3)は回路図エディタCE V2.0f 用ファイルCEの作者岡田仁史氏に感謝いたします)
4)〜5) はC言語風 PIC16C6x/C7x/C84用クロス・アセンブラ (1997年6月C版) でアセンブルしました
6) はアセンブルして生成されたオブジェクトファイル(インテルHEX)
●回路について
回路図を下記に示します(縮小版)。(詳細BMP形式はこちらpiccopy.zipをどうぞ)
注意点についてのみ解説します。
1)電源
電源にはACアダプターからの出力から二つの3端子レギュレータにより
+5Vと+12〜14Vを得ています。よって、ACアダプターの出力は+
16V程度は必要です(今回使用したACアダプターは定格で+12Vとと
なっていましたが、実際に出力を測定してみると+16V以上は出ていまし
た)。また、容量は500mA程度は必要です。乾電池での使用は試してい
ませんが、容量に注意すれば問題ないと思います。
2)3端子レギュレータ
+5V用には損失も大きいので7805(1A容量)を使用しました(短
時間の使用では放熱板は不要です)。+12〜14V用には78L12(1
00mA容量)で十分です。
3)2色発光LED(回路図LED1〜8)
赤色と緑色のLEDが1つになったもので3本足です。赤単独、緑単独、
赤緑同時発光とするこで赤、緑、オレンジの3種類の色が出せます。もし、
2色発光LEDが入手できない場合は、通常のLEDでもいいですが、使用
方法の説明で、赤点灯(赤単独)、緑点灯(緑単独)、オレンジ点灯(赤緑
同時点灯)の表現に注意下さい。
なお、このLEDは各ターゲットPICの状態を示すもので、LED1〜
8はターゲットPICのU3〜U10に対応しますから、対応が分かり易い
場所に取り付けて下さい。
4)マスター及びターゲットPIC用ソケット
18pinのゼロプレッシャー・ソケットが望ましいですが高価です。し
かし、通常のソケットを使うと手間が増えるし、PICの足も痛みます。今
回は、安価に出回っている24pinのゼロプレッシャー・ソケットを使用
しました。
5)PIC16C64
制御に用いたPIC16C64は窓月EPROMタイプで、4MHzで使
用しています。
6)VPP
書き込み電圧VPP(定格では+12〜14V)は78L12のコモンを
ダイオードの順方向降下電圧により下駄をはかせて作っています。よって、
使用するダイオードによりVPPが変わる場合がありますので、必ず定格電
圧に入っていることを確認下さい。
7)パスコン
0.1μF程度のパスコンを適当に追加ください。
●制御プログラムについて
- 割り込みは使用していません。
- 書き込み遅延時間(10ms)はソフトウェア・ループを使用しています。
たぶん、遅延時間は10ms以上になっていると思います。
- PIC16C84/F84のプログラムメモリ、データメモリ、コンフィグレ
ーションメモリ(プログラムメモリの全消去も)を切り換える場合はMCLR
を一旦LOWにして、数サイクルの遅延をおいてVPPにしています。これは
各メモリの選択を確実にするためです。
- 各メモリの最初のアドレスで、ダミー書き込みを行っていますが、これは本機
のようなコピー機では必ずしも必要ではありません。
- PORTC及びPORTDに接続されているLEDの点灯制御はビット単位で
制御していますが、PORTAに割り当てられている制御信号はポート単位で
制御するようになっています。これは、PICシリーズのビット出力命令、
BSF PORTA,0 ;PORTAのビット0をセット
が(BCF命令も同様)、
1)指定したポートの全ポートの状態を内部バッファに取り込む
2)取り込んだバッファの指定ビットをセット
3)バッファをポートに出力
の順で行われるため、指定していないビットの状態が変化する場合があるか
らです。例えば、
BSF PORTA,0
BSF PORTA,1
として、ビット0が容量性負荷で、HIGHレベルに達するのに時間が必要
な場合、2番目の命令が実行されるときにビット0がLOWレベルのままだ
と2番目の命令が実行されるとビット0がLOWレベルとして出力されてし
まいます。もう一つの例は、ビット0が入力、ビット1が出力として定義さ
れている場合、
BSF PORTA,0 ;ビット0の出力ラッチをセット
BSF PORTA,1 ;ビット1をセット
BSF OPTION,5
BCF TRISA,0 ;ビット0を出力に変更
BCF OPTION,5
の命令を実行すると0ビットを出力に変更した直後のビット0の状態は2番
目のBSF PORTA,1が実行された時の0ビットの状態に依存してし
まいます。BSF PORTA,1の命令が無い場合は1番目の命令により
出力ラッチがセットされていますから、変更直後にはビット0はセット状態
になります。
以上、くどくど述べましたが、本プログラムで唯一つまずいた箇所です。
●製作について
- 複雑な回路ではありませんが、くれぐれもVPPの配線を間違えないように
注意下さい。VPPがMCLR以外のピンに繋がっていると、PICは破損
することがあります。
- 回路は適当な大きさの穴空き基板を用いて、手配線で作ることも可能ですが
私は配線済み基板を使いました。この基板やアートワークについては最後に
説明します。
- 制御に使用するPIC16C64へのプログラムの書き込みですが、これは
ニフティサーブのFEXTフォーラムのLIB12にアップしてある下記ラ
イタを使用して書き込みました。まあ、面倒な場合は書き込みサービスを行
いますので、ご利用下さい。これに関しては最後に説明します。
●使用手順
- 電源OFFの状態でマスターPICとターゲットPICを装着します。
注意:正しく装着したか、確認して下さい。逆刺し等の場合にはPICが破損することがあります。
ターゲットPICは8個全てを装着する必要はありません。1個でも可能
です。装着する位置も任意です。
- 動作モードを設定します。
動作モードは下記表の通り。
(回路図SW2) PROTECT SW | (回路図SW3) MODE SW | 動作モード
|
OFF | OFF | コピー + 比較
|
ON | OFF | コピー + 比較 + プロテクト
|
OFF/ON | ON | 比較
|
注:プロテクトをかけると、プログラムメモリとデータメモリのデータは
読み出し、書き込み出来なくなります。
よって、プロテクトをかけたPICをマスターにしてコピーすること
は出来ません。
プロテクトをかけたPICをターゲットにすることは問題ありません
(コピー動作開始時にプログラムメモリの全消去を行いますが、この
操作によりプロテクトは解除されます)
- 電源スイッチ(回路図SW1)をON
電源モニタLED(回路図LED10、赤)点灯
- 書込開始、VPPモニタLED(回路図LED9、赤)点灯
- ターゲットPICの各2色LED(回路図LED1〜8)がオレンジ色に発光
- 書込エラーが発生した場合には、エラーが発生した2色LEDが赤色に発光
- 書込終了後、比較を開始し回路図LED11(緑)点灯
- 比較エラーが発生した場合には、6)と同様
- 比較終了後、プロテクト実行(指定した場合のみ)
- 動作終了時には
VPPモニタLEDは 消灯
電源モニタLED は 点灯
比較モニタLED は 点灯
ターゲットPICの2色LEDは
書込+比較が正常な場合は 緑色
エラー発生で 赤色
となります。
- 電源スイッチを切り、ターゲットPICを取り外します
動作時間は、コピー+比較 で約15秒
比較 のみで 約2秒
です。
▲▲
トップページに戻る
▲
前のページに戻る