2009/04/28

PIC 16F887のRB3/PGMピン

基板から焼いている(今更ながらの)EEPROMライターですが、16F887とFT245AMボード間の通信部分を作っていたのですが、一文字入力すると文字化けするという現象に出くわしました。

色々調べたところ、実は文字化けしているのではなくて「PIC自体にリセットが掛かっている」ことがわかりました。さらに調べると、FT245AMにデータが到着した際に立つビット(RXF#信号)が悪さをしていることがわかりました。

この信号はPICのRB3ピンに繋がっているのですが、PIC 16F887のRB3ピンはPGMピンという見慣れないピンを兼用しています。このピンはLVP(Low Voltage Programmingモード)モードという低電圧プログラミング機能のためのもので、そしてLVPモードはデフォルトのコンフィグ・ワードではオンになっています。
#pragma DATA _CONFIG1, _INTRC_OSC_NOCLKOUT & _WDT_OFF , ... _LVP_OFF

と_LVP_OFFを追加したらリセットが掛からなくなりました。

ちょっとハマってしまいました。

3 件のコメント:

匿名 さんのコメント...

私も同じところで躓いており、途方にくれておりましたが、こちらでビンゴ情報を得、無事解決しました。ありがとうございます。

taipapa さんのコメント...

お役に立てて幸いです。
こういうコメントをいただくとブログを継続する気力がわきます(と言いつつ、諸事情で、最近は腰を据えた電子工作はできていませんが)。

匿名 さんのコメント...

わたしもPGMピンをピンセットで触ると動作が停止して困ってました。
アウトプットに設定したり、プルアップに設定したりしてもだめで、おっしゃるとおりLVPでした。。