セクション 58. データ eeprom - microchip...

22
© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-1 データ EEPROM 58 セクション 58. データ EEPROM ハイライト 本セクションには以下の主要項目を記載しています。 58.1 はじめに ...................................................................................................................... 58-2 58.2 制御レジスタ .............................................................................................................. 58-2 58.3 データ EEPROM の動作 ............................................................................................. 58-8 58.4 データ EEPROM 割り込み ....................................................................................... 58-16 58.5 データ EEPROM のロック解除シーケンス .............................................................. 58-17 58.6 データ EEPROM の読み出しアクセス制御 .............................................................. 58-17 58.7 省電力モードとデバッグモード中の動作 ................................................................. 58-18 58.8 各種リセットの影響 .................................................................................................. 58-18 58.9 関連アプリケーション ノート .................................................................................. 58-19 58.10 改訂履歴 .................................................................................................................... 58-20 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

Upload: others

Post on 20-Jan-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジナルの英語版をご参照願います。

セクション 58. データ EEPROM

デー

タE

EP

RO

M

58

ハイライト

本セクションには以下の主要項目を記載しています。

58.1 はじめに ...................................................................................................................... 58-2

58.2 制御レジスタ .............................................................................................................. 58-2

58.3 データ EEPROM の動作 ............................................................................................. 58-8

58.4 データ EEPROM 割り込み ....................................................................................... 58-16

58.5 データ EEPROM のロック解除シーケンス .............................................................. 58-17

58.6 データ EEPROM の読み出しアクセス制御 .............................................................. 58-17

58.7 省電力モードとデバッグモード中の動作 ................................................................. 58-18

58.8 各種リセットの影響 .................................................................................................. 58-18

58.9 関連アプリケーション ノート .................................................................................. 58-19

58.10 改訂履歴 .................................................................................................................... 58-20

© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-1

Page 2: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

58.1 はじめに本書は、PIC32 ファミリが内蔵するデータ EEPROM について説明します。 データ EEPROM メモリには、特殊機能レジスタ (SFR) インターフェイスを介してアクセスします。32 ビットEEPROM メモリの容量はデバイスごとに異なります。

58.2 制御レジスタデータ EEPROM の読み書き動作は、以下の特殊機能レジスタ (SFR) を使って制御します。

• EECON: EEPROM 制御レジスタこのレジスタは、全てのデータ EEPROM アクセスに使う基本のレジスタです。このレジスタは、制御機能とステータス表示機能の両方を提供します。

• EEKEY: EEPROM キー レジスタこのレジスタには決められた特殊な値を書き込む必要があります。これは物理レジスタではなく、読み値は 0です。

• EEADDR: EEPROM アドレス レジスタこのレジスタには、各データ EEPROM 命令の実行アドレスを書き込みます。

• EEDATA: EEPROM データレジスタ読み出し動作の場合、このレジスタはデータ EEPROM から読み出されたデータを格納します。書き込み動作の場合、このレジスタ内のデータがデータ EEPROM に書き込まれます。

Note: 本書はデバイス データシートの補足を目的としています。本書の内容は PIC32ファミリの一部のデバイスに対応していません。

本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デバイス データシート内の「データ EEPROM」の冒頭に記載している注意書きでご確認ください。

