シリアルインタフェース回路 今回のPICライターはパソコンのCOMポートに接続し、インタフェースとしてRS-232Cが使っています。これはモデムとの接続に使われているインタフェースでデータをシリアルに転送するインタフェースです。データ送信用と受信用のラインが一本ずつあります。モデムを制御するときには他に送信要求(RS)、送信可(CS)、データ端末レディ(ER)、データ・セット・レディ(DR)、キャリア検出(CD)、被呼表示(CI)などの制御用のラインが使われます。今回の回路では送信データ線と受信データ線のみを使用しています。COMポートはデータを送出する際にRSに信号を出し、CSから信号が来るのを待ちます。また、相手の装置の状態を確認するためにDRの状態を見ています。ですから、今回の回路ではRSとCSおよびERとDRを接続してパソコンにPICライターが正常に接続されていることを認識させています。ワイヤーで直接接続しているので、PICライターの電源が入っていなくても正常に接続したと見なしてしまいます。 ただ、今回使用したライターではパソコン上のライターソフトとPICライターのソフトでデータのやりとりを行うので、PICライターの電源が入っていないとライターソフトではPICライターが未接続と認識します。 RS-232Cインターフェースで信号電圧としては約±9V(規格では最大±15V)が使われています。PICライターの内部回路はTTLで動作させるので、電圧を変換するためにADM232AというICを使用しています。このICにはドライバー回路が2回路、レシーバ回路が2回路入っています。今回はその内の1回路づつを使用しています。 ライター動作制御回路 パソコン側のライターソフトとの信号の送受およびPICへのデータ書き込み/読み出し制御はPIC16C57に書かれたファームウェアによって行われます。 PICの種類により制御するピンが違うので、ファームウェアではPICの名称により制御するピンを変える制御も行っています。ファームウェアは1830ワードで構成されています。 ICSP制御回路 PICにプログラムを書くためにはPICを ICSP( In-Circuit Serial Programming )モード にする必要があります。ICSPモードにするためには、電源にVDD(+5V)を加えたあと、まず、RB6、RB7およびMCLRをLowレベルにし、その後にMCLRに+13Vをかけます。これにより、PICはICSPモードになります。ライター制御PICでは+13Vの電圧を直接は扱えないのでアナログスイッチを使用しています。 アナログスイッチはコントロール端子をHレベルにすると"ON"になり、Lowレベルでは"OFF"になります。アナログスイッチは+13Vの電源で動作させていますが、スイッチの部分はこの電圧とは独立しています。ですから、+5Vの電圧のON/OFFを制御することもできます。 アナログスイッチICの動作電源には+13Vを使用しているので、ライター制御PICとアナログスイッチの間にはダーリントントランジスタアレイを使用して電圧の変換を行っています。 トランジスタアレイの入力と出力の位相は180度反転するので、ライター制御PICから制御信号をLレベルにするとスイッチがONになります。 Busy LED はVddが "ON" になると点灯します。 ライター制御PICの22ピンからもアナログスイッチが制御されています。これは16C55などの28ピンPICの制御用です。17ピンに接続されているアナログスイッチの用途ははっきりとは分かりません。 U6の9ピンをU5の17ピンから制御するようなPICがあるものと思われます。どのような種類のPICかは分かりません。 電源回路 ICSPモードでPICのMCLRにかける電圧は+12Vから+14Vの範囲と規定されています。今回の回路では電圧調整が可能な3端子レギュレータ(LM317)を使用して、+13Vの安定した電圧を作っています。+13V専用のレギュレータはありません。 レギュレータの電圧は出力回路に接続するR1とR2で設定することができます。 以下の式で計算するとこができます。 Vout = 1.25 ( 1 + R2/R1 )
LM317は出力電流が最低でも10mA流れている必要があるので、R1の値は120Ωとしています。 Vout = 13V、R1 = 120Ω とすると R2 の値は 1128Ω になります。 実際の回路では抵抗値が1100Ω、誤差が1%の抵抗器を使っています。抵抗器の誤差が±5%では電圧が規定値を超えてしまう可能性があります。 LM317では入力電圧と出力電圧の差が約3Vあります。ですから、入力電圧としては+16V以上の電圧を使用します。 +5V は出力が固定のレギュレータを使っています。 |