ニックネーム: 居酒屋ガレージ店主
★ZAQのBlogari停止のため、あれこれ「データ吸い出し」対策しています。 新規記事はとりあえず停止。 コメント書き込みはまだ有効です。 (JH3DBO 下間憲行)
2013年06月04日(火)
ATtiny25マイコンEEPROM不良
マイコン型導通チェッカー組み立てキットで使っているアトメルの
「ATtiny25V」、導通チェッカーのプログラムを書いていましたら
不良品に出くわしました。



今回、書き込んだロットの数は50コ。
チップにプログラムを書き込んだあと、ベリファイして間違
いないか確認しています。
全数書き込み後、しばらくたってから(この間シール貼り)
のベリファイです。

今回、その中で一つだけおかしなのに出くわしました。
EEPROMの1バイトが保持されません。
書き込み後、通電したままでベリファイするぶんには正常。
ところがいったん通電をやめてからベリファイすると、
アドレス0004の1バイトだけ、本来0x02を書いたはずが0xFF
(初期値)
に戻ってしまうのです。
電源を切ったら忘れてしまうEEPROMでは役に立ちません。
過去、たくさんのチップを書いてきましたが、こんなトラブル
って初めてかなぁ。


2013年6月4日 17時21分 | 記事へ | コメント(6) | トラックバック(0) |
| ・電子回路工作 |
トラックバックURL:http://blog.zaq.ne.jp/igarage/trackback/3409/
※ブログ管理者が承認するまで表示されません
もしかするとプログラムを書き込んだ後、それが動作してEEPROMにアクセスしているんじゃないでしょうか?
あるいはその間の電源断によって暴走して、EEPROMアクセスルーチンに入りこんでしまっているとか。
2013年06月05日(水) 09:27 by 居酒屋ガレージ店主(JH3DBO)
落合さん、ご指摘の状況は考えにくいです。
今回これが発生したのは50コ書いてこいつだけ。

プログラム実行状態で関連する処理は、
(1)電源オン時にスイッチが押されていたら
 EEPROMを初期値に設定。
   (この初期値はフラッシュMEM内)
 チップ書き込み時はこれと同じデータをEEPROMに
 書き込んでいる。
 スイッチオフならEEPROMはそのまま。

(2)続いてEEPROMの内容をRAMにコピー
 その後はRAMのデータで作動。

(3)パラメータ設定モードにしたらEEPROMの値を変更
 できる。

通電を継続している限り、(2)でコピーしたRAMの値で
動作します。
ところが、いったん電源断するとEEPROMの読み出しデータが
「0xFF」になってしまうのです。
(1)あるいは(3)でEEPROMの値を正しいものに戻しても、電源断
でアウト。
けれど、通電したままのリセットなら大丈夫。
書き込み後のベリファイもいったん電源を落とすと×。

こんな状況です。
Vタイプなので、パスコンの電荷でしばらく動いているのかもしれません。たまたまこれだけ超低い電圧まで動作してしまっているとか。
BODはONにしていますか?
EEPROM書き込みルーチンだけNOPなどでつぶせば、プログラムによって書き換わっているか判別できるのではないでしょうか?
2013年06月07日(金) 08:34 by 居酒屋ガレージ店主(JH3DBO)
BODはsleep待機時の消費電流が増加するので禁止のままです。
BODイネーブル時、もう一桁電流が少なければいいんですがね。

tiny25ならPowerDown時にBODをOFFにできるので試してみては?
ただ、途中のチップリビジョンからの対応なので、がっかりした覚えがあります。
2013年06月08日(土) 08:22 by 居酒屋ガレージ店主(JH3DBO)
「BODS」と「BODSE」がMCUCRの中にありますね。
使ったことなかったです。
コメントを記入  
お名前(必須)
 
パスワード:
 
メール:
 
URL:
 
非公開:  クッキーに保存: 
※非公開にチェックを入れると、管理者のみにコメントが届きます。
ブログの画面には表示されません。
captcha


※画像に表示されている文字を入力してください(半角・大文字/小文字の区別なし)。
文字が読みづらい場合はこちらをクリックしてください。
小文字 太字 斜体 下線 取り消し線 左寄せ 中央揃え 右寄せ テキストカラー リンク