デバイス データシートとファミリ リファレンス マニュアルの各セクションは、Microchip 社のウェブサイト (http://www.microchip.com) でご覧になれます。

DS60001341A_JP - p. 58-2 Preliminary © 2015 Microchip Technology Inc.

Page 3: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

© 2015

Microchip T

echnology Inc.P

relimin

ary

DS

60001341A_JP

- p. 58-3

セク

ショ

ン58. デ

ータ

EE

PR

OM

表 に説明します。

レ t 20/4 Bit 19/3 Bit 118/2 Bit 17/1 Bit 16/0

EE — — — — —

ILW CMD<2:0>

EE — — — — —

EE — — — — —

EE

No 対応するレジスタの名前の後にそれぞれCLR/SET/INVそれぞれクリア、セット、反転されます。これらのレ

データEEPROM 58

58-1 に、データ EEPROM モジュール関連のレジスタをまとめて示します。その後で各レジスタの各ビットについて詳細

58-1: データ EEPROM 関連の SFRジスタ名 Bit 31/15 Bit 30/14 Bit 29/13 Bit 28/12 Bit 27/11 Bit 26/10 Bit 25/9 Bit 24/8 Bit 23/7 Bit 22/6 Bit 21/5 Bi

CON(1) 31:16 — — — — — — — — — — —

15:0 ON RDY SIDL ABORT — — — — RW WREN ERR<1:0>

KEY(2) 31:16 — — — — — — — — — — —

15:0 EEKEY<15:0>

ADDR(1,3) 31:16 — — — — — — — — — — —

15:0 — — — — EEADDR<11:0>

DATA 31:16 EEDATA<31:16>

15:0 EEDATA<15:0>

例 : — = 未実装、「0」として読み出し

te 1: このレジスタに対応するクリア /セット /反転レジスタのアドレスは、それぞれ0x4 / 0x8 / 0xCバイトオフセットしています。これらのレジスタは、を追加した名前を持ちます ( 例 : EECONCLR)。これらのレジスタの任意のビットに「1」を書き込むと、対応するレジスタの対応するビットがジスタの読み値は無視してください。

2: これらのレジスタは書き込み専用です。読み値は常に「0」です。

3: EEPROM のワードサイズは 32 ビットです。このため、読み書きアドレスの最下位 2 ビット (EEADDR<1:0>) は常に「00」である事が必要です

Page 4: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

レジスタ 58-1: EECON: EEPROM 制御レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8R/W-0, HC R-0 R/W-0 R/W-0, HC U-0 U-0 U-0 U-0

ON RDY SIDL ABORT — — — —

7:0R/W-0, HC R/W-0 R/W-0, HS, HC R/W-0, HS, HC R/W-0, HS R/W-0 R/W-0 R/W-0

RW WREN(1) ERR<1:0> ILW CMD<2:0>(1)

凡例 : HS = ハードウェア セット可能ビット HC = ハードウェア クリア可能ビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア

bit 31-16 未実装 :「0」として読み出し

bit 15 ON: データ EEPROM 電源制御ビット

1 = データ EEPROM を有効にする0 = データ EEPROM を無効にする

RW ビットがセットされている場合、ON ビットのクリアを試みても効果はありません。また、DEVCFGレジスタの FSLEEP ビットがセットされている場合、ON ビットはスリープ中にクリアされません。

bit 14 RDY: データ EEPROM レディビット

1 = データ EEPROM はアクセス可能状態0 = データ EEPROM はアクセス可能状態ではない

RDY ビットは、POR または BOR イベントの発生時にハードウェアによってクリアされます。RDY ビットは、ON ビットのセット後パワーアップ タイマ期間が終了した時点でハードウェアによってセットされます。

bit 13 SIDL: アイドル中停止ビット

1 = CPU がアイドルに移行すると動作を停止する0 = アイドル中も動作を継続する

bit 12 ABORT: データ EEPROM 動作中止制御ビット

1 = 実行中の読み出しコマンドを可能な限り速やかに中止する ( ソフトウェアでセット )0 = データ EEPROM パネルはアクセス可能または正常に動作中

bit 11-8 未実装 :「0」として読み出し

bit 7 RW: コマンド実行開始制御ビット

WREN = 1の場合 :

1 = メモリワードの書き込みまたは消去コマンドを開始する0 = 書き込みまたは消去は完了した ( ハードウェアによってクリア )

WREN = 0の場合 :

1 = メモリワードの読み出しコマンドを開始する0 = 読み出し動作は完了した ( ハードウェアによってクリア )

このビットは、ON ビット = 0の時にセットできません。また、ON ビット = 1であっても、パワーアップ タイマ期間が終了するまでセットできません。BOR リセットは、全ての実行中コマンドを強制的に終了する事により、RW ビットを間接的にクリアします。

bit 6 WREN: データ EEPROM 書き込みイネーブル制御ビット (1)

1 = メモリエレメントの書き込み / 消去動作を有効にする0 = 書き込み / 消去動作を無効にし、読み出し動作を有効にする

Note 1: これらのビットは、RW ビット = 1の時に変更できません。

DS60001341A_JP - p. 58-4 Preliminary © 2015 Microchip Technology Inc.

Page 5: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

セクション 58. データ EEPROMデ

ータ

EE

PR

OM

58

bit 5-4 ERR<1:0>: データ EEPROM シーケンスエラー ステータスビット

11 = BOR イベントが発生した10 = 無効なアドレス (EEADDR<1:0> 00) による読み書き動作が試みられた01 = バルク / ページ消去またはワード書き込みで検証エラーが発生した00 = エラーは発生していない

これらのビットはソフトウェアでクリアできる他、次の動作の実行に成功した時または ON ビットがクリアされた時に自動的にクリアされます。RW ビット = 0の場合、これらのビットはモジュールの動作に影響する事なくソフトウェアでセットする事もできます。

bit 3 ILW: 長い書き込みサイクル直前ステータスビット

1 = EEADDR レジスタが保持している現在の EEPROM アドレスに対する次回の書き込みサイクルには通常よりも長い時間 ( 約 20 ms) を要する

0 = EEADDR レジスタが保持している現在の EEPROM アドレスに対する次回の書き込みサイクルは通常の時間で完了する

このビットはソフトウェアでクリアできる他、EEADDR レジスタへの書き込みによって自動的にクリアされます。このビットは、書き込みコマンドの実行後にハードウェアによってセットされます。

bit 2-0 CMD<2:0>: データ EEPROM コマンド選択ビット (1)

111 = 予約済み

•100 = コンフィグレーション レジスタ書き込みコマンド (WREN ビットをセットする必要あり )011 = データ EEPROM メモリ バルク消去コマンド (WREN ビットをセットする必要あり )010 = データ EEPROM メモリ ページ消去コマンド (WREN ビットをセットする必要あり )001 = ワード書き込みコマンド (WREN ビットをセットする必要あり )000 = ワード読み出しコマンド (WREN ビットをクリアする必要あり )

レジスタ 58-1: EECON: EEPROM 制御レジスタ ( 続き )

Note 1: これらのビットは、RW ビット = 1の時に変更できません。

© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-5

Page 6: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

レジスタ 58-2: EEKEY: EEPROM キー レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8W-0 W-0 W-0 W-0 W-0 W-0 W-0 W-0

EEKEY<15:8>

7:0W-0 W-0 W-0 W-0 W-0 W-0 W-0 W-0

EEKEY<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア

bit 31-16 未実装 :「0」として読み出し

bit 15-0 EEKEY<15:0>: データ EEPROM キービット

このレジスタに値 0xEDB7 と 0x1248 を続けて書き込む事で、EECON レジスタの書き込み / 消去動作に対するロックを解除します。このレジスタの読み出しは効果を持たず、「0」を返します。

上記以外の値を書き込むと、EECON レジスタはロックされます。

レジスタ 58-3: EEADDR: EEPROM アドレス レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — — EEADDR<11:8>(1)

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EEADDR<7:0>(1)

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア

bit 31-12 未実装 :「0」として読み出し

bit 11-0 EEADR<11:0>: データ EEPROM アドレスビット (1)

このレジスタは、動作を行う EEPROM メモリ内のアドレスを保持します。RW ビット (EECON<7>) をセットする時に EEADDR<1:0> は常に「00」である事が必要です。そうではない場合、エラーが発生します。

Note 1: このレジスタ内のビットは、RW ビット (EECON<7>) = 1の時に変更できません。

DS60001341A_JP - p. 58-6 Preliminary © 2015 Microchip Technology Inc.

Page 7: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

セクション 58. データ EEPROMデ

ータ

EE

PR

OM

58

レジスタ 58-4: EEDATA: EEPROM データレジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EEDATA<31:24>(1)

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EEDATA<23:16>(1)

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EEDATA<15:8>(1)

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EEDATA<7:0>(1)

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア

bit 31-0 EEDATA<31:0>: データ EEPROM データビット (1)

書き込み動作の場合、このレジスタに格納されていたデータが EEPROM メモリに保存されます。読み出し動作の場合、EEPROM メモリから読み出されたデータがこのレジスタに格納されます。

Note 1: これらのビットは RW ビット (EECON<7>) = 1 の時に変更できません。加えて、RW ビット = 1 の間は読み出し動作が未完了であるため、このレジスタを読み出しても有効な値は得られません。

© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-7

Page 8: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

58.3 データ EEPROM の動作デバイス起動時は、ON ビット (EECON<15>) がクリアされます。データ EEPROM には給電されず、最小消費電力モードとなります。

ON ビットをセットすると、データ EEPROM に電力が供給されます。パワーアップ タイマ遅延後にハードウェアが RDY ビット (EECON<14>) をセットすると、データ EEPROM はアクセス可能になります。

アクセス可能 (RDY = 1) になると、データ EEPROM レジスタを使って全ての読み書き動作を実行できます。RDY ビット = 1かつ RW ビット (EECON<7>) = 0 ( 実行中のコマンドなし ) の場合にのみ、データ EEPROM の読み書きが可能です。

データ EEPROM へのアクセスは、対応する周辺モジュール ディセーブル (PMD) ビットをセットするか ON ビットをクリアする事により無効にできます。EEPROM への電源を制御するための PMD レジスタ / ビットについては、デバイス データシート内の「省電力機能」を参照してください。

58.3.1 データ EEPROM の初期化

58.3.1.1 POR イベント後のデータ EEPROM の初期化

POR イベントが発生すると ON ビットはクリアされ、データ EEPROM への給電は停止します。データ EEPROM を有効にするには、ON ビットを「1」にセットし、RDY ビットがハードウェアによってセットされるまで待機する必要があります。

その後、フルスピードで EEPROM にアクセスする前に、データ EEPROM コントローラに設定値を書き込む必要があります。これにはコンフィグレーション書き込みコマンド (CMD<2:0>ビット (EECON<2:0>) = 100) を使います。データ EEPROM コントローラに書き込む設定値は、DEVEE1 ~ DEVEE8 レジスタに保存します。

設定値を書き込む際は、WREN ビット (EECON<6>) をセットする必要があります。従って、ロック解除シーケンスを実行する必要があります。例 58-1 に、データ EEPROM の起動後にデータ EEPROM のロックを解除して設定値を書き込むためのサンプルコードを示します。

58.3.1.2 BOR イベント後のデータ EEPROM の初期化

BOR イベントが発生する前にデータ EEPROM が給電中であった場合、BOR イベント後もデータ EEPROM は給電されたまま (ON = 1) です。ERR<1:0> ビット (EECON<5:4>) は値「11」(BOR イベントが発生した事を示す ) を保持します。RDY ビットはクリアされます。データEEPROM へのアクセスを開始する前に、ハードウェアが RDY ビットをセットするまで待機する必要があります。

58.3.1.3 POR/BOR 以外のイベント後のデータ EEPROM の初期化

POR/BOR 以外のイベントが発生する前にデータ EEPROM が給電されていた場合、それらのイベント発生後もデータ EEPROM は給電されたまま (ON = 1) です。イベント前に RDY ビットがセットされていた場合、イベント後も RDY ビットはセットされたままです。これらのイベントの場合、EEPROM は直前のコマンドを完了します。ユーザ ソフトウェアは、コマンドの完了を待機するだけで次の動作を開始できます。

DS60001341A_JP - p. 58-8 Preliminary © 2015 Microchip Technology Inc.

Page 9: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

セクション 58. データ EEPROMデ

ータ

EE

PR

OM

58

例 58-1: データ EEPROM の初期化コード

void EEWriteExecute(int waitForDone){ /* Disable interrupts prior to unlock sequence */ EEKEY = 0xEDB7; // Unlock the EEPROM to enable writing EEKEY = 0x1248;

EECONbits.RW = 1; // Execute the write /* Re-enable interrupts */ if (waitForDone) // Wait for the write to finish if while (EECONbits.RW); // desired}

void EEInitialize(void) // Basic EEPROM enable and initialization{ EECONbits.ON = 1;// Turn on the EEPROM

while (EECONbits.RDY == 0);// Wait until EEPROM is ready (~125 us)

EECONbits.WREN = 1;// Enable writing to the EEPROM

EECONbits.CMD = 0b100;// Set the command to Configuration Write

EEADDR = 0x00;// Addr 0x00 = DEVEE1; EEDATA = DEVEE1; EEWriteExecute(1); // Execute write and wait for finish EEADDR = 0x04;// Addr 0x04 = DEVEE2; EEDATA = DEVEE2; EEWriteExecute(1); // Execute write and wait for finish

EEADDR = 0x08;// Addr 0x08 = DEVEE3; EEDATA = DEVEE3; EEWriteExecute(1); // Execute write and wait for finish

EEADDR = 0x0C;// Addr 0x0C = DEVEE4; EEDATA = DEVEE4; EEWriteExecute(1); // Execute write and wait for finish

EEADDR = 0x10;// Addr 0x10 = DEVEE5; EEDATA = DEVEE5; EEWriteExecute(1); // Execute write and wait for finish

EEADDR = 0x14;// Addr 0x14 = DEVEE6; EEDATA = DEVEE6; EEWriteExecute(1); // Execute write and wait for finish

EEADDR = 0x18;// Addr 0x18 = DEVEE7; EEDATA = DEVEE7; EEWriteExecute(1); // Execute write and wait for finish

EEADDR = 0x1C;// Addr 0x1C = DEVEE8; EEDATA = DEVEE8; EEWriteExecute(1); // Execute write and wait for finish EECONbits.WREN = 0; // Turn off writes.}

© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-9

Page 10: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

58.3.2 データ EEPROM の読み出しコマンド

データ EEPROM の読み出しを開始する前に、データ EEPROM を有効にして、ハードウェアが RDY ステータスビット (EECON<14>) をセットするまで待機する必要があります。実行中のコマンドが完了する (RW ビット (EECON<7>) が 0にクリアされる ) まで、次のコマンドをデータ EEPROM に対して発行する事はできません。

データ EEPROM の読み出しコマンドの実行手順は以下の通りです。

1. データEEPROMの読み出しアドレスをEEADDR<11:0>ビットに書き込みます (例 : EEADDR= 0x100)。アドレスは 32 ビット境界に位置する必要があるため、最下位 2 ビット(EEADDR<1:0>) は「00」である事が必要です。

2. CMD<2:0> ビットに読み出しコマンドのコードを書き込みます (EECONbits.CMD = 0x0)。

3. WRENビットをクリアする事で、読み出しアクセスを有効にします(EECONbits.WREN = 0)。

4. RW ビットをセットする事で、読み出しを開始します (EECONbits.RW = 1)。

5. 読み出しサイクルが完了してハードウェアが RW ビットをクリアするまで待機します(while (EECONbits.RW == 1))。

6. EEDATA レジスタからデータを読み出します ( 変数 = EEDATA)。

7. エラーが発生した場合、ERR<1:0> はエラーコードを保持します。

例 58-2: データ EEPROM の読み出しコード

読み出しコマンドを開始するためにセットしたRWビットは、ソフトウェアでクリアできます。クリアすると読み出しコマンドの実行は中止されます。

• 中止後の EEDATA レジスタのデータは無効である可能性があります。

• 中止時にエラーは報告されません。

• 中止時に読み出し完了割り込みは生成されません。

RW ビットがセットされている間は、EECON レジスタ (ABORT 以外のビット ) と EEADDR レジスタへの書き込みは無視されます。

読み出しコマンドに対して返される唯一のエラーは「invalid command」 (ERR<1:0> = 10) です。これは、EEADDR が 32 ビット境界上のアドレスではない場合に発生します。

#define EEPROM_NOT_READY 8/* * Function returns ERR<1:0> bits or EEPROM_NOT_READY. * Requested data is stored in ee_data * Returns zero = no error occurred during the read cycle * non-zero = error occurred during the read cycle * or Data EEPROM is not ready */int data_EEPROM_read(unsigned int ee_addr, int *ee_data){ if (EECONbits.RDY==1) // If Data EEPROM to be ready {

if (EECONbits.RW==0) // If no operation underway{ // Execute Read Command

EEADDR = ee_addr & 0xFFC; // Set address on 32-bit boundaryEECONbits.CMD = 0; // Load CMD<2:0> with

// Data EEPROM read command EECONbits.WREN = 0; // Access for read EECONbits.RW = 1; // Start the operation

while (EECONbits.RW==1); // Wait until read is complete *ee_data = EEDATA; // Read the data

return EECONbits.ERR;}

} return EEPROM_NOT_READY; }

