AN4536 Application Note Rev. 2.0 1/2014
Freescale Semiconductor
7
OTP Overview
WRITE_I2C:F9:03
// Set Bank 9 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F9:0B
// Set Bank 9 ANTIFUSE_EN
DELAY:100
// Allow 100 ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:F9:03
// Reset Bank 9 ANTIFUSE_EN
WRITE_I2C:F9:00
// Reset Bank 9 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
//---------------------------------------------------------------------------
// BANK 10
//---------------------------------------------------------------------------
WRITE_I2C:FA:03
// Set Bank 10 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:FA:0B
// Set Bank 10 ANTIFUSE_EN
DELAY:100
// Allow 100 ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:FA:03
// Reset Bank 10 ANTIFUSE_EN
WRITE_I2C:FA:00
// Reset Bank 10 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
//---------------------------------------------------------------------------
WRITE_I2C:D0:00
// Clear
WRITE_I2C:D1:00
// Clear
//---------------------------------------------------------------------------
VPGM:OFF
// Turn off 8.5 V Boost Supply
DELAY:500
// Adds delay to allow VPGM to bleed off
PWRON:LOW
// PWRON LOW to reload new OTP data
DELAY:500
PWRON:HIGH
After OTP programming is complete by following the above steps, read the registers 0xA0 to 0xE8 in Extended Page
1 and compare to the required register values as in the script. Additionally, read the ECC Interrupt bit, OTP_ECCI
in register 0x0E. If there is an error in the programmed values or if the OTP_ECCI bit is set to 1, reject the part as
the programming process resulted in errors.