簡単な制御のために、めったに使わない PIC(12F675)で回路の設計を行いました。
主電源の切断後 EEPROM にデータをセーブさせるため、
ダイオードと 100uF のキャパシタにより、マイコン電源のブラウンアウト時間を遅らせています。
回路はこんな感じ。
PICKit3 を使って ICSP での FW 書き込み時に問題が。
1回目は書き込みできるのですが、2回目以降は Verify に失敗・・・。
Erase しても フラッシュROM の内容は変わりません。
なぜでしょうか。
PIC12F675 の電源電圧範囲は 2-5.5 V だから、問題ないはず…。
データシートにもプログラミング時の制約の記載はないし。
答えはデータシートではなく、「Programming Specifications」にありました。
(PIC12F629/675/PIC16F630/676 EEPROM Memory Programming Specification より)
これによると、このチップでは、4.5 V 未満の VDD での FLASH 書き込み・イレースが
保証されていません。
実際、上記回路ではおよそ VDD = 4.3 V になります。
(参考:PICKit 3 Help より)
本当かなと思い、5.0 V 電源で確認すると、確かに書き込みが正常に行われました。
というわけで、回路をこのように変更してOKです。