DS60001341A_JP - p. 58-10 Preliminary © 2015 Microchip Technology Inc.

Page 11: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

セクション 58. データ EEPROMデ

ータ

EE

PR

OM

58

58.3.3 データ EEPROM の書き込みコマンド

データ EEPROM の書き込みを開始する前に、データ EEPROM を有効にして、ハードウェアが RDY ステータスビット (EECON<14>) をセットするまで待機する必要があります。実行中のコマンドが完了する (RW ビット (EECON<7>) が 0にクリアされる ) まで、次のコマンドをデータ EEPROM に対して発行する事はできません。

データ EEPROM の書き込みコマンドの実行手順は以下の通りです。

1. データEEPROMの書き込みアドレスをEEADDR<11:0>ビットに書き込みます(例: EEADDR= 0x100)。

2. WRENビットをセットする事で、書き込みアクセスを有効にします(EECONbits.WREN = 1)。

3. CMD<2:0> ビットに書き込みコマンドのコードを書き込みます (EECONbits.CMD = 0x01)。

4. 書き込みデータを EEDATA レジスタに書き込みます ( 例 : EEDATA = 0x13572468)。

5. EEKEY レジスタを使って、データ EEPROM ロック解除シーケンスを実行します。

6. RW ビットをセットする事で、ワード書き込みを開始します (EECONbits.RW = 1)。

7. 書き込みサイクルが完了してハードウェアが RW ビットをクリアするまで待機します(while (EECONbits.RW = 1))。

8. エラーが発生した場合、ERR<1:0> はエラーコードを保持します。

例 58-3: データ EEPROM の書き込みコード

読み出しコマンドとは異なり、ソフトウェアで書き込みコマンドを中止する事はできません。書き込みサイクル中は、ソフトウェアによる EECON レジスタへの書き込みは全て無視されます。

#define EEPROM_NOT_READY 8/* * Function returns ERR<1:0> bits * Returns zero = no error occurred during the write cycle * non-zero = error occurred during the write cycle * or Data EEPROM is not ready */int data_EEPROM_write(unsigned int ee_addr, int ee_data){if (EECONbits.RDY==1) // If Data EEPROM to be ready{

if (EECONbits.RW==0) // If no operation underway{ // Execute Write Command

EEADDR = ee_addr & 0xFFC;// Load address on a 32-bit boundaryEECONbits.CMD = 1; // Load CMD<2:0> with write commandEECONbits.WREN = 1; // Access for writeEEDATA = ee_data;

EEKEY = 0xED87; // Write unlock sequenceEEKEY = 0x1248;

EECONbits.RW = 1; // Start the write cycle

while (EECONbits.RW==1);//Wait for write cycle to complete

// Return ERR<1:0> bits.Zero if no error. return EECONbits.ERR;

}}return EEPROM_NOT_READY;

}

CAUTION

ユーザは、ユーザプログラム フラッシュ (NVM レジスタに割り当て ) とデータ EEPROM に

対する書き込み / 消去が同時に発生しないよう対処する必要があります。そうしないと、片

方または両方のメモリで書き込みエラーが発生する可能性があります。

© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-11

Page 12: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

58.3.3.1 ワード書き込みサイクルの実行時間の変化

タイミングが重要なアプリケーションの実行中にデータ EEPROM に書き込む場合、データEEPROM 書き込みコマンドの実行時間が変化するという事を考慮する必要があります。

1 つの EEPROM アドレスに対する最初の 16 回の書き込みは、書き込み 1 回あたり約 20 μs で完了します。しかし、17 回目の書き込みサイクルには約 20 ms を要し、これ以降 16 回ごとに長い書き込みサイクルが必要になります。

20 μs または 20 ms は 1 回の書き込みサイクルを完了するために必要な期間です。全ての書き込みサイクルにおいて、この期間中に RW ビット (EECON<7>) は「1」を保持し、ハードウェアが RW ビットをクリアするまで次のデータ EEPROM 命令を実行する事はできません。

58.3.3.2 長い書き込みサイクルへの対応

EEPROM ロジックは、17 回目の書き込みサイクルと以降の 16 サイクルごとに、書き込み前のメモリセルの消去に通常よりも長い時間を必要とします。これらのサイクルは、通常の書き込みサイクルよりも大幅に長い時間を要するため、「長い書き込みサイクル」と呼びます。

データ EEPROM ロジックは、この長い書き込みサイクルに対処するための支援を提供します。長い書き込みサイクル直前ステータス (ILW) ビット (EECON<3>) は、同じ EEPROM アドレスに対する次の書き込みが長い書き込みサイクルを必要とする場合にセットされます。

ユーザは ILW ビットを無視できます。その場合、その EEPROM アドレスに対する次の書き込みサイクルは 20 ms を要します。

タイミングが重要なアプリケーションでは、ループで書き込みコマンドの完了を待機するよりも、データ EEPROM 割り込みを使って適切な割り込みサービスルーチン (ISR) を実行した方が有利な場合があります。

あるいは、データ EEPROM への各ワード書き込み後にユーザ ソフトウェアで ILW ビットを監視し、アプリケーションにとって都合の良いタイミングで 20 ms の長い書き込みサイクルを発生させる事ができます。ユーザ ソフトウェアは、ILW = 1の時に同じアドレスに同じデータ ( または新しいデータ ) をもう一度書き込む事で、将来いつ発生するか分からない「長い書き込みサイクル」の発生タイミングを制御できます。

