- ベストアンサー
PICのEEPROMのデータが壊れてしまう可能性とは?
- PICのEEPROMにデータを書き込んでいる際に、電源のON/OFFを繰り返すとデータが妙な値に書き換わることがあります。
- この問題は製品の個体差があり、不具合の出ない個体も存在します。
- 製品Aではアドレスaが書き換わってしまい、製品Bではアドレスbのデータが不正な値になることがあります。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
10中8、9はリセット回路がうまく行っていないと思います。 簡単なコンデンサに抵抗噛ませただけの回路の なんちゃってリセットとかで良くある話 リセット用ICなどを使うようにしましょう。 あとはリセット後にすぐEEPROMを書きに行くような 起動回数カウンタとかのアプリケーションを 何の工夫もなく書くとありがちかなあ。 PICのEEPROMが化けるのは何らかの原因で 間違えたタイミングでEEPROM書き込みルーチンを実行しているからです。 解析の基本はEEPROM書き込みルーチン内にデバッグコードを仕込むことです。 もしかすると茶色な動作の関係かも知れんし 追加情報がないとなんとも言えないような感じですね。
その他の回答 (5)
EEPROMのデータ化けは、単体のデバイスでは信号を追えたので、原因が分かった事は有るけれど、PICの様なワンチップCPUでは内部がのぞけないので、もっと詳細な情報が無いと誰も答えられない。
お礼
その辺の高周波 様 詳細な情報がないと誰も答えられない→ご指摘の通りです。確認した限りでは電源のオーバーシュートやアンダーシュートもなく、特にOFF時の不安定な電圧値での電源の残りなどもありませんでした。ただ、別の方から頂いたアドバイスでリセットを見直すと不具合が発生しなくなりましたので、そちらの観点から検証を進めていきたいと思います。ご回答ありがとうございました。
プログラムを書き込んで製品に組み込んだ後での話ですよね。 データ領域に不正に書き込まれると言うことでしょうか。 電源投入時の電圧の立ち上がりをオシロで確認して 順序やノイズをチェックしましたか? 非常に珍しい条件ですが データを書き込むポートが 電源投入時に条件が揃ってその時の状態に合わせた データを書き込んだりしていませんか? もし、データ領域なら起動後に一定のデータを書き込ますことで 避けることも出来るかも知れませんが そう言った使い方が出来る状況では無いんでしょうねきっと
お礼
plus 様 ご回答頂き、ありがとうございました。データ領域に起動後に一定のデータを書き込ますという手法もあるのですね。確認してみたいと思います。頂いた回答は参考にさせていただきます。ありがとうございました。
このスレッドに対する回答ではありませんが、気になったので以前のご質問 No.44263 このような機器にPSEマークは必要ですか? に対して書き込ませていただきます。 PSEとは、電気用品安全法及びそれに基づく表示を表します。 電気用品安全法の全貌は、かなり複雑なのでこの回答欄で正確に記述する ことは困難です。多少不正確であることをお含み頂いて、電気用品安全法 の対象になる品物を記述すれば次の通りです。 (1)次のURLの電気用品安全法施行規則に規定されている品物だけが対象 であって、その他の品物は規制を受けません。 http://law.e-gov.go.jp/cgi-bin/idxselect.cgi?IDX_OPT=1&H_NAME=%93%64%8b%43%97%70%95%69%88%c0%91%53%96%40&H_NAME_YOMI=%82%a0&H_NO_GENGO=H&H_NO_YEAR=&H_NO_TYPE=2&H_NO_NO=&H_FILE_NAME=S37F03801000084&H_RYAKU=1&H_CTG=1&H_YOMI_GUN=1&H_CTG_GUN=1 (2)大づかみに言えば、定格電圧が100V以上300V以下及び定格周波数が50Hz 又は60Hzのもので、交流電路に使用する電気機械器具が対象です。直流を 供給されて動作する電気機械器具は、僅かな例外を除き非対象です。 お問い合わせの製品は、電気用品安全法の対象ではなく、PSEマークを表示 する必要は無い・・・・表示してはいけない・・・・と思います。 電気用品安全法の行政窓口又は認証機関に問い合わせれば、同様の回答が ある筈ですので、(1)さんの回答に従えば、問題を起こさずに済むと思いま すが、少々不正確と思いましたのでこの場を借用させていただきました。
お礼
ohkawa 様 ご回答頂き、ありがとうございます。PSEの全貌は複雑ということですが、弊社でもベテラン数人に確認したところ、結構認識の違い等があり、おっしゃられたとおり、PSEの複雑さを実感しました。しっかり勉強してみようと思います。 頂いた回答はご参考にさせていただきます。ありがとうございました。
基本的な内容ですが、貴殿又は貴社のAC電源の電圧又は電流の変化は規定内値でしょうか? ある処でCADの仕事をしていた時に、小生のCADがタイマー設定での自動保存がスタートしました。 その瞬間に、同じコンセントからの電源を取っている隣人がCAD電源とLCD電源を2個リズムよく ポン!ポン!ポン!と落としたら、CADがエラー表示して落ちました。 多分、それと同じで、AC電源の電圧又は電流の変化が規定外値となったか、それ等によって ノイズが発生し悪さをしたかです。 多分、後者の方だと思いますから、費用をかけない場合は、PICのEEPROMにデータを 書き込み中には電源のON/OFFを繰り返さないようにするしかないでしょう。 費用をかける場合は、専用の電源ケーブルを通すですかね。
お礼
後(ご)の先(せん)、アフターユー 様 ご回答ありがとうございます。書き込み中には電源のON/OFFはしておらず、電圧等は特に問題なさそうでした。別に何か要因がありそうです。頂いた回答は参考にさせていただきます。ありがとうございました。
具体的なハード、ソフトがわからないと正確なことは言えませんが 書き込み途中で電源が落ちるというようなことはないでしょうか? 書き込んだ後、書き込み禁止にしていますか? もし、書き込み途中で電源が落ちるような場合、ハードで対策をとるか ソフトで電源が落ちていることをあらかじめポートで入力をして CPUの電源は処理が終わるまでの間、コンデンサなどで 保つようにするなどの方法があります。 そのほかにはデータの二重化、チェックサムによるデータ検証 で、どちらのデータが正解かを判断する方法もあります。
お礼
志国様 ご回答頂き、ありがとうございます。確認してみたところ電源電圧は書き込み中にキープできてはいました。別の要因の可能性があります。頂いた回答は参考にさせていただきます。ありがとうございました。
お礼
tigers様 ご回答ありがとうございます。リセットで単純な抵抗+コンデンサだけで構成していましたが、リセットICを使用してうまくいっているという情報がありました。リセットが重要な可能性がありそうです。頂いた回答を参考にしたいと思います。ありがとうございました。