📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 103行目: | 103行目: | ||
<u>Lock bitsを設定すると、それを解除するにはATmegaマイコンをハイボルテージプログラミングモードで消去する必要があるため、Lock bitsの設定は慎重に行う必要がある。</u><br> | <u>Lock bitsを設定すると、それを解除するにはATmegaマイコンをハイボルテージプログラミングモードで消去する必要があるため、Lock bitsの設定は慎重に行う必要がある。</u><br> | ||
<u>不適切なLock bits設定は、ATmegaマイコンの再書き込みを困難または不可能にする可能性がある。</u><br> | <u>不適切なLock bits設定は、ATmegaマイコンの再書き込みを困難または不可能にする可能性がある。</u><br> | ||
<br><br> | |||
== ヒューズバイトの設定 == | |||
ヒューズバイト (Fuse Bytes) と呼ばれる領域および設定も存在する。<br> | |||
<br> | |||
ヒューズバイトは、Lock bitsとは別の設定領域であるが、ATmegaマイコンの動作に関連する重要な設定を含んでいる。<br> | |||
ヒューズバイトとロックビットの両方を適切に設定することにより、ATmega328マイコンのセキュリティと動作を細かく制御することができる。<br> | |||
<br> | |||
ただし、これらの設定を変更する場合は、ATmegaマイコンのデータシートを参照して、設定を十分に理解した上で行うことが重要である。<br> | |||
<br> | |||
* Boot Reset Vector Enable (BOOTRST) | |||
** 1 (デフォルト) | |||
**: ブートローダ領域が有効。 | |||
** 0 | |||
**: ブートローダ領域が無効 | |||
*: <br> | |||
* Brownout Detector Level (BODLEVEL0 - BODLEVEL2) | |||
*: Brownout Detector Level (ブラウンアウト検出レベル) は、ATmegaマイコンの動作電圧が一定のレベル以下に低下した場合に、マイコンをリセットするための設定である。 | |||
*: ATmegaマイコンは、適切な電圧範囲内で動作するように設計されている。 | |||
*: 動作電圧が低すぎると、マイコンが正常に動作しなくなる可能性がある。 | |||
*: <br> | |||
*: このような状況を防ぐために、Brownout Detector (ブラウンアウト検出器) が使用される。 | |||
*: ブラウンアウト検出器は、電源電圧を監視して、設定されたレベル以下に電圧が低下した場合に、ATmegaマイコンをリセットする。 | |||
*: これにより、電圧が回復するまでATmegaマイコンの動作を停止させて、不安定な動作を防ぐことができる。 | |||
*: <br> | |||
*: 適切なブラウンアウト検出レベルを選択することにより、ATmegaマイコンが動作する電圧範囲を制限して、低電圧状態でのマイコンの誤動作を防ぐことができる。 | |||
*: ただし、ブラウンアウト検出器を有効にすると、わずかな電力消費の増加や、リセット時間の延長などのデメリットがある。 | |||
*: アプリケーションの要件に応じて、ブラウンアウト検出レベルを適切に設定することが重要である。 | |||
*: <br> | |||
** 0b111 (デフォルト) | |||
**: Brown-out検出無効。 | |||
** 0b110 | |||
**: Brown-out検出レベル : 1.8[V] | |||
** 0b101 | |||
**: Brown-out検出レベル : 2.7[V] | |||
** 0b100 | |||
**: Brown-out検出レベル : 4.3[V] | |||
** その他の値 | |||
**: 予約済み | |||
*: <br> | |||
* Clock Divide (CKDIV8) | |||
*: ATmega328マイコンを外部32.768[kHz\の水晶発振器を使用して16[MHz]で駆動する場合、Clock Divide (CKDIV8) は<code>0</code>に設定する必要がある。 | |||
*: CKDIV8ヒューズは、ATmegaマイコンのクロック周波数を8で割るかどうかを制御する。 | |||
*: CKDIV8が<code>1</code>に設定されている場合、システムクロックは8で割られる。 | |||
*: CKDIV8が<code>0</code>に設定されている場合、システムクロックは分周されない。 | |||
*: <br> | |||
*: 32.768[kHz]の水晶発振器を使用して16[MHz]でATmegaマイコンを駆動するには、以下の手順に従う。 | |||
*# 32.768[kHz]で水晶発振器をATmegaマイコンの外部クロック入力ピン (XTAL1とXTAL2) に接続する。 | |||
*# ヒューズバイトの設定で、外部クロックソースを選択する。 (低電力水晶発振器モード - Low-power Crystal Oscillator Mode) | |||
*# CKDIV8ヒューズを<code>0</code>に設定して、クロック分周を無効にする。 | |||
*# ATmegaマイコンは、32.768[kHz]の水晶発振器の周波数を内部で逓倍して、16[MHz]のシステムクロックを生成する。 | |||
*: <br> | |||
** 0 (デフォルト) | |||
**: クロック分周なし | |||
** 1 | |||
**: クロックを8分周 | |||
*: <br> | |||
* Self-Programming Enable (SELFPRGEN) | |||
** 1 (デフォルト) | |||
**: 自己プログラミング(SPM命令)が有効。 | |||
** 0 | |||
**: 自己プログラミング(SPM命令)が無効。 | |||
<br><br> | <br><br> | ||