BYCT 4 BYCT 3 BYCT 2 BYCT 1BYCT7BYCT6BYCT5
25. メモリ プログラミング
25.1. プログラム メモリとデータ メモリ用施錠ビット
ATmega8U2/16U2/32U2は非プログラム(1)のままか、表25-2.で一覧される付加機能を得るためにプログラム(0)できる6つの施錠ビットを提 供します。この施錠ビットはチップ消去指令でのみ1に消去できます。
表25-1. 施錠ビット バイトの内容 ビット番号 名称
6 5 4
-BLB12 BLB11
意味
ブート ローダ領域に対する保護用ブート施錠ビット 応用領域に対する保護用ブート施錠ビット 3
BLB02
既定値 (注)
1 (非プログラム) 1 (非プログラム) 0 (プログラム) 1 (非プログラム)
注: 0はプログラム、1は非プログラムを意味します。
7
- 1 (非プログラム)
2
BLB01 1 (非プログラム)
フラッシュとEEPROMメモリに対する一般保護用施錠ビット 1
LB2 0 (プログラム)
0
LB1 0 (プログラム)
表25-2. 施錠ビットの保護種別
LB 種別 LB1
保護種別 1
LB2 1
1 メモリ施錠機能は機能しません。
メモリ施錠ビット
直列、並列、またはデバッグWIRE経由プログラミングに対する保護
0 1
2 フラッシュ、EEPROMの更なるプログラミング(書き込み)が禁止されます。ヒューズ ビットが固定され ます。 (注1)
0 0
3 フラッシュ、EEPROMの更なるプログラミング(書き込み)と照合(読み出し)が禁止されます。ヒューズ ビットとブート施錠ビットが固定されます。 (注1)
1 0 1
1 1
2
LPM, SPM命令が応用領域をアクセスすることに対して制限はありません。
SPM命令は応用領域に書くことを許されません。
フラッシュ メモリの応用プログラム領域に対する保護 BLB01
BLB02 LB0 種別
0 0
3 SPM命令による応用領域への書き込みと、ブート ローダ領域でのLPM命令による応用領域か
らの読み込みが許されません。 (注2) 1
0
4 ブート ローダ領域でのLPM命令による応用領域からの読み込みが許されません。 (注2) 1
0 1
1 1
2
LPM, SPM命令がブート ローダ領域をアクセスすることに対して制限はありません。
SPM命令はブート ローダ領域に書くことを許されません。
フラッシュ メモリのブート ローダ プログラム領域に対する保護 BLB11
BLB12 LB1 種別
0 0
3 SPM命令によるブート ローダ領域への書き込みと、応用領域でのLPM命令によるブート ローダ
領域からの読み込みが許されません。 (注3) 1
0
4 応用領域でのLPM命令によるブート ローダ領域からの読み込みが許されません。 (注3) 注: 0はプログラム、1は非プログラムを意味します。
注1: 施錠ビットを書く前にヒューズ ビットとブート施錠ビットを書いてください。デバッグWIREは全面的に禁止されます。
注2: BLB02=0で、割り込みベクタがブート ローダ領域に配置されていると、応用領域での実行時に割り込みが禁止されます。
注3: BLB12=0で、割り込みベクタが応用領域に配置されていると、ブート ローダ領域での実行時に割り込みが禁止されます。
25.2. ヒューズ ビット
ATmega8U2/16U2/32U2には3つのヒューズ バイトがあります。表25-3.~5.は全てのヒューズの概略機能とヒューズ バイト内でどのように配 置されるかを示します。ヒューズはプログラムされると、論理0として読まれることに注意してください。
表25-3. 拡張ヒューズ バイト一覧 ビット
名称 意味 既定値 ($F4)
7
- 1 (非プログラム)
6
- 1 (非プログラム)
5
- 1 (非プログラム)
4
- 1 (非プログラム)
3
HWBE ハードウェア ブート許可。 0 (プログラム) HWBピン有効
2
BODLEVEL2 1 (非プログラム)
低電圧検出(BOD)リセットの制御と検出電圧選択。 (注1) 1
BODLEVEL1 0 (プログラム)
0
BODLEVEL0 0 (プログラム)
注1: BODLEVELヒューズの符号化については173頁の表26-4.をご覧ください。
表25-4. ヒューズ上位バイト一覧 ビット
名称 意味 既定値 ($D9)
7
DWEN (注4) デバッグWIRE機能許可。 1 (非プログラム) デバッグWIRE不許可 6
RSTDISBL PC1がI/OピンかまたはRESETピンかを選択します。 1 (非プログラム) PC1はRESETピン 5
SPIEN (注1) 直列プログラミング許可。 0 (プログラム) 直列プログラミング許可 4
WDTON (注3) ウォッチドッグ タイマ常時有効。 1 (非プログラム) WDTはWDTCSRで許可 チップ消去からEEPROM内容を保護。
3
EESAVE 1 (非プログラム) EEPROMは未保護
2
BOOTSZ1 0 (プログラム)
ブート ローダ容量選択。(表24-8.参照) (注2) 1
BOOTSZ0 0 (プログラム)
リセット ベクタ(応用領域またはブート ローダ領域)選択。
0
BOOTRST 1 (非プログラム) 応用領域
注1: SPIENヒューズは直列プログラミングでアクセスできません。
注2: BOOTSZ1,0既定値は最大ブート ローダ容量になります。156頁の表24-8.をご覧ください。
注3: 詳細については34頁の「ウォッチドッグ タイマ制御レジスタ(WDTCSR)」をご覧ください。
注4: 施錠ビットやRSTDISBLヒューズの設定に拘らず、DWENヒューズがプログラム(0)された製品の出荷は決してありません。プログラム(0) されたDWENヒューズは全休止形態でクロック系の一部を許可します。これは消費電力の増加になってしまいます。
表25-5. ヒューズ下位バイト一覧 ビット
名称 意味 既定値 ($5E)
7
CKDIV8 (注4) システム クロック 8分周選択。 0 (プログラム) 8分周 6
CKOUT (注3) システム クロック出力許可。 1 (非プログラム) 不許可
5
SUT1 0 (プログラム)
起動時間選択。 (注1)
4
SUT0 1 (非プログラム)
3
CKSEL3 1 (非プログラム)
2
CKSEL2 1 (非プログラム)
クロック種別選択。 (注2)
1
CKSEL1 1 (非プログラム)
0
CKSEL0 0 (プログラム)
注1: SUT1,0の既定値は最大起動時間になります。詳細については19頁の表8-4.をご覧ください。
注2: CKSEL3~0の既定設定は外部クリスタル用発振器になります。詳細については18頁の表8-1.をご覧ください。
注3: CKOUTはポートC7に出力することをシステム クロックに許します。詳細については21頁の「クロック出力緩衝部」をご覧ください。
注4: 詳細については21頁の「システム クロック前置分周器」をご覧ください。
ヒューズ ビットの状態はチップ消去によって影響されません。施錠ビット1(LB1)がプログラム(0)されると、ヒューズ ビットが固定されることに注意し てください。施錠ビットをプログラム(0)する前にヒューズ ビットをプログラミング(書き込み)してください。
25.2.1. ヒューズのラッチ
ヒューズ値はデバイスがプログラミング動作へ移行する時にラッチされ、ヒューズ値の変更はデバイスがプログラミング動作を去るまで無効です。こ れは一旦プログラム(0)されると直ぐに効果があるEESAVEヒューズには適用されません。ヒューズは通常動作での電源投入でもラッチされま
160
ATmega8U2/16U2/32U2
25.3. 識票バイト
全てのATMELマイクロ コントローラはデバイスを識別する3バイトの識票符号を持ちます。この 符号は直列と並列の両プログラミング動作で、またデバイスが施錠されていても読めます。
この3バイトは分離された空間に存在します。ATmega8U2/16U2/32U2の識票バイトに ついては表25-6.で示されます。
25.4. 発振校正値バイト
ATmega8U2/16U2/32U2には内蔵RC発振器用に1バイトの校正値があります。このバイトは識票アドレス空間でアドレス$0000の上位バイト にあります。リセット中、校正付き内蔵RC発振器の正しい周波数を保証するために、このバイトが発振校正(OSCCAL)レジスタへ自動的に 書かれます。
表25-6. デバイスの識別番号(ID) 識票バイト アドレス 部品番号 $0000 $0001 $0002
ATmega8U2 $1E $93 $89 ATmega16U2 $1E $94 $89 ATmega32U2 $1E $95 $8A
25.5. ページ容量
表25-7. フラッシュ メモリのページ数とページの語数デバイス 全容量 ページ容量 PCWORD ページ数 PCPAGE PCMSB 64ワード
ATmega8U2 4Kワード(8Kバイト) PC5~0 64 PC11~6 11 64ワード
ATmega16U2 8Kワード(16Kバイト) PC5~0 128 PC12~6 12 64ワード
ATmega32U2 16Kワード(32Kバイト) PC5~0 256 PC13~6 13
表25-8. EEPROMメモリのページ数とページの語数
デバイス 全容量 ページ容量 PCWORD ページ数 PCPAGE EEAMSB 4バイト
ATmega8U2 512バイト EEA1~0 128 EEA8~2 8 4バイト
ATmega16U2 512バイト EEA1~0 128 EEA8~2 8 4バイト
ATmega32U2 1Kバイト EEA1~0 256 EEA9~2 9
25.6. 並列プログラミング
本項はATmega8U2/16U2/32U2のプログラム用フラッシュ メモリ、データ用EEPROM、メモリの施錠ビット、ヒューズ ビットの並列プログラミングと照合 の方法を記述します。特記事項を除いて、パルス幅は最低250nsと仮定されます。
25.6.1. 信号名
この項でATmega8U2/16U2/32U2のいくつかのピンは並列プログラミング 中の機能を表す信号名で参照されます。図25-1.と表25-9.をご覧くださ い。後続の表で示されないピンはピン名によって参照されます。
XA0とXA1ピンはXTAL1ピンが正パルスを与えられる時に実行される動作 を決めます。このビット符号化は表25-12.で示されます。
WRまたはOEパルス送出時、設定された指令が決める動作が実行され ます。各種指令は表25-13.で示されます。
図25-1. 並列プログラミング構成図
RESET PD1 PD2 PD3 PD4 PD5 PD6
XTAL1 GND +12V
RDY/BSY OE WR BS1 XA0 XA1
PB7~0 VCC
DATA +5V
PD7