profile-photo

フューズリセッタ

AVRのフューズビットを初期化して再利用可能にする


1チップのAVRなどにプログラムを書いていると、フューズビットを間違えてしまい、そのチップが使えなくなってしまうことがある。
実際、僕も失敗していくつかCPUをダメにしてしまった。そんな時にWEBを見ていて、
「初期化することができる。」との記事に大いに元気づけられた。
でも、通常動作の5Vとか3.3Vではなく、「高電圧」でプログラミングする必要がある。
とか書いてあって、ちょっとびびった。しかし、「高電圧」とは12Vの事だと分かって安心した。
回路は簡単。
そして、スケッチも公開されているので、ArduinoUNOにこの回路を繋いで、初期化(リセット)することができた。
今回は使いやすい様にUNOのシールドにしてみた。

 

100

フューズリセッタの外観
シールドのユニバーサル基板に組み込んだので、そのままUNOに載せ、ArduinoIDE経由でスケッチをダウンロードすればOK

200

基板単体の外観。

300

この作例では「高電圧」を外部から供給しているが、5VなどのVccをもとに内部で昇圧した作例もある。
必要な電流は数10mAなので、内部で作っても大丈夫だと思う。

参考にしたサイト

Arduino AVR High-Voltage Serial Programmer などに詳しい解説がある。
ArduinoUNOにこのシールドを載せて、外部から12Vの電源を加え、ターゲットのチップを載せる。
シリアルモニタを立ち上げて、ENTERキーを叩くと、リセットが行われ、結果(フューズビットの情報)が表示される。
その値が、正しいかどうかは、
Engbedded Atmel AVR® Fuse Calculator などで確認できる。


参考までにハードウェア・ソフトウェアの情報を。ただしこれらは僕の覚えであり、正確に改版を反映していない可能性があります。この通り作って動かないからと、怒らないで欲しい。