例 58-4 に、EEPROM にデータを書き込むための関数を示します。最初の書き込み後に ILWビットがセットされた場合、この関数は再度書き込みを実行して長い書き込みサイクルを発生させます。

例 58-4: データ EEPROM の長い書き込みサイクルを早期に発生させる推奨手順 /* * Function returns ERR bits * Called to write data. * The first write cycle is always a short write cycle. * If ILW is set after the first write, * a second write is initiated to force the long write cycle. * Returns zero = no error occurred during the write cycle * non-zero = error occurred during the write cycle * or Data EEPROM is not ready */int data_EEPROM_write_managed_long_cycle(unsigned int ee_addr, int ee_data){ int ret_err;

ret_err = data_EEPROM_write(ee_addr, ee_data); //short write cycle

if ((EECONbits.ILW == 1) && (ret_err == 0)) { // Rewrite the data to the same location if ILW==1 // This forces the long write cycle. // It will take ~20 ms to complete ret_err = data_EEPROM_write(ee_addr, ee_data);}

return ret_err;}

DS60001341A_JP - p. 58-12 Preliminary © 2015 Microchip Technology Inc.

Page 13: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

セクション 58. データ EEPROMデ

ータ

EE

PR

OM

58

58.3.4 データ EEPROM の強制ワード消去

正常に動作している場合、強制ワード消去を実行する必要はありません。データ EEPROM は、全ての読み込み / 消去 / 書き込みコマンド シーケンスを自動的に管理する内部ロジックを備えています。強制ワード消去コマンドのソフトウェア実行は、書き込み検証エラー ( 書き込み後の ERR<1:0> = 01) に対処するために使います。

データ EEPROM への書き込み中に検証エラーが発生した場合、ユーザは強制ワード消去コマンドを試みる事ができます。

例 58-5 に示すように、強制ワード消去コマンドは、CMD<2:0> ビット (EECON<2:0>) を 010に設定してEEDATAにデータを書き込まないという点を除けば、書き込みコマンドと同様です。

例 58-5: データ EEPROM の強制ワード消去コード

読み出しコマンドとは異なり、ソフトウェアで強制ワード消去コマンドを中止する事はできません。消去サイクル中は、ソフトウェアによる EECON レジスタへの書き込みは全て無視されます。

#define EEPROM_NOT_READY 8/* * Function returns ERR<1:0> bits * Returns zero = no error occurred, word erased properly * non-zero = error occurred, word may have fixed bits * or Data EEPROM is not ready */int data_EEPROM_forced_word_erase(unsigned int addr){if (EECONbits.RDY==1) // If Data EEPROM to be ready{

if (EECONbits.RW==0) // If no operation underway{ // Execute erase command

EEADDR = ee_addr;EECONbits.CMD = 2; // Load CMD<2:0> with erase commandEECONbits.WREN = 1; // Access for write or erase

EEKEY = 0xED87; // Write unlock sequenceEEKEY = 0x1248;

EECONbits.RW = 1; // Start the erase cycle

while (EECONbits.RW==1); //Wait for erase cycle to complete

// Return ERR<1:0> bits.Zero if no error. return EECONbits.ERR;

}}return EEPROM_NOT_READY;

}

CAUTION

ユーザは、ユーザプログラム フラッシュ (NVM レジスタに割り当て ) とデータ EEPROM に

対する書き込み / 消去が同時に発生しないよう対処する必要があります。そうしないと、片

方または両方のメモリで書き込みエラーが発生する可能性があります。

© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-13

Page 14: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

58.3.5 データ EEPROM のバルク消去

例 58-6 に示すように、バルク消去コマンドは、CMD<2:0> ビット (EECON<2:0>) を 011に設定して EEDATA にデータを書き込まないという点を除けば、書き込みコマンドと同様です。

例 58-6: データ EEPROM のバルク消去コード

読み出しコマンドとは異なり、ソフトウェアでバルク消去コマンドを中止する事はできません。消去サイクル中は、ソフトウェアによる EECON レジスタへの書き込みは全て無視されます。

#define EEPROM_NOT_READY 8/* * Function returns ERR<1:0> bits * Returns zero = no error occurred, word erased properly * non-zero = error occurred, word may have fixed bits * or Data EEPROM is not ready */int data_EEPROM_bulk_erase(void){if (EECONbits.RDY==1) // If Data EEPROM to be ready{

if (EECONbits.RW==0) // If no operation underway{ // Execute erase command

EECONbits.CMD = 3; // Load CMD<2:0> with erase commandEECONbits.WREN = 1; // Access for write or erase

EEKEY = 0xED87; // Write unlock sequenceEEKEY = 0x1248;

EECONbits.RW = 1; // Start the erase cycle

while (EECONbits.RW==1); //Wait for erase cycle to complete

// Return ERR<1:0> bits.Zero if no error. return EECONbits.ERR;

}}return EEPROM_NOT_READY;

}

CAUTION

ユーザは、ユーザプログラム フラッシュ (NVM レジスタに割り当て ) とデータ EEPROM に

対する書き込み / 消去が同時に発生しないよう対処する必要があります。そうしないと、片

方または両方のメモリで書き込みエラーが発生する可能性があります。

DS60001341A_JP - p. 58-14 Preliminary © 2015 Microchip Technology Inc.

Page 15: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

セクション 58. データ EEPROMデ

ータ

EE

PR

OM

58

58.3.6 データ EEPROM のエラー処理

データ EEPROM の動作中にエラーが発生した場合、ERR<1:0> ビット (EECON<5:4>) をクリアする事により、データ EEPROM の内部ロジックを再初期化できます。

58.3.6.1 BOR エラー (ERR<1:0> = 11)BOR イベントが発生すると、実行中のコマンドは全て中止されます。書き込みコマンドまたは強制ワード消去コマンドが実行中であった場合、ユーザは対応するアドレスのデータを検証する必要があります。

エラー割り込みは生成されません。RDY ビット (EECON<14>) はクリアされます。

ハードウェアが RDY ビットをセットするまで待機した後に、ERR<1:0> ビットをクリアする事によりエラーをクリアします。

詳細は 58.3.1.2「BOR イベント後のデータ EEPROM の初期化」参照してください。

58.3.6.2 無効コマンド (ERR<1:0> = 10)ユーザが不適切なコマンド実行を試みるか CMD<2:0> ビット (EECON<2:0>) で予約済みのコマンドを選択した場合、データ EEPROM は「Invalid Command」エラーを返します。

