- 下电上电(切换 PD 号)。
- 使用所需的配置写入活动寄存器,并确认输出时钟是否按预期运行。
- 通过将 R171[6] (REGCOMMIT) 设置为 1,将活动寄存器提交到 SRAM。
- 注意:当传输完成时,REGCOMMIT 自动清除为 0。
- 通过将 R20[7] (ROM_PLUS_EE) 设置为 1,来启用 EEPROM 覆盖。
- 通过将 R180 (NVMUNLK) 设置为 234,解锁 EEPROM。
- 在一个事务中:
- 通过将 R171[1] (NVMERASE) 设置为 1,擦除 EEPROM 的内容。
- 通过将 R171[0] (NVMPROG) 设置为 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 加载活动寄存器。
十六进制指令表:
R171 0x00AB40 # Set REGCOMMIT
R20 0x001480 # Enable EEPROM OVERLAY
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