- 获取所需配置的 SRAM 映射。SRAM 映射在 TICS Pro 中生成。有关 TARGET_ADR_MSB 和 EEREV 映射,请参阅I2C 地址和 EEPROM 修订版本号的五个 MSB。
- 仅限混合方法:通过将 REGCOMMIT (R171[6]) 设置为 1,将活动寄存器提交到 SRAM。
- 注意:当传输完成时,REGCOMMIT 自动清除为 0。
- 通过将 R20[7] (ROM_PLUS_EE) 设置为 1,来启用 EEPROM 覆盖。
- 通过将 R173[4:0] (MEMADR_12:8) 设置为 SRAM 地址的 5 个 MSB,配置 SRAM 地址指针。
- 通过将 R174 (MEMADR) 设置为 SRAM 地址的 8 个 LSB,配置 SRAM 地址指针。
- 通过将 R176 (RAMDAT) 设置为 SRAM 映射中的 SRAM 数据,将所需的数据存储在指定的 SRAM 地址。
- 对所需的全部 SRAM 地址,重复执行步骤 4-6。
- 通过将 R180 (NVMUNLK) 设置为 234,解锁 EEPROM。
- 在一个事务中:
- 通过将 NVMERASE (R171[1]) 设置为 1,擦除 EEPROM 的内容。
- 通过将 NVMPROG (R171[0]) 设置为 1,启动 EEPROM 编程,以将 SRAM 内容传输到 EEPROM。
- 注意:步骤 5 和 6 必须是原子(背靠背)写入,中间没有任何其他寄存器事务。为确保成功进行 EEPROM 编程,还不允许串行通信中断(如访问同一总线上的其他器件)。
- 通过轮询 R171[2] (NVMBUSY) 直到被清除或等候大约 500ms,等待 EEPROM 编程完成。
- 注意:请勿关断、切换 PD 号或继续进行下一步,直到 NVMBUSY 被清除以成功进行 EEPROM 编程为止。
- 通过将 NVMUNLK 设置为 0 以锁定 EEPROM。
- 在下一次 POR 时,如果 EEPROM 编程成功,则 EEPROM 编程计数 R16 (NVMCNT) 会增加 1。此外,如果设置了 EEPROM 覆盖位,则会从 EEPROM 加载活动寄存器。
更改 TARGET_ADR_MSB 的十六进制指令示例:
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 的十六进制指令示例: