ヒューズ設定

AVRのヒューズ設定について

 

AVRは別途、通信でfuse設定をします。

方法などはライターによって違うのでfuseの設定や方法などについての解説

ヒューズ設定

ヒューズについて

AVRのfuseとは、AVRのチップの動作を設定するパラメタのビットで、
AVRはプログラムデータとは別に、 ライタで通信してfuse設定の書き込みをします

 

AVRのライターには、プログラムの書き込み以外に、FUSE書き込み機能も必ずあります。

 

以下の各名称のFUSE:内部発信クロック設定、その他、重要ビットを間違って書き込みすると以後、ISP書き込みができなくなる。または、それ以後 チップが機能しなくなる、つまりもう使えない ということも起こりうるので、FUSEの扱いは重要です

 

AVR ISP AVRmarkⅡ

●fuseの各ビット

・RSTDISBL    リセット端子禁止
 ・DWEN  デバッグWire機能 許可
 ・SPIEN  シリアルプログラミング許可
 ・WDTON  ウオッチドッグタイマ常時有効
 ・EESAVE  EEPRROMをチップ消去から保護
 ・BODLEVEL   低電圧リセット電圧レベル
 ・CKDIV8      発信クロック8分周
 ・CKOUT     CPUクロックをCLK0端子から出力
 ・SUT_CKSEL   リセット遅延時間設定

 

 

【ヒューズビット設定値】

 

上位バイト

名称 ビット 意味 規定値(出荷時)
DWNEN 7 デバッグWIRE機能許可(0:有効、1:無効) 1(デバッグWIRE不可)
EESAVE 6 チップ消去からEEPROM内容保護(0:保護、1:未保護) 1(未保護)
SPIEN 5 シリアルプログラミング許可(0:ISP許可、1:ISP禁止) 0(許可)
WDTON 4 ウオッチドッグ有効(0使用する、1:使用しない) 1(WDTはWDTCSR
レジスタで設定)
BODLEVEL3 3 3  2  1
1 1 1  :リセット禁止
1 1 0  :1.8Vリセット
1 0 1  :2.7Vリセット
1 0 0  :4.3Vリセット
1(未設定)
BODLEVEL2 2 1(未設定)
BODLEVEL1 1 1(未設定)
RSTDISBL 0 PA2がIOピンか(0)、RESET設定か(1) 1(RESET設定)

 

下位バイト

名称 ビット 意味 規定値
CKDIV8 7 システムクロック8分周選択(0 : 1/8、 1: 1) 0
CKOUT 6 システムクロック出力許可(0:出力する、1:しない) 1
SUT1 5 1 0   (詳細は日データシートP15,16) 
0 0 : BODリセット許可
0 1 : 高速立ち上がり電源
1 0 : 低速立ち上がり電源
1 1 :    ---
1(低速立ち上がり)
SUT0 4 0
CKSEL3 3 3 2 1 0
1 × × × : 外部発振
0 1 1 0 : 128k内部WDT発振
0 1 0 0 : 8M内部発振
0 0 1 0 : 4M内部発振
0 0 0 0 : 外部クロック信号
(詳細は日データシートP14,15,16)
0(8M内部発振)
CKSEL2 2 1
CKSEL1 1 0
CKSEL0 0 0
Tiny2313データシートより

 

AVR STUDIO4 から下のボタンでライタ画面を開く(当然、ライターが接続、認識されていることが必要)

 

 

ISPmarkⅡ fuseビット設定画面では  チェックで 0 設定です。
SPIEN はチェック外せないようになっています。これを外すとISP書き込みできなくなる。

 

AVR STUDIO4 の ISPmarkⅡ "Fuses" TAB 画面

読み込みをオートにしているとタブを開くと自動で読み込めますが、通信ができてないと読み込んだビット値は当てにならない。

 

コマンドラインの書き込みソフトavrspxのように表を見ながら各ビットを設定するのとは違い、
BODLEVEL 、 CLOCK設定などは プルダウンメニューの中から選択できる。

 

いくつかのビットはHigh Voltage書き込み用になっている。
使用するライターの設定でISPライターになっているとそのfuse設定が変えられないビットがある。(読み込んでビット状態だけは表示)

 

これらのビットを変更すると、そのチップはISPライターでは書き込めなくなるので注意。
(下記 参照)

 

注意点

* ヒューズ設定、その他書き込み関連ビットは安易に書き込むとそれ以後、反応しなくなる恐れがあるのでヒューズ書き込みには注意!

 

内部発信器付きのATtiny2313のようなチップは出荷時(購入時)には、内部発振に設定されていて発信器ナシでも書き込み可能です。

 

外部発信器を使うヒューズ設定値にするとそれ以後は外部発信器を付けなければヒューズ設定の書き替えさえ出来なくなり、反応しなくなります。

 

通信不能の対処

外部発信器の設定を書き込んでしまったら・・・

 

外部発信器設定を書き込んだら発信器をつなぐしかなさそうです。(ただ、設定した発振数値と多少違う発信でも書き換えできるようです)

チップと通信できなくなったら・・・・パラレル書き込み(PP)

 

・パラレル書き込み

ISPライターでは、書き込みなどに関連するfuseのビットの設定を変えると、ISPライターではもう通信ができなくなります。ISPライターでチップと通信できないのでfuse書き込みもISP書き込みではもはや無理です

 

ISPではなく、PP(パラレル書き込み)可能なライターなどあればチップと通信が可能。 これを使って、ISPライターでも可能なfuse設定に戻すしかないようです。

 

パラレル書き込みができるライタ
 AVR Dragon、 STK500などのライターでpp可能

 

スポンサーリンク
  • facebook
  • twtter
  • google+
  • hatena