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に変更した方が良いかなぁ〜。
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に変更した方が良いかなぁ〜。
|
|
|
問題はバルクイレースする時の電圧が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)
こんにちは! コメントの存在に気付かず申し訳ありませんでした。
マニュアルの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)