(Write the same value as the OTP for page 1) Before programming the OTP, host ensures: All OTP shadow registers have the correct settings Send : 80 00 00 00 37 64 08 Recv : 37 00 00 00 01 01 54 06 00 00 00 00 00 27 20 F2 00 00 09 09 09 09 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C3 AA ( Read CUST_CRC_RSLT_HI/LO for CRC check ) Send : 80 00 05 0C 01 F1 1F Recv : 01 00 05 0C C3 AA 11 8A OTP_CUST2_STAT1[TRY] = 0 and OTP_CUST2_STAT2[FMTERR] = 0. Send : 80 00 05 1B 00 3F 2F Recv : 00 00 05 1B 00 3E F1 Table 9-26. Program the OTP Step1. Unlock the OTP programming: a. Write the following data to OTP_PROG_UNLOCK1A to OTP_PROG_UNLOCK1D registers. Send : 93 00 03 00 02 B7 78 BC 9B 6E b. Do another write with the following data to OTP_PROG_UNLOCK2A to OTP_PROG_UNLOCK2D registers. Send : 93 00 03 52 7E 12 08 6F 4F 4C Step2. Check to confirm the OTP unlock procedure is successful: a. Read to confirm OTP_PROG_STAT[UNLOCK] = 1 Send : 80 00 05 19 00 3E 4F Recv : 00 00 05 19 80 3E 31 Step3. Select the proper OTP page and start the OTP programming: b. To program page2, set OTP_PROG_CTRL[PAGESEL][PROG_GO] = 0x03 Send : 90 00 03 0B 03 53 2C Step4. Wait tPROG = 100ms. Step5. Check to ensure there is no error during OTP programming. The following bits are expected to be 1 after a successful OTP programming: a. OTP_PROG_STAT[DONE] = 1, OTP programming is done. No other bit will be set in this register. Send : 80 00 05 19 00 3E 4F Recv : 00 00 05 19 01 FE 51 Step6. Issue a digital reset to reload the registers with the updated OTP values: a. CONTROL1[SOFT_RESET] = 1 Send : 90 00 03 09 02 93 8C Step7. Wait tRST = 1msec. for the soft reset to complete. Step8. Setting Up Auto-Addressing. a.Dummy Write to ECC_DATA1 to ECC_DATA8 Send : D0 03 43 00 F9 D4 <- OTP_ECC_DATAIN1 Send : D0 03 44 00 FB E4 <- OTP_ECC_DATAIN2 Send : D0 03 45 00 FA 74 <- OTP_ECC_DATAIN3 Send : D0 03 46 00 FA 84 <- OTP_ECC_DATAIN4 Send : D0 03 47 00 FB 14 <- OTP_ECC_DATAIN5 Send : D0 03 48 00 FE E4 <- OTP_ECC_DATAIN6 Send : D0 03 49 00 FF 74 <- OTP_ECC_DATAIN7 Send : D0 03 4A 00 FF 84 <- OTP_ECC_DATAIN8 b.CONTROL1[ADDR_WR] = 1. Send : D0 03 09 01 0F 74 c.DIR0_ADDR = 0x00. Send : D0 03 06 00 CB 44 d.COMM_CTRL[STACK_DEV] = 1, COMM_CTRL[TOP_STACK] = 0.(Set with broadcast write) Send : D0 03 08 02 4E E5 e.COMM_CTRL[STACK_DEV] = 0, COMM_CTRL[TOP_STACK] = 1.(Set with single device write) Send : 90 00 03 08 01 D2 1D f.Dummy Read from ECC_DATA1 to ECC_DATA8 Send : C0 03 43 00 FD 14 <- OTP_ECC_DATAIN1 Recv : 00 00 00 00 00 00 00 -> No Response Send : C0 03 44 00 FF 24 <- OTP_ECC_DATAIN2 Recv : 00 00 00 00 00 00 00 -> No Response Send : C0 03 45 00 FE B4 <- OTP_ECC_DATAIN3 Recv : 00 00 00 00 00 00 00 -> No Response Send : C0 03 46 00 FE 44 <- OTP_ECC_DATAIN4 Recv : 00 00 00 00 00 00 00 -> No Response Send : C0 03 47 00 FF D4 <- OTP_ECC_DATAIN5 Recv : 00 00 00 00 00 00 00 -> No Response Send : C0 03 48 00 FA 24 <- OTP_ECC_DATAIN6 Recv : 00 00 00 00 00 00 00 -> No Response Send : C0 03 49 00 FB B4 <- OTP_ECC_DATAIN7 Recv : 00 00 00 00 00 00 00 -> No Response Send : C0 03 4A 00 FB 44 <- OTP_ECC_DATAIN8 Recv : 00 00 00 00 00 00 00 -> No Response Step9. Do Fault Reset a. FAULT_RST1 = 0xFF, FAULT_RST2 = 0x7F Send : 91 00 03 31 FF 7F 4D 01 Step10. Check to confirm the OTP programming was successful: b. OTP_CUST2_STAT[LOADED], [PROGOK], [TRY], [OVOK], and [UVOK] bits are 1. Other bits are 0. Send : 80 00 05 1B 00 3F 2F Recv : 00 F0 00 00 26 43 07 -> No Response - Read Updated OTP value Send : 80 00 00 00 37 64 08 Recv : 00 43 80 00 05 1B 00 3F 2F 43 67 F1 00 00 6C 43 -> No Response 01 00 07 00 7C 43 07 00 03 45 01 00 8A 43 94 2E 07 00 7C 43 07 00 00 00 01 FC 01 00 01 00 00 00 98 43 00 00 00 00 AC 43 05 00 9A 43