ec2-3-23-103-216.us-east-2.compute.amazonaws.com , 96776th | 2008/05/28 UPDATED |
修正履歴 2006/7/12 初版 2006/8/22 回路に R31を追加。デバイス 16F873Aで デバッグモードに入る際 ICD0083エラーが出るのを修正. 2008/5/28 リセット制御回路を追加。
試作基板表 |
試作基板裏 |
完成基板 |
18ピンソケット基板 |
純正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を得ている。
さて、最初の三端子レギュレータ版では、HC125/HC126のバッファ回路を搭載していたが、バッファ無しにしてコストを抑えようと、二回目に試作した回路ではごっそり取り除いてみた。 ところが、18F452でテストしてみると、バッファ有りのICD2では動作するのに、バッファ無しではベリファイエラーとなって動かなくなってしまった。 不思議なことに、16F877(16Fシリーズ?)はバッファ無しでも動作する。信号のループバックかHi-Z時の信号状態により通信に問題がでてくるのか? 結局、最後の回路ではバッファ部分を元に戻した。
回路図 (2008/05/28) |
ちなみに、PIC16F877の代わりに 876などの 28ピンPICを使用することもできるようである。 今回の設計では基板はケースの大きさベースになり、28ピンPICを使って小さく作る必要もなく、秋月価格では 16F877の方が安いためこちらの方を使っている。
千石の通販だと、小さい部品は10個単位でないと買えないので、何も考えず注文すると結構な出費になるほか、余った 9個の部品はゴミになってしまう。 調べでは、今回使った全ての部品がそろう通販は無いみたいなので、送料と相談の上、それぞれうまいところから購入すれば良い。 一個買いで効率よく買えるのはやはりアキバの小売店を歩き回わることである。
ガーバーデータはフリーのプレビューソフト等を使うとプリンタに打ち出す事ができるので、感光基板で作る場合は利用すると良い。 後の詳細な手順については、どこぞのプリント基板製作入門を参照してもらうということで割愛する。
基板アートワーク (2008/05/28) |
図面を無地のタッグシールに打ち出し、アルミ板に貼り付けて加工すると寸法決めが簡単になる。 ちなみに私は、小型フライス盤に5mmのミルを付けて丸穴と角穴の加工をした。
パネル図面 (2006/07/05) |
MPLAB IDEをPCにインストールすると、フォルダ C:\Program Files\Microchip\MPLAB IDE\ICD2\が作成されるのでその中の BL010101.HEXを PIC16F877に書き込めばOKである。 ちなみに、MPLABとPICSTARTで既存HEXを書き込むには、File→ImportでHEXファイルを取り込んで書き込めば良い。
ブートローダーの選択 |
PCのCOM1に接続して、MPLABを起動する。 Programmer→Select Programmerで ICD2を選択すると、USBで接続しようとして失敗するので、SettingメニューからCommunicationタブで接続をCOM1 57,600bpsに設定する。 この操作は、ICD2の通信ポート設定がデフォルトで USBとなっているので、使用する度に毎回する必要がある。
FIFOが有効になっている時のエラー |
FIFOの設定 |
ダウンロード時の画面 |
Programmer→Setting→Powerタブを開くと、ICD2のA/D入力で Vpp電圧のチェックができる。 おおよそ 12.5Vを示していれば問題ない。 ターゲットへの電圧供給チェックを入れたり切ったりしてターゲットVddの数値が 5V, 0Vになるかも確認しよう。
なお、この電圧表示は電源アダプタの電圧、1%抵抗の誤差によって数値が変わってくる。 まともな表示を得たい場合は電源アダプターの電圧誤差も±1%以下に納めることだ。
電圧確認タブ |
正常接続時画面 |
さて、実は、MPLAB 7.3xから、ICD2のフォルダに 18F4550用のファームが置いてあったのである。 未確認ではあるが、最新型のICD2には、ディスコンの Cypressのチップの代わりに 18F4550が載っているものと思われる。
ICD2_4550_BOOT_xxxx.BINファイルに 0x80のオフセットを付けて、先頭番地に初期化ルーチンを加えて書き込み、USBにつなげると、同じフォルダにあるICD2_4550_OS_xxxxの本プログラムを勝手に読み込んで起動するようになっているみたいである。 下記に参考回路を示す。16F877のパラレルポートに接続すると、USBで通信が可能となるらしい。
今回の製作では、コストダウンが目的の一つであるため、USBネタは回路図のみとする。 将来的には増設するかもしれない。
USB化回路 |
-- LINK FREE -- |
||
HOME | LAST |