不適切なコマンド実行には以下を含みます。

• CMD<2:0> ビットで読み出しコマンド (000) が選択されていない時にデータ EEPROM 読み出しコマンドの開始 (WREN = 0かつ RW = 1) を試みた。

• 書き込みを有効 (WREN = 1) にした状態でデータEEPROM 読み出しコマンドの開始 (CMD<2:0>= 000かつ RW = 1) を試みた。

• 32ビット境界ではないアドレス (EEADDR<1:0> 00)でデータEEPROM読み書きコマンドの開始を試みた。

• CMD<2:1> ビットで書き込みコマンド (001) が選択されていない時にデータ EEPROM 書き込みコマンドの開始 (WREN = 1かつ RW = 1) を試みた。

• 書き込みを無効 (WREN = 0) にした状態でデータEEPROM 書き込みコマンドの開始 (CMD<2:0>= 001かつ RW = 1) を試みた。

ERR<1:0> ビットをクリアする事によりエラーをクリアします。

58.3.6.3 検証エラー (ERR<1:0> = 01)EEPROM 内部ロジックは、書き込みコマンドの実行後にデータ EEPROM に実際に書き込まれたデータを検証し、消去コマンドの実行後に実際に消去されたどうかを検証します。書き込みまたは消去でエラーが見付かると検証エラーが報告されます。

検証エラーが発生した場合、ソフトウェアはエラーが発生したアドレスに対して強制ワード消去コマンド (CMD<2:0> = 010) を実行する事により、そのデータ EEPROM ワード位置の復元を試みる事ができます。あるいは、別のデータ EEPROM アドレスを選択してデータを保存する事ができます。

© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-15

Page 16: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

58.4 データ EEPROM 割り込み割り込みの有効化 / 無効化 / 優先度設定の方法については、『PIC32 ファミリ リファレンス マニュアル、セクション 08、割り込み』(DS60001108) を参照してください。

データ EEPROM に関連する割り込みには以下の 3 つがあります。

• データ EEPROM エラー割り込み (EEERRIF)

• データ EEPROM 読み出し完了割り込み (EERDIF)

• データ EEPROM 書き込み完了割り込み (EEWRIF)

表 58-2: EEPROM 割り込みの条件と対応動作

58.4.1 データ EEPROM エラー割り込み (ERRIF)

データ EEPROM エラー割り込みは、読み書き動作の完了時にエラー (ERR<1:0> 00) が報告された場合に生成されます。

データ EEPROM エラー割り込みを有効にする場合、その優先度は他の全てのデータ EEPROM割り込みよりも高くする必要があります。

58.4.2 データ EEPROM 読み出し完了割り込み (EERDIF)/ 書き込み完了割り込み (EEWRIF)

データ EEPROM 読み出し完了割り込み (EERDIF) は、エラーが発生する事なく (ERR<1:0> = 00)読み出し動作が完了した場合に生成されます。

データ EEPROM 書き込み完了割り込み (EEWRIF) は、エラーが発生する事なく (ERR<1:0> = 00)書き込み動作が完了した場合に生成されます。

イベント 条件EEPROM割り込み

対応動作

読み出しコマンドの中止

WREN = 0かつ RW = 1の時にソフトウェアが RW ビットをクリアした。

なし 次のデータEEPROMコマンドを実行する。

読み出し命令の完了 ソフトウェアが読み出しコマンドを開始した後、ハードウェアが RWビットをクリアした ( 読み出しサイクルが完了した )。

EERDIF EEDATA からデータを読み出す。

書き込み命令の完了 書き込みコマンドを開始した後、 ハードウェアが RW ビットをクリアした( 書き込みサイクルが完了した )。

EEWRIF 次のデータEEPROMコマンドを実行する。

書き込みコマンドのエラー

ERR<1:0> = 01ソフトウェアが書き込みコマンドを開始した後、検証ロジックが問題を検出した。

EEERRIF 58.3.6.3「検証エラー (ERR<1:0> = 01)」参照

データ EEPROM 命令エラー

ERR<1:0> = 10 EEERRIF ERR<1:0> を 00 にクリアする事でデータ EEPROM ロジックをリセットする。書き込みによるエラーの場合、直前の書き込みデータを検証する。

データ EEPROM BOR イベント

ERR<1:0> = 11 なし データ EEPROM の初期化時に BOR イベントをチェックする。直前のコマンドが書き込みであった場合、書き込まれたデータを検証する。

POR イベント ON = 0 なし データ EEPROM を初期化する。

BOR イベント ON = 1、RDY = 0、 CMD<2:0> = 111 なし データ EEPROM にアクセスする前に、RDY = 1を待機する。

DS60001341A_JP - p. 58-16 Preliminary © 2015 Microchip Technology Inc.

Page 17: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

セクション 58. データ EEPROMデ

ータ

EE

PR

OM

58

58.5 データ EEPROM のロック解除シーケンスデータ EEPROM 内のデータを保護するため、RW ビット (EECON<7>) をセットして書き込みコマンド、強制ワード消去コマンド、バルク消去コマンドを実行する前に、ロック解除シーケンス ( 例 58-7 参照 ) を実行する必要があります。

WREN ビット (EECON<6>) をセットした状態でロック解除シーケンスを実行するまで、RWビットはセットできません。

読み出しコマンドを実行する場合、ロック解除シーケンスは不要です。ロック解除シーケンスを EEKEY レジスタに書き込む際は、シーケンスの中断を防ぐために割り込みを無効にしておく必要があります。

例 58-7: データ EEPROM のロック解除コード

58.6 データ EEPROM の読み出しアクセス制御データ EEPROM をセットアップする際は、以下のデバイス コンフィグレーション ビットの設定に注意が必要です。

58.6.1 CFGAPP3 コンフィグレーション レジスタの設定 (EEWS<7:0>)

データ EEPROM 読み出しアクセスカウントは、データ EEPROM メモリアクセスに使うSYSCLK サイクルの数です。詳細は各デバイス データシート内の「データ EEPROM」を参照してください。

この値は、アプリケーションの動作速度 (FSYS) に基づいて選択します。PIC32 デバイスファミリの場合、デバイスの速度に応じて 1 ~ 20 に設定します。表 58-3 に、システムクロック速度に基づく推奨値を示します。

表 58-3: データ EEPROM 読み出しアクセスの設定 (3)

// The Data EEPROM Unlock sequence must be executed prior to attempting a// write or erase cycle

EEKEY = 0xED87; // Write unlock sequenceEEKEY = 0x1248;

Note: 推奨値よりも大きな値を設定すると、デバイスの読み出し速度が低下します。

最高システムクロック周波数

(MHz)

EEWS<7:0>(1)

の設定

EEPROM アクセス

(サイクル /読み出し )読み出しアクセス

( サイクル )(2)読み出しアクセス

(ns)

< 200 00010011 20 109 545

< 175 00010001 18 99 566

< 150 00001110 15 84 560

< 125 00001100 13 74 592

< 100 00001001 10 59 590

< 75 00000111 8 49 653

< 50 00000100 5 34 680

< 25 00000010 3 24 960

Note 1: EEWS = EEPROM アクセス時間 (ns) × システム周波数 (MHz)

2: 有限ステートマシンのオーバーヘッドにより、読み出しアクセス ( サイクル ) = [(EEWS + 2) × 5] + 4

3: この表は、EEPROM アクセス時間 = 100 ns の場合の参考例です。デバイスごとの詳細については、データシートを参照してください。

© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-17

Page 18: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

58.7 省電力モードとデバッグモード中の動作

58.7.1 スリープ中の動作

デバイスがスリープに移行した時の EEPROM の動作は、DEVCFG レジスタの FSLEEP ビットの設定によって決まります。FSLEEP = 1 の場合、EEPROM はスリープ中も給電され、スリープからの復帰後直ちに動作を再開できます。

FSLEEP = 0の場合、EEPROM への給電は停止し、ON ビット (EECON<15>) はクリアされます。EEPROM の動作を再開するには、ON ビットをセットし、ハードウェアが RDY ビット(EECON<14>) をセットするまで待機する必要があります。

58.7.2 アイドル中の動作

動作が実行中である場合、アイドルへの移行は EEPROM コントローラに影響しません。

58.7.3 デバッグモード中の動作

EEPROM コントローラはデバッグフリーズ機能を備えていないため、デバッグモードは書き込み動作中の EEPROM コントローラ モジュールに影響しません。書き込み動作が完了するまで、CPU はストール状態のままです。唯一の例外として、EEKEY ロック解除シーケンスはデバッグモード中に無視されます。このためユーザは、ロック解除シーケンスをシングルステップ実行できます。

58.7.4 周辺モジュールの無効化 (PMD)

データ EEPROM に対応する周辺モジュール ディセーブル (PMD) ビットをセットすると、以下が生じます。

• データ EEPROM は直ちに無効になる

• 実行中の全てのコマンドは直ちに中止される

• モジュール クロックは無効になり、モジュールへの給電は停止する

モジュールの PMD ビットをセットする前に、データ EEPROM 書き込み割り込みが有効であれば無効にし、RW ビット (EECON<7>) がクリアされるまで待機する事を推奨します。これにより、書き込みサイクルが不完全に終了する事を防ぎます。

例 58-8: データ EEPROM の PMD ビットをセットするための推奨手順

58.8 各種リセットの影響

58.8.1 デバイスリセット

全ての EECON ビットはデバイスリセット時にリセットされません。その他の全ての SFR ビットは POR 時にのみリセットされます。ただし EEKEY レジスタの状態はデバイスリセット時にリセットされます。

58.8.2 パワーオン リセット

POR が発生すると、全ての EEPROM コントローラ レジスタはリセット状態に戻されます。

58.8.3 ウォッチドッグおよびデッドマンタイマ リセット

全ての EEPROM コントローラ レジスタは、ウォッチドッグまたはデッドマンタイマ リセット時に変更されません。

58.8.4 58.8.4 工場出荷リセット

データ EEPROM の内容を既知の状態にするには、最初期のブート時 ( つまり工場でのセットアップおよびテスト時 ) にデバイスをバルク消去する必要があります。

void data_EEPROM_set_PMD( void ){ IEC5CLR = 1 << 26; // Disable Data EEPROM write interrupt, if it

// was enabled while (EECONbits.RW);// wait until last command is complete, PMD4bits.EEMD = 1; // and then disable the module}

DS60001341A_JP - p. 58-18 Preliminary © 2015 Microchip Technology Inc.

Page 19: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

セクション 58. データ EEPROMデ

ータ

EE

PR

OM

58

58.9 関連アプリケーション ノート本セクションに関連するアプリケーション ノートの一覧を下に記載します。一部のアプリケーション ノートは PIC32 デバイスファミリ向けではありません。ただし概念は共通しており、変更が必要であったり制限事項が存在するものの利用が可能です。データ EEPROM モジュールに関連する最新のアプリケーション ノートは以下の通りです。

タイトル アプリケーション ノート番号

現在、関連するアプリケーション ノートはありません。 N/A

Note: PIC32 ファミリ関連のアプリケーション ノートとサンプルコードは Microchip 社のウェブサイト (www.microchip.com) でご覧頂けます。

© 2015 Microchip Technology Inc. Preliminary DS60001341A_JP - p. 58-19

Page 20: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

PIC32 ファミリ リファレンス マニュアル

58.10 改訂履歴

リビジョン A (2015 年 4 月 )

本書は初版です。

DS60001341A_JP - p. 58-20 Preliminary © 2015 Microchip Technology Inc.

Page 21: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

2015 Microchip Technology Inc. DS60001341A_JP - p. 58-21

本書に記載されているデバイス アプリケーション等に関する

情報は、ユーザの便宜のためにのみ提供されているものであ

り、更新によって無効とされる事があります。お客様のアプ

リケーションが仕様を満たす事を保証する責任は、お客様に

あります。Microchip 社は、明示的、暗黙的、書面、口頭、法

定のいずれであるかを問わず、本書に記載されている情報に

関して、状態、品質、性能、商品性、特定目的への適合性を

はじめとする、いかなる類の表明も保証も行いません。

Microchip 社は、本書の情報およびその使用に起因する一切の

責任を否認します。Microchip 社の明示的な書面による承認な

しに、生命維持装置あるいは生命安全用途に Microchip 社の製

品を使用する事は全て購入者のリスクとし、また購入者はこ

れによって発生したあらゆる損害、クレーム、訴訟、費用に

関して、Microchip 社は擁護され、免責され、損害をうけない

事に同意するものとします。暗黙的あるいは明示的を問わず、

Microchip社が知的財産権を保有しているライセンスは一切譲

渡されません。

商標

Microchip 社の名称と Microchip ロゴ、dsPIC、FlashFlex、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、PIC32 ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、

米国およびその他の国における Microchip TechnologyIncorporated の登録商標です。

FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、MTP、SEEVAL、Embedded Control Solutions Company は、

米国における Microchip Technology Incorporated の登録商標

です。

Silicon Storage Technologyは、その他の国におけるMicrochipTechnology Incorporated の登録商標です。

Analog-for-the-Digital Age、Application Maestro、BodyCom、

chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、MPASM、MPF、MPLAB 認証ロゴ、MPLIB、MPLINK、mTouch、Omniscient Code Generation、PICC、PICC-18、PICDEM、

PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、SQI、Serial Quad I/O、Total Endurance、TSHARC、UniWinDriver、WiperLock、ZENA、Z-Scale は、米国およびその他の国におけ

る Microchip Technology Incorporatedの登録商標です。

SQTP は、米国における Microchip Technology Incorporatedのサービスマークです。

GestICとULPPは、その他の国におけるMicrochip TechnologyGermany II GmbH & Co. & KG (Microchip TechnologyIncorporated の子会社 ) の登録商標です。

その他、本書に記載されている商標は各社に帰属します。

©2013, Microchip Technology Incorporated, Printed in theU.S.A., All Rights Reserved.

ISBN: 978-1-63277-271-8

Microchip 社製デバイスのコード保護機能に関して次の点にご注意ください。

• Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。

• Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に流

通している同種製品の中でも最も高度であると考えています。

• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、

Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知的所

有権の侵害に該当する可能性が非常に高いと言えます。

• Microchip 社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。

• Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護

機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社

のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著

Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。Microchip 社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています。

QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV

== ISO/TS 16949 ==

Page 22: セクション 58. データ EEPROM - Microchip Technologyww1.microchip.com/downloads/jp/DeviceDoc/60001341A_JP.pdfbit 5-4 ERR: データEEPROM シーケンスエラー

DS60001341A_JP - p. 58-22 2015 Microchip Technology Inc.

北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel:480-792-7200 Fax:480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.com

アトランタDuluth, GA Tel:678-957-9614 Fax:678-957-1455

オースティン (TX)Tel:512-257-3370

ボストンWestborough, MA Tel:774-760-0087 Fax:774-760-0088

シカゴItasca, IL Tel:630-285-0071 Fax:630-285-0075

クリーブランドIndependence, OH Tel:216-447-0464

Fax:216-447-0643

ダラスAddison, TX Tel:972-818-7423 Fax:972-818-2924

デトロイトNovi, MI Tel:248-848-4000

ヒューストン (TX) Tel:281-894-5983

インディアナポリスNoblesville, IN Tel:317-773-8323Fax:317-773-5453

ロサンゼルスMission Viejo, CA Tel:949-462-9523 Fax:949-462-9608

ニューヨーク (NY) Tel:631-435-6000

サンノゼ (CA) Tel:408-735-9110

カナダ - トロントTel:905-673-0699 Fax:905-673-6509

アジア / 太平洋

アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel:852-2943-5100Fax:852-2401-3431

オーストラリア - シドニーTel:61-2-9868-6733Fax:61-2-9868-6755

中国 - 北京Tel:86-10-8569-7000 Fax:86-10-8528-2104

中国 - 成都Tel:86-28-8665-5511Fax:86-28-8665-7889

中国 - 重慶Tel:86-23-8980-9588Fax:86-23-8980-9500

中国 - 東莞

Tel:86-769-8702-9880

中国 - 杭州Tel:86-571-8792-8115 Fax:86-571-8792-8116

中国 - 香港 SARTel:852-2943-5100 Fax:852-2401-3431

中国 - 南京Tel:86-25-8473-2460Fax:86-25-8473-2470

中国 - 青島Tel:86-532-8502-7355Fax:86-532-8502-7205

中国 - 上海Tel:86-21-5407-5533 Fax:86-21-5407-5066

中国 - 瀋陽Tel:86-24-2334-2829Fax:86-24-2334-2393

中国 - 深圳Tel:86-755-8864-2200 Fax:86-755-8203-1760

中国 - 武漢Tel:86-27-5980-5300Fax:86-27-5980-5118

中国 - 西安Tel:86-29-8833-7252Fax:86-29-8833-7256

アジア / 太平洋

中国 - 厦門Tel:86-592-2388138 Fax:86-592-2388130

中国 - 珠海Tel:86-756-3210040 Fax:86-756-3210049

インド - バンガロールTel:91-80-3090-4444 Fax:91-80-3090-4123

インド - ニューデリーTel:91-11-4160-8631Fax:91-11-4160-8632

インド - プネTel:91-20-3019-1500

日本 - 大阪Tel:81-6-6152-7160 Fax:81-6-6152-9310

日本 - 東京Tel:81-3-6880- 3770 Fax:81-3-6880-3771

韓国 - 大邱Tel:82-53-744-4301Fax:82-53-744-4302

韓国 - ソウルTel:82-2-554-7200Fax:82-2-558-5932 または 82-2-558-5934

マレーシア - クアラルンプールTel:60-3-6201-9857Fax:60-3-6201-9859

マレーシア - ペナンTel:60-4-227-8870Fax:60-4-227-4068

フィリピン - マニラTel:63-2-634-9065Fax:63-2-634-9069

シンガポールTel:65-6334-8870Fax:65-6334-8850

台湾 - 新竹Tel:886-3-5778-366Fax:886-3-5770-955

台湾 - 高雄Tel:886-7-213-7828

台湾 - 台北Tel:886-2-2508-8600 Fax:886-2-2508-0102

タイ - バンコクTel:66-2-694-1351Fax:66-2-694-1350

ヨーロッパ

オーストリア - ヴェルスTel:43-7242-2244-39

Fax:43-7242-2244-393

デンマーク - コペンハーゲンTel:45-4450-2828 Fax:45-4485-2829

フランス - パリTel:33-1-69-53-63-20 Fax:33-1-69-30-90-79

ドイツ - デュッセルドルフTel:49-2129-3766400

ドイツ - ミュンヘンTel:49-89-627-144-0 Fax:49-89-627-144-44

ドイツ - プフォルツハイムTel:49-7231-424750

イタリア - ミラノ Tel:39-0331-742611 Fax:39-0331-466781

イタリア - ベニスTel:39-049-7625286

オランダ - ドリューネンTel:31-416-690399 Fax:31-416-690340

ポーランド - ワルシャワTel:48-22-3325737

スペイン - マドリッドTel:34-91-708-08-90Fax:34-91-708-08-91

スウェーデン - ストックホルムTel:46-8-5090-4654

イギリス - ウォーキンガムTel:44-118-921-5800Fax:44-118-921-5820

各国の営業所とサービス

01/27/15