RB7(PGD)とRB6(PGC)を入力ポートとして使うのはNG [PICkit3]
(2012.02.29)
これまでPGDやPGCはポートとして使用することを避けてきましたが、今回製作したUSB_ControlerではRB7(PGD)とRB6(PGC)をSW入力に使いました。
PGDとPGCを入力ポートとして使った
タクトSWがオフならPICkit3の動作に問題は生じない筈です。そして、マニュアルにある以下の記述も『まぁ、当然のこと』と考えていました。
”All other pin functions are disabled when ICSP. or ICD operation is enabled.”
問題は”ICSP operation is enabledになるのは何時か”ということです。プログラミング中とデバッガでhaltしたときは、PICkit3とターゲット間の通信が発生するので当然”ICSP operation is enabled”だろうと思いましたが、それ以外はPGDやPGCがHi-Zになり入力ポートとして使えるのではないかと思ったのです。
結果は”駄目”でした。Programmerで書き込み後、”Release From Reset”してもPGD,PGCは1.0V位の電圧を示し、Hi-Zにはなりません。つまりPICkit3を外さないとRB7とRB6を入力ポートとして使えないのです。orz
幸いこのSW機能を省いてもUSB_Controlerの動作に支障はないのですが、RB7(PGD)とRB6(PGC)を入力ポートとして使うのはNGです。(追記をご参照下さい)
-----------------------------------------------------------------------------------------
(2012.05.14)
『PICkit3側についているプルダウン抵抗の問題だ』というご指摘を頂き、早速ユーザース・ガイドでPICkit3の出力回路を調べてみました。
4.7kでプルダウンしている
”weak pull_upは20kΩ程度のプルアップ抵抗に相当する”と考えるのが良いようで、"PICkit3側でプルダウンされるピン(PGDとかPGCとか)は3.3k以下の外付け抵抗でプルアップするか、もしくはプルダウン型(SWオンでHiになる)にしなければならない”と言うことのようです。ご指摘頂き、有難うございました。
-----------------------------------------------------------------------------------------
これまでPGDやPGCはポートとして使用することを避けてきましたが、今回製作したUSB_ControlerではRB7(PGD)とRB6(PGC)をSW入力に使いました。
PGDとPGCを入力ポートとして使った
タクトSWがオフならPICkit3の動作に問題は生じない筈です。そして、マニュアルにある以下の記述も『まぁ、当然のこと』と考えていました。
”All other pin functions are disabled when ICSP. or ICD operation is enabled.”
問題は”ICSP operation is enabledになるのは何時か”ということです。プログラミング中とデバッガでhaltしたときは、PICkit3とターゲット間の通信が発生するので当然”ICSP operation is enabled”だろうと思いましたが、それ以外はPGDやPGCがHi-Zになり入力ポートとして使えるのではないかと思ったのです。
結果は”駄目”でした。Programmerで書き込み後、”Release From Reset”してもPGD,PGCは1.0V位の電圧を示し、Hi-Zにはなりません。つまりPICkit3を外さないとRB7とRB6を入力ポートとして使えないのです。orz
幸いこのSW機能を省いてもUSB_Controlerの動作に支障はないのですが、RB7(PGD)とRB6(PGC)を入力ポートとして使うのは
-----------------------------------------------------------------------------------------
(2012.05.14)
『PICkit3側についているプルダウン抵抗の問題だ』というご指摘を頂き、早速ユーザース・ガイドでPICkit3の出力回路を調べてみました。
4.7kでプルダウンしている
”weak pull_upは20kΩ程度のプルアップ抵抗に相当する”と考えるのが良いようで、"PICkit3側でプルダウンされるピン(PGDとかPGCとか)は3.3k以下の外付け抵抗でプルアップするか、もしくはプルダウン型(SWオンでHiになる)にしなければならない”と言うことのようです。ご指摘頂き、有難うございました。
-----------------------------------------------------------------------------------------
|
|
|
今晩は、やっとPIC10F322をやっとやっつけ提出しましたが、デバッグ中にPORTA3で同じような目にあいました。
他の用途でPORTAが足らなくなり、リセットしない時はいいやと思ってスイッチにアサインしましたが、スイッチ押しても動作せず、しばらく悩んでました。PICKIT3外すとスイッチ利くのでそんなものかと思いましたが、この書き込み見てそうなんだと思った次第です。
17日出席されるようでしたらそちらでもよろしくです。
by nobcha (2012-02-29 21:26)
こんにちは!
コメントの存在に気付かず申し訳ありませんでした。
PICの曖昧なマニュアル表現には毎回悩まされますネ。
by broadbeans (2012-04-17 12:43)
pickit3のPGD,PGCはプルダウンされているからだと思います。
回路を見た感じではPORTBの内蔵プルアップ機能を使っているのだと思いますが、プルダウン抵抗外付けでスイッチオンでHになるようにしたら使えそうです。
by NO NAME (2012-05-13 15:32)
こんにちは!
なるほど、PICkit3のUSER's GUIDEを見て納得しました。頂いた情報に基づいて、本文に加筆することにします。コメント有難うございました。
by broadbeans (2012-05-14 11:58)