- 獲取所需配置的 SRAM 映射。SRAM 映射在 TICS Pro 中生成。有關(guān) TARGET_ADR_MSB 和 EEREV 映射,請參閱I2C 地址和 EEPROM 修訂版本號的五個 MSB。
- 僅限混合方法:通過將 REGCOMMIT (R171[6]) 設(shè)置為 1,將活動寄存器提交到 SRAM。
- 注意:當傳輸完成時,REGCOMMIT 自動清除為 0。
- 通過將 R20[7] (ROM_PLUS_EE) 設(shè)置為 1,來啟用 EEPROM 覆蓋。
- 通過將 R173[4:0] (MEMADR_12:8) 設(shè)置為 SRAM 地址的 5 個 MSB,配置 SRAM 地址指針。
- 通過將 R174 (MEMADR) 設(shè)置為 SRAM 地址的 8 個 LSB,配置 SRAM 地址指針。
- 通過將 R176 (RAMDAT) 設(shè)置為 SRAM 映射中的 SRAM 數(shù)據(jù),將所需的數(shù)據(jù)存儲在指定的 SRAM 地址。
- 對所需的全部 SRAM 地址,重復(fù)執(zhí)行步驟 4-6。
- 通過將 R180 (NVMUNLK) 設(shè)置為 234,解鎖 EEPROM。
- 在一個事務(wù)中:
- 通過將 NVMERASE (R171[1]) 設(shè)置為 1,擦除 EEPROM 的內(nèi)容。
- 通過將 NVMPROG (R171[0]) 設(shè)置為 1,啟動 EEPROM 編程,以將 SRAM 內(nèi)容傳輸?shù)?EEPROM。
- 注意:步驟 5 和 6 必須是原子(背靠背)寫入,中間沒有任何其他寄存器事務(wù)。為確保成功進行 EEPROM 編程,還不允許串行通信中斷(如訪問同一總線上的其他器件)。
- 通過輪詢 R171[2] (NVMBUSY) 直到被清除或等候大約 500ms,等待 EEPROM 編程完成。
- 注意:請勿關(guān)斷、切換 PD 號或繼續(xù)進行下一步,直到 NVMBUSY 被清除以成功進行 EEPROM 編程為止。
- 通過將 NVMUNLK 設(shè)置為 0 以鎖定 EEPROM。
- 在下一次 POR 時,如果 EEPROM 編程成功,則 EEPROM 編程計數(shù) R16 (NVMCNT) 會增加 1。此外,如果設(shè)置了 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 的十六進制指令示例: