Before programming the OTP, host ensures: OTP_CUST1_STAT[TRY] = 0 and OTP_CUST2_STAT2[FMTERR] = 0. Send : 80 00 05 1A 00 3E BF Recv : 00 00 05 1A 00 3F 61 Read Shadow Registers to be program. 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 Program the OTP. Step1. Unlock the OTP programming: Write the following data to OTP_PROG_UNLOCK1A to OTP_PROG_UNLOCK1D and OTP_PROG_UNLOCK2A to OTP_PROG_UNLOCK2D registers. Send : 93 00 03 00 02 B7 78 BC 9B 6E 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: a. If to be program page1, set OTP_PROG_CTRL[PAGESEL][PROG_GO] = 0x01. Send : 90 00 03 0B 01 D2 ED 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 tSU(WAKE_SHUT) = 10msec. for the soft reset to complete. Step8. 1.Dummy Write to synchronize all daisy chain devices DLL ramp in write direction. Broadcast write OTP_ECC_DATAIN1 through OTP_ECC_DATAIN9 = 0x00(for example). Send : D0 03 43 00 F9 D4 Send : D0 03 44 00 FB E4 Send : D0 03 45 00 FA 74 Send : D0 03 46 00 FA 84 Send : D0 03 47 00 FB 14 Send : D0 03 48 00 FE E4 Send : D0 03 49 00 FF 74 Send : D0 03 4A 00 FF 84 2.Setting Up Auto-Addressing. a.CONTROL1[ADDR_WR] = 1. Send : D0 03 09 01 0F 74 b.DIR0_ADDR = 0x00. Send : D0 03 06 00 CB 44 c.COMM_CTRL[STACK_DEV] = 0, COMM_CTRL[TOP_STACK] = 1. Send : D0 03 08 02 4E E5 Send : 90 00 03 08 01 D2 1D Step8. 3.Dummy read to synchronize all daisy chain devices DLL ramp in read direction. Broadcast read to read OTP_ECC_DATAIN1 through OTP_ECC_DATAIN9. Send : C0 03 43 00 FD 14 Recv : 00 00 03 43 00 E5 30 Send : C0 03 44 00 FF 24 Recv : 00 00 03 44 00 E7 00 Send : C0 03 45 00 FE B4 Recv : 00 00 03 45 00 E6 90 Send : C0 03 46 00 FE 44 Recv : 00 00 03 46 00 E6 60 Send : C0 03 47 00 FF D4 Recv : 00 00 03 47 00 E7 F0 Send : C0 03 48 00 FA 24 Recv : 00 00 03 48 00 E2 00 Send : C0 03 49 00 FB B4 Recv : 00 00 03 49 00 E3 90 Send : C0 03 4A 00 FB 44 Recv : 00 00 03 4A 00 E3 60 Do Fault Reset Send : 91 00 03 31 FF 7F 4D 01 Step9. Check to confirm the OTP programming was successful: a. If page 1 is programmed, OTP_CUST1_STAT[LOADED], [PROGOK], [TRY], [OVOK], and [UVOK] bits are 1. Other bits are 0. Send : 80 00 05 1A 00 3E BF Recv : 00 00 05 1A 8F 7E C5 Read Shadow Registers after programed. 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. Send : 80 00 05 0C 01 F1 1F Recv : 01 00 05 0C C3 AA 11 8A