有两个未使用的 OTP 存储器页面可供客户编程。每个页面状态都保存在 OTP_CUST1_STAT 和 OTP_CUST2_STAT 寄存器中。这些寄存器提供有关页面当前状态的信息,例如:
- 加载状态(已加载、加载出错或加载失败)
- 编程成功或可供编程
- 编程状态
发生复位时,器件会评估 OTP 页面状态并选择要加载的最新且有效的 OTP 页面。第 2 页的优先级比第 1 页的优先级高。如果两个页面均未写入,则会加载出厂 OTP 默认值。节 8.5.1显示了所有客户可编程 OTP 参数。当客户 OTP 第 1 页和第 2 页未编程时,寄存器摘要还会显示默认值。
- 有效页面是指 OTP_CUST*_STAT[PROGOK] = 1 的页面。
- 当选择该页面进行加载时,OTP_CUST*_STAT1[LOADED] = 1。
- 如果在页面加载过程中出现单个错误,则在更正该单个错误后加载页面,并且 OTP_CUST*_STAT1[LOADWRN] = 1。
- 此外,会使用已纠错的块的位置来更新 DEBUG_OTP_SEC_BLK 寄存器。
- 如果发生双错,则会终止加载该块,并加载该块的硬件默认值(如节 8.5.1中所示)。
- DED 不会终止整个页面加载过程,仅终止受影响的块。
- 当发生 DED 时,OTP_CUST*_STAT1[LOADERR] = 1。此外,会使用发生双重错误的块来更新 DEBUG_OTP_DED_BLK 寄存器。