アマチュア無線や電子工作,バイクの話などを徒然なるままに書き散らすメモ程度のblogです.


by jq1ocr

ICSP on 877A

部品の置き方の関係から,試作している回路の LCD 接続ポートは RB# を使っていたのですが,ICSP では RB7 と RB6 を PGD, PGC として使うので,RB# をそのまま RD# にもっていきました.プログラムの書き換えも動作も問題なかったので気をよくして,空けた RB6,7 を使う ICSP にチャレンジしてみたのですが,どうも動作がおかしいです.もちろん MPLAB からは debug モードにして電源も target を使うようにしてあります.

具体的には RA0 に LED を接続し,それをオンオフさせるようにしてみました.すると,最後にオンの状態で while(1) (無限ループ)に入るようにしてあるのにも関わらず,オフになります.一度,試作回路の電源を落として,もう一度入れてみると今度は動作しません.また ICSP 回路を外しても動作しません.

RB6, 7 には他の回路はつながっていないので,そのまま直結.MCLR は PICkit 側から書き込み時に高圧が出るようなので,target 側の +5V ラインは逆流防止のためのダイオードを介して MCLR に入れています.PICkit の #1(Vpp/MCLR) は直接つながっています(要するに上記ダイオードのカソードにつながっている).

ちなみに ICSP を外した状態にしても動かないので,プログラムがおかしいと判断.PIC を外して,Program モードで書き直したものを回路(もちろん ICSP は外してある)に戻すと正常に動作します.結局プログラムの終わり方と,target 側の電源を一度オフにしてオンにすると動かない(ということは target を個別にリブートできない)点が合点がいかないところです.

もちろん ICSP ができる環境は持っているはずなので,回路の組み方がおかしいのだと思いますが.....どこがおかしいのかなぁ.もうちょっとマニュアルをしっかり読んでみます.(日本語のないかな?笑)
[PR]
by jq1ocr | 2009-10-25 02:22 | マイコン・電子工作 | Comments(0)