Keywords: PIC ICD2 CLONE クローン RS232C MPLAB IDE 回路図 USB 18F4550

ICD2クローンの製作

Copyright(C)2006-2008かしま
ec2-54-198-54-140.compute-1.amazonaws.com , 78936th 2008/05/28 UPDATED

  修正履歴

  2006/7/12  初版
  2006/8/22  回路に R31を追加。デバイス 16F873Aで デバッグモードに入る際 ICD0083エラーが出るのを修正.
  2008/5/28  リセット制御回路を追加。

  1. 概要
  2.  マイクロチップ純正のデバッガICD2はの価格はおおよそ3万円。 安定動作の上での開発を考えればこの価格で購入するのも問題ない、というか、プログラム開発以外の要らぬ心配を生みたくないのなら迷わぬ選択だが、学校やウサギ小屋など予算の限られた場所では、多少安定動作を犠牲にしてでも、安価で使えるものを用意せねばならない。 で、自作して、本体価格までの差を労働力でカバーするというわけだ。

    prototype board parts surface
    試作基板表
    prototype board solder surface
    試作基板裏
    typical board parts surface
    完成基板
    18pin DIP adapter board
    18ピンソケット基板


  3. 回路について
  4.  純正ICD2の回路構成は、CY7C64603によるUSB→パラレル変換部、PIC16F877のCPU部、RS232 I/F部、電圧制御部となっている。 代用の難しい特殊な部品としては、CY7C64603、MCP41010SNがあり、これらは海外通販などを利用しないと入手が難しい。 入手性も含めて、動作するのに必要最低限の部分だけの構成に改造し、製作費を極力抑えるようにしなければならない。

    Microchip ICD2
    純正ICD2

    MPLAB IDEと連携使用では、ターゲットPICのシリーズを変更する毎にICD2上のPIC16F877のファームウェアがターゲット専用のファームウェアに書き換わるようになっている。 下手に独自の互換ファームなどを作成したりして、この書き換えシステムが成立しないようなシステムであっては使いにくくなるので、回路構成をできるだけ互換とし、純正の取り扱いそのままつかえるようにしたい。

    海外のサイトの文献や、試作して実験をしてみたところ、RS232C接続で使う場合 USB部は無くても動作可で、MCP41010(電子ボリューム)を使った電圧制御機構は、半固定抵抗によるダミー回路でも問題なく動作することが判った。

    純正回路にある MCP41010は Vpp電圧を PICからダイナミックに調整するための電子ボリュームである。 PICのプログラム電圧は個々のデーターシートを見ると判るが、最大値が 12.5Vのものと、最低電圧が 12.7V(PIC16F7x)のものが存在する。 ほとんどの PICは 12.5Vで規格値であるので、クローン回路では、12.7VなPICを使用する場合 J2のショートピンを抜くとオフセットがかかりVpp電圧を13.0Vに変更することができるようになっている。 ・・・・・っつーか、おいら16F7xなんて一生使わんかも。

    当初、電源回路に 15Vの入力から三端子レギュレータを使って5Vと12.5Vを得る回路だったのだが、試作してみたところ、ターゲット電圧供給モードにして 100mAも流すとレギュレータが触れないくらい熱くなってしまった。 15Vから5Vの10V, 1Wが熱になっているという訳である。 これは、スイッチングタイプのACアダプタで 5Vの定電圧入力とし、ターゲット電源は降圧なしでそのまま、VppはTL497を使った昇圧回路を使う回路に変更した。これなら、ターゲットから多少負荷がかかっても大丈夫だ。 ちなみに、純正ICD2は 9VのACアダプタから三端子を使って5Vを得ている。

    ACアダプタは5Vスイッチングタイプ使用のこと!


    レギュレータを省略した場合、安定化した5V電源を入力しなければならないので、負荷によって電圧が変動するトランスタイプのアダプタは使用することはできない。 テスターで計ってみれば判るが、5Vのトランスタイプの無負荷時電圧は7V以上はあると思う。 もし、使用する場合は入力に5Vの三端子レギュレータを増設して、7〜8VのACアダプタを使ってほしい。

    さて、最初の三端子レギュレータ版では、HC125/HC126のバッファ回路を搭載していたが、バッファ無しにしてコストを抑えようと、二回目に試作した回路ではごっそり取り除いてみた。 ところが、18F452でテストしてみると、バッファ有りのICD2では動作するのに、バッファ無しではベリファイエラーとなって動かなくなってしまった。 不思議なことに、16F877(16Fシリーズ?)はバッファ無しでも動作する。信号のループバックかHi-Z時の信号状態により通信に問題がでてくるのか? 結局、最後の回路ではバッファ部分を元に戻した。

    Schematic diagram
    Flash Paper Document回路図 (2008/05/28)

    最終的には製作費を4,000円程に抑えることができた。 通販サイト価格で見積もっても 5,000円以下で作ることができると思う。 秋月のライターみたく基板だけのケース無しにすればもうちょっと安くあがる。

    ちなみに、PIC16F877の代わりに 876などの 28ピンPICを使用することもできるようである。 今回の設計では基板はケースの大きさベースになり、28ピンPICを使って小さく作る必要もなく、秋月価格では 16F877の方が安いためこちらの方を使っている。



  5. 製作


  6. 動作チェック
  7.  まず、PCのCOMポートの FIFOを無効にしておかなければならない。 デバイスマネージャで設定するのだが、ダイナミックには変更されない。 設定したら再起動が必要である。 私はこれでハマった。 純正ICD2では普段 USBで接続するので気がつかない。

     PCのCOM1に接続して、MPLABを起動する。 Programmer→Select Programmerで ICD2を選択すると、USBで接続しようとして失敗するので、SettingメニューからCommunicationタブで接続をCOM1 57,600bpsに設定する。 この操作は、ICD2の通信ポート設定がデフォルトで USBとなっているので、使用する度に毎回する必要がある。

    connection error at FIFO enabled
    FIFOが有効になっている時のエラー
    FIFO setting for COM port
    FIFOの設定

     次に OS(ファームウェア)のダウンロードをする。 Download ICD2 Operating systemを選ぶと、ファームのファイル名を聞いてくるので、選択可能なファイルでOKし、実行する。 ファイルの選択画面には HEXファイルが一つだけ表示されているはずだ。 もし、接続に失敗する場合は、FIFOを無効にした後ちゃんと再起動したかどうか思い出してみよう。

    OS download
    ダウンロード時の画面

     ターゲットとを結ぶICSPのケーブルはあまり長くしない方が良い。 20cmくらいか。

     Programmer→Setting→Powerタブを開くと、ICD2のA/D入力で Vpp電圧のチェックができる。 おおよそ 12.5Vを示していれば問題ない。 ターゲットへの電圧供給チェックを入れたり切ったりしてターゲットVddの数値が 5V, 0Vになるかも確認しよう。

     なお、この電圧表示は電源アダプタの電圧、1%抵抗の誤差によって数値が変わってくる。 まともな表示を得たい場合は電源アダプターの電圧誤差も±1%以下に納めることだ。

    check Vpp voltage
    電圧確認タブ

     PICを一つ用意して、書き込みアダプタから書き込み・ベリファイが成功すればおおよそ動作はOKであろう。

    normal connection
    正常接続時画面



  8. 補足(USB接続)
  9. クローン製作サイトの中には、FT232などの USBシリアルを付けて USB化を謳っている所もあるが、結局のところシリアルで通信することとなる訳で、スピードも 57,600bps最大となり、あまり意味が無い。 USBシリアルケーブルを買ってきて途中に付ける方がまだましだ。 高速通信をしての USBなのだ。

    さて、実は、MPLAB 7.3xから、ICD2のフォルダに 18F4550用のファームが置いてあったのである。 未確認ではあるが、最新型のICD2には、ディスコンの Cypressのチップの代わりに 18F4550が載っているものと思われる。

    ICD2_4550_BOOT_xxxx.BINファイルに 0x80のオフセットを付けて、先頭番地に初期化ルーチンを加えて書き込み、USBにつなげると、同じフォルダにあるICD2_4550_OS_xxxxの本プログラムを勝手に読み込んで起動するようになっているみたいである。 下記に参考回路を示す。16F877のパラレルポートに接続すると、USBで通信が可能となるらしい。

    今回の製作では、コストダウンが目的の一つであるため、USBネタは回路図のみとする。 将来的には増設するかもしれない。

    sample schematic extention USB
    USB化回路



  10. 参考リンク

E-mail [羈]筝罩c蕁喝婚眼膊宴箙吾菴篋篋障主鎧<若腟吟翫障
-- LINK FREE --
 
HOME LAST