MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
ATmega328のヒューズ初期化方法のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
ATmega328のヒューズ初期化方法
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == AtmelのAVRマイコンは、6本線のISP接続で簡単にファームウェアのダウンロード等が出来るが、<br> クロックソースを設定するヒューズビットの値を間違って書き込んだりすると、ISPでは回復するのが難しい事態に陥る事がある。<br> そこで、ヒューズリセッター(ヒューズ設定を出荷時状態に戻す)という装置を使用して復帰させる方法がある。<br> ここでは、Arduino-based AVR High Voltage Programmerをベースに、ヒューズリセッターを作成を記載する。<br> <br><br> == 必要なもの == * ヒューズリセットしたいAVRマイコン(ATmega168 / 328) * Arduino Uno * 12[V]電源 * ブレッドボード * NPNトランジスタ(2SC1815) * 1[kΩ]抵抗 2本(R1, R4) * 10[kΩ]抵抗 2本(R2, R3) ※トランジスタに合わせて1[kΩ]から10[kΩ]の間で調整する * ジャンパーワイヤ <br><br> == 手順 == まず、Arduinoに次のスケッチをダウンロードおよび解凍する。<br> ATmega168用 : [[ファイル:EZ HVFuse for ATmega168.zip|フレームなし|中央]]<br> ATmega328用 : [[ファイル:EZ HVFuse for ATmega328.zip|フレームなし|中央]]<br> ATmegaマルチ : [[ファイル:EZ HVFuse Multi ATmega.zip|フレームなし|中央]] <br> 次に、下図のように回路を作成する。<br> [[ファイル:ATmega328 Chip Erase 1.png|フレームなし|中央]] <br> # 回路の作成を終えた後、PCとArduino Uno、ブレッドボードと12[V]電源を接続する。 # Arduino IDEを起動して、シリアルモニタを表示させる。<br>シリアルモニタの下の設定は、CRのみ(改行なし以外なら他でも可)、9600[bps]を選択する。 # [D]キーを押下後、[Enter]キーを押下して、ATmegaシリーズの検出を行う。<br>検出に失敗した時は、12[V]電源とUSBケーブルを抜いて回路が正常に接続されているか確認する。<br> # 検出に成功した時、ヒューズの規定値書込みコマンド[W]キーを押下すると(確認のために[Y]キーも押下)、出荷時のヒューズをATmegaシリーズに書き込む。<br> # 最後に、[R]キーを押下して、ヒューズが正常に書き込まれているか確認する。<br> <br> もし、Lock bitsが0xFF以外になっており、ヒューズ設定が書き込まれない場合、[C]キーを押下してATmega全体の初期化が出来る。<br> ただし、Lock bitsだけでなく、Flash ROMやEEPROMの内容も消去される。<br> この操作でヒューズビットの書き換えが出来るようになるので、再度、[W]キーを押下する。<br> <br> その他、[L]、[H]、[E]、[K]キーを押下して、各ヒューズビットやLock Bitsの値を指定して書き込む事も出来る。<br> <br><br> == チップシグネチャ == 全てのAVRマイクロコントローラは、デバイスを識別するために 3 バイトのシグネチャコードを備えている。<br> このコードの読み出しは、シリアルモードでもパラレルモードでも、デバイスがロックされていても可能である。<br> <br> これらの3つのバイトは別々のアドレス空間に格納されている。<br> ATmega48 / 88 / 168 / 328 と ATmega48PB / 88PB / 168PB / 328PB ではデバイスシグネチャバイトに違いがある。<br> <br> 下表にATmegaのチップシグネチャを示す。<br> <center> {| class="wikitable" |- ! style="text-align:center; width:300px;" | ATmegaマイコン ! style="text-align:center; width:300px;" | チップシグネチャ |- | style="text-align:center;" | ATmega8 | style="text-align:center;" | 0x1E9307 |- | style="text-align:center;" | ATmega48<br>ATmega48A | style="text-align:center;" | 0x1E9205 |- | style="text-align:center;" | ATmega48PA | style="text-align:center;" | 0x1E920A |- | style="text-align:center;" | ATmega48PB | style="text-align:center;" | 0x1E9210 |- | style="text-align:center;" | ATmega88<br>ATmega88A | style="text-align:center;" | 0x1E930A |- | style="text-align:center;" | ATmega88PA | style="text-align:center;" | 0x1E930F |- | style="text-align:center;" | ATmega88PB | style="text-align:center;" | 0x1E9316 |- | style="text-align:center;" | ATmega168<br>ATmega168A | style="text-align:center;" | 0x1E9406 |- | style="text-align:center;" | ATmega168P<br>ATmega168PA | style="text-align:center;" | 0x1E940B |- | style="text-align:center;" | ATmega168PB | style="text-align:center;" | 0x1E9415 |- | style="text-align:center;" | ATmega328 | style="text-align:center;" | 0x1E9514 |- | style="text-align:center;" | ATmega328P | style="text-align:center;" | 0x1E950F |- | style="text-align:center;" | ATmega328PB | style="text-align:center;" | 0x1E9516 |} </center> <br><br> __FORCETOC__ [[カテゴリ:AVR]]
ATmega328のヒューズ初期化方法
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse