セクション 58. データ eeprom - microchip...
TRANSCRIPT
注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジナルの英語版をご参照願います。
セクション 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
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.
© 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」である事が必要です
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.
セクション 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
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.
セクション 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
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.
セクション 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
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.
セクション 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
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.
セクション 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
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.
セクション 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
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.
セクション 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
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.
セクション 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
PIC32 ファミリ リファレンス マニュアル
58.10 改訂履歴
リビジョン A (2015 年 4 月 )
本書は初版です。
DS60001341A_JP - p. 58-20 Preliminary © 2015 Microchip Technology Inc.
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 ==
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