- 希望する構成の SRAM マッピングを取得します。SRAM マップは、TICS Pro で生成されます。TARGET_ADR_MSB と EEREV のマッピングについては、I2C アドレスの上位 5 ビットと EEPROM のリビジョン番号 を参照してください。
- 混合方式のみ:REGCOMMIT (R171[6]) を 1 に設定して、アクティブなレジスタを SRAM にコミットします。
- 注:転送が完了すると、REGCOMMIT は自動的に 0 にクリアされます。
- R20[7] (ROM_PLUS_EE) を 1 に設定して、EEPROM オーバーレイを有効化します。
- R173[4:0] (MEMADR_12:8)を SRAM アドレスの MSB 5 に設定して、SRAM アドレス ポインタを構成します。
- R174 (MEMADR) によって SRAM アドレス ポインタを、SRAM アドレスの下位 8 ビットに設定します。
- SRAM マップからの SRAM データに R176 (RAMDAT) を設定することにより、指定された SRAM アドレスに必要なデータを保存します。
- 必要なすべての SRAM アドレスに対して手順 4~6 を繰り返します。
- R180 (NVMUNLK) を 234 に設定して、EEPROM のロックを解除します。
- 1 回のトランザクションで:
- NVMERASE (R171[1]) を 1 に設定して、EEPROM の内容を消去します。
- NVMPROG (R171[0] )を 1 に設定して、SRAM の内容を EEPROM に転送する EEPROM プログラミングを開始します。
- 注:ステップ 5 と 6 は、間にある他のレジスタトランザクションなしのアトミック (連続) 書き込みである必要があります。EEPROM プログラミングを成功させるために、シリアル通信割り込み (同じバス上の他のデバイスへのアクセスなど) も許可されません。
- R171[2] (NVMBUSY) をポーリングしてクリアされるまで、または約 500ms 待って、EEPROM のプログラミングが完了するのを待ちます。
- 注:EEPROM プログラミングを正常に行うには、NVMBUSY がクリアされるまで、電源を切ったり、PD# を切り替えたり、次の手順に進んだりしないでください。
- NVMUNLK を 0 に設定して EEPROM をロックします。
- 次の POR で EEPROM プログラミングが成功すると、EEPROM プログラム カウント R16 (NVMCNT) が 1 インクリメントされます。また、EEPROM オーバーレイ ビットが設定されている場合、アクティブ レジスタは EEPROM からロードされます。
TARGET_ADR_MSB を変更するための 16 進数命令の例:
R171 0x00AB40 # Set REGCOMMIT (Mixed Method only)
R20 0x001480 # Enable EEPROM OVERLAY
R173 0x00AD00 # Set 5 MSBs of SRAM address
R174 0x00AE0C # Set 8 LSBs of SRAM address
R176 0x00B019 # Set 5 MSBs of desired I2C address
R180 0x00B4EA # UNLOCK EEPROM
R171 0x00AB03 # ERASE and PROGRAM SRAM contents to EEPROM
while(READ_REG(NVMBUSY) != 0) # NVMBUSY is located in 0xAB, bit 2
R180 0x00B400 # Lock EEPROM
EEREV を変更するための 16 進数命令の例: