• 検索結果がありません。

メモリ プログラミング

ドキュメント内 mega88.pdf (ページ 178-181)

ADC 9 ADC 8 ADC 7 ADC 6 ADC 5 ADC 4 ADC 3

28. メモリ プログラミング

28.1. プログラム メモリとデータ メモリ用施錠ビット

ATMEL ATmega88/168は非プログラム(1)のままか表28-2.で一覧される付加機能を得るためにプログラム(0)できる6つの施錠ビットを提供 します。この施錠ビットはチップ消去指令でのみ1に消去できます。

ATMEL ATmega48は独立したブート ローダ領域を持ちません。SELFPRGENヒューズがプログラム(0)されると、SPM命令はフラッシュ メモリ全体 に対して許可され、さもなければ禁止されます。

表28-1. 施錠ビット バイトの内容 ビット番号 名称

6 5 4

-BLB12 BLB11

意味

ブート ローダ領域に対する保護用ブート施錠ビット 応用領域に対する保護用ブート施錠ビット 3

BLB02

既定値 (注1)

1 (非プログラム) 1 (非プログラム) 1 (非プログラム) 1 (非プログラム)

注1: 0はプログラム、1は非プログラムを意味します。

注2: ATmega88/168のみです。

7

- 1 (非プログラム)

2

BLB01 1 (非プログラム)

フラッシュとEEPROMメモリに対する一般保護用施錠ビット 1

LB2 1 (非プログラム)

0

LB1 1 (非プログラム)

(注2) (注2) (注2) (注2)

表28-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で、割り込みベクタが応用領域に配置されていると、ブート ローダ領域での実行時に割り込みが禁止されます。

注4: BLBnnビットによる保護はATmega88/168のみです。

(訳注) 原書の表28-2.と表28-3.は表28-2.として纏めました。

179

28.2. ヒューズ ビット

ATMEL ATmega48/88/168には3つのヒューズ バイトがあります。表28-4.~7.は全てのヒューズの概略機能とヒューズ バイト内でどのように 配置されるかを示します。ヒューズはプログラムされると、論理0として読まれることに注意してください。

表28-4. ATmega48 拡張ヒューズ バイト一覧 ビット

名称 意味 既定値

7~1

- 1 (非プログラム)

0

SELFPRGEN 自己プログラミング機能許可。 1 (非プログラム) 自己プログラミング不許可

表28-5. ATmega88/168 拡張ヒューズ バイト一覧 ビット

名称 意味 既定値

7~3

- 1 (非プログラム)

2

BOOTSZ1 0 (プログラム)

ブート ローダ容量選択。(表27-6.参照) (注1) 1

BOOTSZ0 0 (プログラム)

0

BOOTRST リセット ベクタ(応用領域またはブート ローダ領域)選択。 1 (非プログラム) 応用領域 注1: BOOTSZ1,0既定値は最大ブート ローダ容量になります。176頁の表27-6.をご覧ください。

表28-6. ヒューズ上位バイト一覧 ビット

名称 意味 既定値

7

RSTDISBL(注1) PC6がI/OピンかまたはRESETピンかを選択します。 1 (非プログラム) PC6はRESETピン 6

DWEN デバッグWIRE機能許可。 1 (非プログラム) デバッグWIRE不許可 5

SPIEN (注2) 直列プログラミング許可。 0 (プログラム) 直列プログラミング許可 4

WDTON (注3) ウォッチドッグ タイマ常時有効。 1 (非プログラム) WDTはWDTCSRで許可 チップ消去からEEPROM内容を保護。

3

EESAVE 1 (非プログラム) EEPROMは未保護

2

BODLEVEL2 1 (非プログラム)

低電圧検出(BOD)リセットの制御と検出電圧選択。 (注4) 1

BODLEVEL1 1 (非プログラム)

0

BODLEVEL0 1 (非プログラム)

注1: RSTDISBLヒューズの記述については50頁の「ポートCの交換機能」をご覧ください。

注2: SPIENヒューズは直列プログラミングでアクセスできません。

注3: 詳細については32頁の「ウォッチドッグ タイマ制御レジスタ(WDTCSR)」をご覧ください。

注4: BODLEVELヒューズの符号化については192頁の表29-4.をご覧ください。

表28-7. ヒューズ下位バイト一覧 ビット

名称 意味 既定値

7

CKDIV8 (注4) システム クロック 8分周選択。 0 (プログラム) 8分周 6

CKOUT (注3) システム クロック出力許可。 1 (非プログラム) 不許可

