AVRマイコンのフューズビット書き換え

大晦日にAVRマイコン用の基板のチェックをしているときにフューズビットかロックビットに誤った値を書き込んでしまったようで、以後書き込みができなくなってしまいました。

AVRISP2ではこれらの書き換えができないため、高圧並列書き込みをするのに初めてSTK500を使いましたがネット上に参考になるサイトが無く、成功するまで少し悩んだので参考までに記録を残しておきます。

STK500は5年以上前に購入したものですが自分で使ったのは初めてです。なお、今では国内での入手が難しいようですが(僕は秋月で当時7,800円で購入)、デジキー(米国の電子部品通販サイト)では扱っている(1万円強)模様です。秋月では後継機のSTK600がありますが、ちょっと高価で2万円以上します。ターゲットマイコンがSTK500で使えるのであれば、こちらの方が安価です。(追加で調べたら国内ではコンパス・ラブさんで現在でも扱い有り 価格はデジキーの方が安いかも)

STK500内の接続は

PROG CTRL~PORTD(10芯ケーブル)とPROG DATA~PORTB(10芯ケーブル)の他にBSEL2のDsubコネクタ側ピンとPORTCのPC2をジャンパーワイヤで接続します。

BSEL2の隣にあるPJUMPもショートプラグを挿入します。(向きに注意)

従って、10芯フラットケーブル2本と1芯のワイヤ1本、ショートプラグ2個を使用します。

stk500

上の写真では、BSEL2とPORTC(PC2)間が2芯ワイヤですが、使っているのは1本です。(1芯のメスーメスが手元に無かったので。)BSEL2ヘッダでつなぐのは右側のピンです。

———————————————————————————————————-

以下はAtmel Studio 7.0でのSTK500の使い方....

Atmel Studio 7.0でSTK500が使えるように追加。

Tools – Add target….

atmel_1

STK500を選択

atmel_2

STK500が使っているCOMポートを選択(使用環境で異なるので、デバイスマネージャで確認のこと)

atmel_3

Device Programmingを開いて

atmel_11

Tools からSTK500を選択

atmel_4

Deviceからマイコンを選択(ここではATmega328P)

atmel_5

Interfaceを選択(高圧並列書き込みなのでHVPPを選択)し、 Applyをクリック。

atmel_6

Memoriesを開き、Device から Erase Chip – Erace nowをクリック(これで内容消去)

atmel_10

Fusesを選び、必要な項目のみチェック(不必要なものは外す 下記は参考)したら、Programをクリック。

 

atmel_8

Lock bitsを開き、3項目を設定。下記は ATmega328Pのデフォルト値(のはず)

ここは、全てプルダウンメニューになっている。良ければProgramをクリック。

これでフューズビットとロックビットは初期状態に戻せるので、書き込み可能になったはず。

atmel_9

書き込むファイルができているのであれば、Memoriesを選んで、Flashにファイルを設定してProgramをクリックして書き込み。

atmel_7

以上で書き込みが成功すれば、完了。