So-net無料ブログ作成

PIC16F887にOnboard書き込みが出来なくなった [PICkit3]

これまで何度も行なってきた手順に従って、操作・表示モジュールのプログラムをOnboardで書き換えようとしたのですが、突然出来なくなってしまいました。

Outputウィンドウには”verify complete”と表示され、正しく書き込めたように思えます。ところがresetを掛けると、以下のエラー・メッセージが出て、先に進めません。

PK3Err0040: The target device is not ready for debugging.
Please check your Configuration bit settings and program(以下省略)

このエラー・メッセージは、これまでにも何回か出会っています。例えば”クロックが動いていない”とか、”コンフィグの設定がDEBUG_OFF”だったとか・・・
ところが今回はいくら調べても(それまで動いていたプログラムなのです)原因が判りません。

実は、I2Cライブラリの開発中に操作・表示モジュールへのOnboard書き込みが不安定な様子を示す事は度々ありました。一回目の書き込みで正しく起動しないときに、同じプログラムをもう一回書き込むと動くようになるのです。結果オーライで作業を進めてきましたが、とうとう行き詰まってしまいました。

『問題は書き込む際のVdd電圧なのではないか』と考えています。PICkit3のUser's Manualに以下の記述があります。

”For programming, no clock is needed on the target device, but power must be supplied.”

ところが、書き込み時に必要なVddの電圧に関する記述が(探した限りでは)見つからないのです。 PICのUSER'S FORUMかどこかで4.5V以上という数値を見た気もするのですが、定かではありません。

確かにVddを5Vにして書き込むと一発で正しく書き込めます。今回も、Onboardで書き込めなかったデバイスをブレッド・ボードに移して、Vddを5Vにすると正しく書き込める(デバッガで動作する)ことが分かりました。ターゲット・ボードでも電源電圧を5Vにして書き込めれば良いのですが、同じVddにつながっているLCD(3.3V仕様)の最大定格(=4.5V)が問題です。

書き込みの度にLCDを取り外したりすると、コネクタのピンを曲げてしまったり、接触不良を起こしたりしそうで、心配です。問題を起こす前にさっさと5V系のLCDに変更した方が良いかなぁ〜。

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(2)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 2

通りすがり

問題はバルクイレースする時の電圧が5V無いと、バルクイレース出来ないのが原因だと思います。
データシートをよーく見ると書いてあります。
VDD for Bulk Erase Operations : 4.5(min) ~ 5.5V(max)
イレースせずに上書きしていると思われます。
プロテクトを掛けると、VDD=5V無いとプロテクトはずせません。
私はVDD=3.3Vで設計して痛い目に遭いました。。。周辺の3.3V系の石にはガマンしてもらって、無理矢理4.5V注入しましたが。。。(汗


by 通りすがり (2011-11-28 16:04) 

broadbeans

こんにちは! コメントの存在に気付かず申し訳ありませんでした。
マニュアルの14.10項に以下の記述を見つけました。
When using low-voltage ICSP, the part must be
supplied at 4.5V to 5.5V if a bulk erase will be executed.

CONFIGでLVP_OFFに設定していても、この条件が適用されるということでしょうか?

マニュアルの17.5項 (D132 VPEW)にも関連する記述がありました。
VDD for Row Erase/Write VMIN — 5.5 V
VDD for Bulk Erase Operations 4.5 — 5.5 V

PICkit3の方で”Vddに合わせてRow EraseとBulk Eraseを切り替える”なんてことはしてくれないんですネ。

by broadbeans (2012-04-17 13:14) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0