- 下電上電(切換 PD 號(hào))。
- 使用所需的配置寫(xiě)入活動(dòng)寄存器,并確認(rèn)輸出時(shí)鐘是否按預(yù)期運(yùn)行。
- 通過(guò)將 R171[6] (REGCOMMIT) 設(shè)置為 1,將活動(dòng)寄存器提交到 SRAM。
- 注意:當(dāng)傳輸完成時(shí),REGCOMMIT 自動(dòng)清除為 0。
- 通過(guò)將 R20[7] (ROM_PLUS_EE) 設(shè)置為 1,來(lái)啟用 EEPROM 覆蓋。
- 通過(guò)將 R180 (NVMUNLK) 設(shè)置為 234,解鎖 EEPROM。
- 在一個(gè)事務(wù)中:
- 通過(guò)將 R171[1] (NVMERASE) 設(shè)置為 1,擦除 EEPROM 的內(nèi)容。
- 通過(guò)將 R171[0] (NVMPROG) 設(shè)置為 1,啟動(dòng) EEPROM 編程,以將 SRAM 內(nèi)容傳輸?shù)?EEPROM。
- 注意:步驟 5 和 6 必須是原子(背靠背)寫(xiě)入,中間沒(méi)有任何其他寄存器事務(wù)。為確保成功進(jìn)行 EEPROM 編程,還不允許串行通信中斷(如訪問(wèn)同一總線上的其他器件)。
- 通過(guò)輪詢 R171[2] (NVMBUSY) 直到被清除或等候大約 500ms,等待 EEPROM 編程完成。
- 注意:請(qǐng)勿關(guān)斷、切換 PD 號(hào)或繼續(xù)進(jìn)行下一步,直到 NVMBUSY 被清除以成功進(jìn)行 EEPROM 編程為止。
- 通過(guò)將 NVMUNLK 設(shè)置為 0 以鎖定 EEPROM。
- 在下一次 POR 時(shí),如果 EEPROM 編程成功,則 EEPROM 編程計(jì)數(shù) R16 (NVMCNT) 會(huì)增加 1。此外,如果設(shè)置了 EEPROM 覆蓋位,則會(huì)從 EEPROM 加載活動(dòng)寄存器。
十六進(jìn)制指令表:
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