リセット制御回路を追加。概要マイクロチップ純正のデバッガICD2はの価格はおおよそ3万円。安定動作の上での開発を考えればこの価格で購入するのも問題ない、というか、プログラム開発以外の要らぬ心配を生みたくないのなら迷わぬ選択だが、学校やウサギ小屋など予算の限られた場所では、多少安定動作を犠牲にしてでも、安価で使えるものを用意せねばならない。I/F部、電圧制御部となっている。代用の難しい特殊な部品としては、CY7C64603、MCP41010SNがあり、これらは海外通販などを利用しないと入手が難しい。入手性も含めて、動作するのに必要最低限の部分だけの構成に改造し、製作費を極力抑えるようにしなければならない。IDEと連携使用では、ターゲットPICのシリーズを変更する毎にICD2上のPIC16F877のファームウェアがターゲット専用のファームウェアに書き換わるようになっている。下手に独自の互換ファームなどを作成したりして、この書き換えシステムが成立しないようなシステムであっては使いにくくなるので、回路構成をできるだけ互換とし、純正の取り扱いそのままつかえるようにしたい。USB部は無くても動作可で、MCP41010(電子ボリューム)を使った電圧制御機構は、半固定抵抗によるダミー回路でも問題なく動作することが判った。PICからダイナミックに調整するための電子ボリュームである。12.7V(PIC16F7x)のものが存在する。J2のショートピンを抜くとオフセットがかかりVpp電圧を13.0Vに変更することができるようになっている。・・・・・っつーか、おいら16F7xなんて一生使わんかも。100mAも流すとレギュレータが触れないくらい熱くなってしまった。1Wが熱になっているという訳である。5Vの定電圧入力とし、ターゲット電源は降圧なしでそのまま、VppはTL497を使った昇圧回路を使う回路に変更した。これなら、ターゲットから多少負荷がかかっても大丈夫だ。9VのACアダプタから三端子を使って5Vを得ている。ACアダプタは5Vスイッチングタイプ使用のこと!レギュレータを省略した場合、安定化した5V電源を入力しなければならないので、負荷によって電圧が変動するトランスタイプのアダプタは使用することはできない。テスターで計ってみれば判るが、5Vのトランスタイプの無負荷時電圧は7V以上はあると思う。使用する場合は入力に5Vの三端子レギュレータを増設して、7〜8VのACアダプタを使ってほしい。最初の三端子レギュレータ版では、HC125/HC126のバッファ回路を搭載していたが、バッファ無しにしてコストを抑えようと、二回目に試作した回路ではごっそり取り除いてみた。ところが、18F452でテストしてみると、バッファ有りのICD2では動作するのに、バッファ無しではベリファイエラーとなって動かなくなってしまった。不思議なことに、16F877(16Fシリーズ?)はバッファ無しでも動作する。結局、最後の回路ではバッファ部分を元に戻した。(2008/05/28)最終的には製作費を4,000円程に抑えることができた。5,000円以下で作ることができると思う。秋月のライターみたく基板だけのケース無しにすればもうちょっと安くあがる。28ピンPICを使用することもできるようである。今回、基板は感光基板で起こしてしまったが、配線は多くないので、ユニバーサル基板でガリガリ手配線しても良いだろう。9個の部品はゴミになってしまう。調べでは、今回使った全ての部品がそろう通販は無いみたいなので、送料と相談の上、それぞれうまいところから購入すれば良い。一個買いで効率よく買えるのはやはりアキバの小売店を歩き回わることである。今回は、タカチの汎用プラケースに収納できるように、基板を起こした。ピン間2本の細度である。露光・エッチング時間、温度管理に多少気を遣わねばならないレベルなので、製作する場合は神経を使って欲しい。ガーバーデータはフリーのプレビューソフト等を使うとプリンタに打ち出す事ができるので、感光基板で作る場合は利用すると良い。後の詳細な手順については、どこぞのプリント基板製作入門を参照してもらうということで割愛する。PC-120を使用した。穴加工は基本であるが、丸穴はセンターポンチを打ってボール盤で、角穴は丸穴→ハンドニブラ→角ヤスリか、丸穴→角ヤスリだ。あと、ボール板は材料を治具で固定しないと正確な穴は開かない。図面を無地のタッグシールに打ち出し、アルミ板に貼り付けて加工すると寸法決めが簡単になる。ちなみに私は、小型フライス盤に5mmのミルを付けて丸穴と角穴の加工をした。Vpp電圧(U3の6番ピン)が12.50VになるようにVR1を調整する。ブートローダーの書き込み空っぽのPICを取り付ければ勝手にMPLABで動くという訳ではなく、ブートローダと呼ばれる種ファームを最初の一度だけ書き込んでお必要がある。PICの書き込み機が一度だけ必要になるので、何も持っていない場合は、買うか借りてくるかしなければならない。PIC16F877に書き込めばOKである。ちなみに、MPLABとPICSTARTで既存HEXを書き込むには、File→ImportでHEXファイルを取り込んで書き込めば良い。FIFOを無効にしておかなければならない。デバイスマネージャで設定するのだが、ダイナミックには変更されない。設定したら再起動が必要である。USBで接続するので気がつかない。PCのCOM1に接続して、MPLABを起動する。57,600bpsに設定する。USBとなっているので、使用する度に毎回する必要がある。OS(ファームウェア)のダウンロードをする。systemを選ぶと、ファームのファイル名を聞いてくるので、選択可能なファイルでOKし、実行する。HEXファイルが一つだけ表示されているはずだ。接続に失敗する場合は、FIFOを無効にした後ちゃんと再起動したかどうか思い出してみよう。ダウンロード時の画面ターゲットとを結ぶICSPのケーブルはあまり長くしない方が良い。Vpp電圧のチェックができる。12.5Vを示していれば問題ない。0Vになるかも確認しよう。この電圧表示は電源アダプタの電圧、1%抵抗の誤差によって数値が変わってくる。まともな表示を得たい場合は電源アダプターの電圧誤差も±1%以下に納めることだ。57,600bps最大となり、あまり意味が無い。USBシリアルケーブルを買ってきて途中に付ける方がまだましだ。18F4550用のファームが置いてあったのである。18F4550が載っているものと思われる。0x80のオフセットを付けて、先頭番地に初期化ルーチンを加えて書き込み、USBにつなげると、同じフォルダにあるICD2_4550_OS_xxxxの本プログラムを勝手に読み込んで起動するようになっているみたいである。下記に参考回路を示す。16F877のパラレルポートに接続すると、USBで通信が可能となるらしい。今回の製作では、コストダウンが目的の一つであるため、USBネタは回路図のみとする。将来的には増設するかもしれない。