5

SUT1 1 (非プログラム)

起動時間選択。 (注1)

4

SUT0 0 (プログラム)

3

CKSEL3 0 (プログラム)

2

CKSEL2 0 (プログラム)

クロック種別選択。 (注2)

1

CKSEL1 1 (非プログラム)

0

CKSEL0 0 (プログラム)

注1: SUT1,0の既定値は最大起動時間になります。詳細については19頁の表9-9.をご覧ください。

注2: CKSEL3~0の既定設定は8MHz校正付き内蔵RC発振器になります。詳細については19頁の表9-8.をご覧ください。

注3: CKOUTはポートB0に出力することをシステム クロックに許します。詳細については20頁の「クロック出力緩衝部」をご覧ください。

注4: 詳細については20頁の「システム クロック前置分周器」をご覧ください。

ヒューズ ビットの状態はチップ消去によって影響されません。施錠ビット1(LB1)がプログラム(0)されると、ヒューズ ビットが固定されることに注意し てください。施錠ビットをプログラム(0)する前にヒューズ ビットをプログラミング(書き込み)してください。

28.2.1. ヒューズのラッチ

ヒューズ値はデバイスがプログラミング動作へ移行する時にラッチされ、ヒューズ値の変更はデバイスがプログラミング動作を去るまで無効です。こ れは一旦プログラム(0)されると直ぐに効果があるEESAVEヒューズには適用されません。ヒューズは通常動作での電源投入でもラッチされま す。

28.3. 識票バイト

全てのATMELマイクロ コントローラはデバイスを識別する3バイトの識票符号を持ちます。この 符号は直列と並列の両プログラミング動作で、またデバイスが施錠されていても読めます。

この3バイトは分離された空間に存在します。ATMEL ATmega48/88/168用の識票バイト は表28-8.で与えられます。

表28-8. デバイスの識別番号(ID) 識票バイト アドレス 部品番号 $0000 $0001 $0002

ATmega48 $1E $92 $05 ATmega88 $1E $93 $0A ATmega168 $1E $94 $06

28.4. 発振校正値バイト

ATmega48/88/168は内蔵RC発振器用に1バイトの校正値を持っています。このバイトは識票アドレス空間でアドレス $0000の上位バイトに あります。リセット中、校正付き内蔵RC発振器の正しい周波数を保証するために、このバイトが発振校正(OSCCAL)レジスタへ自動的に書 かれます。

28.5. ページ容量

表28-9. フラッシュ メモリのページ数とページの語数

デバイス 全容量 ページ容量 PCWORD ページ数 PCPAGE PCMSB 32ワード

ATmega48 2Kワード(4Kバイト) PC4~0 64 PC10~5 10 32ワード

ATmega88 4Kワード(8Kバイト) PC4~0 128 PC11~5 11 64ワード

ATmega168 8Kワード(16Kバイト) PC5~0 128 PC12~6 12

表28-10. EEPROMメモリのページ数とページの語数

デバイス 全容量 ページ容量 PCWORD ページ数 PCPAGE EEAMSB 4バイト

ATmega48 256バイト EEA1~0 64 EEA7~2 7

4バイト

ATmega88 512バイト EEA1~0 128 EEA8~2 8

4バイト

ATmega168 512バイト EEA1~0 128 EEA8~2 8

181

28.6. 並列プログラミング

この項はATmega48/88/168のプログラム用フラッシュ メモリ、データ用EEPROM、メモリの施錠ビット、ヒューズ ビットの並列プログラミングと照合の方 法を記述します。特記事項を除いて、パルス幅は最低250nsと仮定されます。

28.6.1. 信号名

本項でATmega48/88/168のいくつかのピンは並列プログラミング中の機能 を表す信号名で参照されます。図28-1.と表28-11.をご覧ください。後 続の表で示されないピンはピン名によって参照されます。

XA0とXA1ピンはXTAL1ピンが正パルスを与えられる時に実行される動作 を決めます。このビット符号化は表28-13.で示されます。

WRまたはOEパルス送出時、設定された指令が決める動作が実行され ます。各種指令は表28-14.で示されます。

図28-1. 並列プログラミング構成図

RESET PD1 PD2 PD3 PD4 PD5 PD6 XTAL1 GND +12V

RDY/BSY OE WR BS1 XA0 XA1

PC1,0:PB5~0 VCC

DATA +5V

PD7

ドキュメント内 mega88.pdf (ページ 178-181)