This document provides a detailed description of the
One-Time Programmable (OTP) function of the MMPF0100. It
provides the system requirements and instructions to progr am
the fuses for a selected power-up configuration. All examples
assume the customer is using silicon revision P1.1 or higher.
Freescale analog ICs are manufactured using the
SMARTMOS process, a combinational BiCMOS
manufacturing flow that integrates precision analog, power
functions and dense CMOS logic together on a single
cost-effective die.
The regulators in the MMPF0100 have been designed with flexibility and configurability to allow them to be adapted
for a wide variety of applications. One-T ime-Programma ble (OTP) fuses in the MMPF0100 are used to exercise this
flexibility. Key startup parameters and regulator configuration information can be programmed into the MMPF0100
to enable it to power the system. These parameters are:
•Buck regulators: Output voltage, dual/single phase or independent mode configuration, switching
frequency, and soft start ramp rate
•Boost regulator and LDOs: Output voltage
MMPF0100 starts up based on the contents of the TBBOTP registers. The TBBOTP registers can be loaded from
different sources as shown in
non-programmed and programmed MMPF0100 devices. Once OTP programming is complete, TBBOTP can be
either loaded from the default values or from the OTP fuses.
The OTP block in the MMPF0100 also features a ‘Try-Before-Buy’ (TBB) mode which allows experimentation with
different voltag es an d se que nces of th e r egulator s. In t he TBB mo de, TBBOTP reg ister s are dire ctly wr itten to a nd
used for startup of the MMPF0100. Content s of the TBBOTP registers can be maint ained in the absence of the main
input supply, VIN, by using a coin cell at the LICELL pin.
Table 1. The default setting is hard-coded in the MMPF0100 and is available in all
2.1Power-up Configuration
The PF0100 powers up based on the contents of the TBBOTP registers. Depen ding on cert ain pin and bit settings,
the TBBOTP registers are loaded from different sources as shown in
Table 1. Power-up Configuration Source and Conditions
SourceConditionPower-Up Configuration
ROMVDDOTP = VCOREDIG
TBBOTP RegistersVDDOTP = 0 V and TBB_POR = 1
OTP Fuses
Notes:
1. Pull-up VDDOTP to VCOREDIG with a 100 k resistor.
2. In MMPF0100, FUSE_POR1, FUSE_POR2 and FUSE_POR3 are XOR’ed into the FUSE_POR_XOR bit. The FUSE_POR_XOR has to be
1 for fuses to be loaded. This can be achieved by setting any one or all of the FUSE_PORx bits. In MMPF0100A, the XOR function is
removed. It is required to set all of the FUSE_PORx bits to be able to load the fuses.
VDDOTP = 0 V and
TBB_POR = 0 and FUSE_POR_XOR = 1
(1)
(2)
The TBBOTP registers serve as temporary storage for any of the following:
1. The values to be written to the fuses, or
2. The values read from the fuses, or
3. The values to start from during TBB development, or
4. The values read from the default configuration.
Table 1.
MMPF0100 starts up using the factory default settings
MMPF0100 starts up from current values of TBBOTP
registers. This is referred to as the 'Try-Before-Buy'
mode
The MMPF0100 starts up from the OTP fuse values
The TBBOTP registers are located within the Extended Page 1 of the MMPF0100 register map.
2Freescale Semiconductor
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
During a power-up, the TBBOTP registers behave as follows:
•The contents of the TBBOTP registers are initialized to zero when a valid VIN is first applied.
•The values that are then loaded in to the TBBOTP registers depend o n the setting of the VDDOTP pi n, and
on the value of the TBB_POR, and the FUSE_POR_XOR bits. Refer to
Table 1.
•If VDDOTP = VCOREDIG (1.5 V), the TBBOTP values are loaded from ROM.
•If VDDOTP = 0 V , TBB_POR = 0 and FUSE_POR_XOR = 1; the TBBOTP values are loaded from the fuses.
•If VDDOTP = 0, TBB_POR = 0 and FUSE_POR_XOR=0; the TBBOTP registers remain initialized at zero.
•The initial value of TBB_POR is always “0”, only when VDDOTP = 0 V and TBB_POR is set to “1”, are the
values from the TBBOTP registers maintained and not loaded from a different source.
The contents of the TBBOTP registers may be modified by I2C. To communicate with I2C, VIN must be valid and
VDDIO, to which SDA and SCL are pulled up, must be powered by a 1.7
V to 3.6 V supply. VIN or the coin cell
voltage must be valid to maintain the contents of the TBBOTP registers. To power on with the contents of the
TBBOTP registers, a valid turn-on event must oc cu r wi th the following conditions: a valid VIN, optional LICELL,
VDDOTP
= 0 V, TBB_POR = 1.
2.2OTP Programming Example
The One-Time-Programmable memory is realized using fuses. The startup configuration can be programmed into
the MMPF0100 by changing the state of these fuses as required during the OTP programming process.
There are 10 banks of fuses with each bank consisting of 26 fuses. Of the 26 fuses in a bank, 20 are programmable
by the user. Th e remaining 6 are redundant fuses that allow impl ementation of Error Correction. An Err or Correction
Code within the MMPF0100 corrects single bit errors if they occur in the bank.
The following is an example of programming the MMPF0100 and MMPF0100A. MMPF0100A refers to the newer
silicon version of MMPF0100. Refer to the product Data Sheet for complete details.
Note that the programming voltage and time-delay during fuse programming is different between the two silicon
revisions. The programming voltage should have a tolerance of +/-3% and OTP programming should be done at
room temperature. For reliability reasons, do not OTP program a given part more than once.
Note: All code examples in this document represent a script using the KITPFPGMEVME and the associated GUI.
Command syntax may vary if the user utilizes a different tool for communication.
//--------------------------------------------------------------------------// F0 - Sample Configuration
// Set VDDOTP = 0 V, PWRON = HIGH, LICELL = 3.0 V (Optional), VIN = VDDIO = 3.3 V
//---------------------------------------------------------------------------
WRITE_I2C:F1:00 // Reset Bank 1 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F2:00 // Reset Bank 2 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F3:00 // Reset Bank 3 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F4:00 // Reset Bank 4 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F5:00 // Reset Bank 5 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F6:00 // Reset Bank 6 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F7:00 // Reset Bank 7 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F8:00 // Reset Bank 8 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F9:00 // Reset Bank 9 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:FA:00 // Reset Bank 10 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F1:03 // Set Bank 1 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F1:0B // Set Bank 1 ANTIFUSE_EN
DELAY:100 // Allow 100 ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:F1:03 // Reset Bank 1 ANTIFUSE_EN
WRITE_I2C:F1:00 // Reset Bank 1 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
// BANK 2
//---------------------------------------------------------------------------
WRITE_I2C:F2:03 // Set Bank 2 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F2:0B // Set Bank 2 ANTIFUSE_EN
DELAY:100 // Allow 100 ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:F2:03 // Reset Bank 2 ANTIFUSE_EN
WRITE_I2C:F2:00 // Reset Bank 2 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
//--------------------------------------------------------------------------// BANK 3
//---------------------------------------------------------------------------
WRITE_I2C:F3:03 // Set Bank 3 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F3:0B // Set Bank 3 ANTIFUSE_EN
DELAY:100 // Allow 100ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:F3:03 // Reset Bank 3 ANTIFUSE_EN
WRITE_I2C:F3:00 // Reset Bank 3 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
OTP Overview
Freescale Semiconductor5
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
//--------------------------------------------------------------------------// BANK 4
//---------------------------------------------------------------------------
WRITE_I2C:F4:03 // Set Bank 4 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F4:0B // Set Bank 4 ANTIFUSE_EN
DELAY:100 // Allow 100ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:F4:03 // Reset Bank 4 ANTIFUSE_EN
WRITE_I2C:F4:00 // Reset Bank 4 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
//--------------------------------------------------------------------------// BANK 5
//---------------------------------------------------------------------------
WRITE_I2C:F5:03 // Set Bank 5 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F5:0B // Set Bank 5 ANTIFUSE_EN
DELAY:100 // Allow 100 ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:F5:03 // Reset Bank 5 ANTIFUSE_EN
WRITE_I2C:F5:00 // Reset Bank 5 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
//--------------------------------------------------------------------------// BANK 6
//---------------------------------------------------------------------------
WRITE_I2C:F6:03 // Set Bank 6 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F6:0B // Set Bank 6 ANTIFUSE_EN
DELAY:100 // Allow 100ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:F6:03 // Reset Bank 6 ANTIFUSE_EN
WRITE_I2C:F6:00 // Reset Bank 6 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
//--------------------------------------------------------------------------// BANK 7
//---------------------------------------------------------------------------
WRITE_I2C:F7:03 // Set Bank 7 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F7:0B // Set Bank 7 ANTIFUSE_EN
DELAY:100 // Allow 100 ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:F7:03 // Reset Bank 7 ANTIFUSE_EN
WRITE_I2C:F7:00 // Reset Bank 7 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
//--------------------------------------------------------------------------// BANK 8
//---------------------------------------------------------------------------
WRITE_I2C:F8:03 // Set Bank 8 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
WRITE_I2C:F8:0B // Set Bank 8 ANTIFUSE_EN
DELAY:100 // Allow 100 ms for PF0100A. Use 50 ms for PF0100.
WRITE_I2C:F8:03 // Reset Bank 8 ANTIFUSE_EN
WRITE_I2C:F8:00 // Reset Bank 8 ANTIFUSE_RW and ANTIFUSE_BYPASS bits
//--------------------------------------------------------------------------// BANK 9
//---------------------------------------------------------------------------
6Freescale Semiconductor
AN4536 Application Note Rev. 2.0 1/2014
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
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
OTP Overview
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.
Freescale Semiconductor7
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
2.3Try-Before-Buy Mode Example
As shown in Table 1, it is possible to start the MMPF0100 directly from the TBBOTP registers without actually
programming the part. Shown below is an example of the Try-Before-Buy mode.
Note: All code examples in this document represent a script using the KITPFPGMEVME and the associated GUI.
Command syntax may vary if the user utilizes a different tool for communication.
///--------------------------------------------------------------------------// F0 – Sample Try-Before-Buy Configuration
// Set VDDOTP = 0 V, PWRON = HIGH, LICELL = 3.0 V (Optional), VIN = VDDIO = 3.3 V
//---------------------------------------------------------------------------
//--------------------------------------------------------------------------// BANK 9
//---------------------------------------------------------------------------
PWRON:LOW // PWRON LOW
DELAY:500
PWRON:HIGH // PWRON HIGH to Start PMIC from desired TBB Configuration
Optionally, PWRON on can be kept HIGH and VIN can be toggled when a valid LICELL is present.
OTP Overview
Freescale Semiconductor9
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
2.4OTP Registers Description
There are ten banks with a total of 260 fuses, where each bank contains 26 fuses. Each fuse represents one bit of
the TBBOTP register map.
map.
Table 2. Bank 1
FusesRegister NameRegister bitsDescription
5:0OTP SW1AB VOLT SW1AB_VOLT[5:0]SW1AB power-up voltage
6– –RSVD
11:7OTP SW1AB SEQ SW1AB_SEQ[4:0]SW1AB power-up sequence
13:12OTP SW1AB CONFIG SW1AB_FREQ[1:0]SW1AB power-up frequency
15:14OTP SW1AB CONFIG SW1AB_CONFIG[1:0]SW1A/B/C power-up configuration
18:16OTP I2C ADDRI2C_SLV_ADDR[3:0]3 LSBs of the slave address
19OTP EN ECC0EN_ECC_BANK1Enable ECC for OTP fuse bank 1
25:20––ECC check bits for fuse bank 1
Table 3. Bank 2
FusesRegister NameRegister bitsDescription
Table 2 to Table 11 show the banks, their fuses and the corresponding bit s in the register
5:0OTP SW1C VOLT SW1C_VOLT[5:0]SW1C power-up voltage
6– –RSVD
11:7OTP SW1C SEQ SW1C_SEQ[4:0]SW1C power-up sequence
13:12OTP SW1C CONFIG SW1C_FREQ[1:0]SW1C power-up frequency
15:14OTP SWBST VOLT SWBST[1:0]SWBST power-up voltage
18:16––RSVD
19OTP EN ECC0EN_ECC_BANK2Enable ECC for OTP fuse bank 2
25:20––ECC check bits for fuse bank 2
Table 4. Bank 3
FusesRegister NameRegister bitsDescription
6:0OTP SW2 VOLT SW2_VOLT6:0]SW2 power-up voltage
11:7OTP SW2 SEQ SW2_SEQ[4:0]SW2 power-up sequence
13:12OTP SW2 CONFIG SW2_FREQ[1:0]SW2 power-up frequency
18:14OTP SWBST SEQSWBST_SEQ[4:0]SWBST power-up sequence
19OTP EN ECC0EN_ECC_BANK3Enable ECC for OTP fuse bank 3
25:20––ECC check bits for fuse bank 3
10Freescale Semiconductor
AN4536 Application Note Rev. 2.0 1/2014
Table 5. Bank 4
FusesRegister NameRegister bitsDescription
6:0OTP SW3A VOLTSW3A_VOLT[6:0]SW3A power-up voltage
11:7OTP SW3A SEQSW3A_SEQ[4:0]SW3A power-up sequence
13:12OTP SW3A CONFIGSW3A_FREQ[1:0]SW3A power-up frequency
15:14OTP SW3A CONFIGSW3_CONFIGSW3A/B power-up configuration
18:16––RSVD
19OTP EN ECC0EN_ECC_BANK4Enable ECC for OTP fuse bank 4
25:20––ECC check bits for fuse bank 4
Table 6. Bank 5
FusesRegister NameRegister bitsDescription
6:0OTP SW3B VOLTSW3B_VOLT[6:0]SW3B power-up voltage
11:7OTP SW3B SEQSW3B_SEQ[4:0]SW3B power-up sequence
13:12OTP SW3B CONFIGSW3B_FREQ[1:0]SW3B power-up frequency
18:14OTP VREFDDR SEQVREFDDR_SEQ[4:0]VREFDDR power-up sequence
19OTP EN ECC0EN_ECC_BANK5Enable ECC for OTP fuse bank 5
25:20––ECC check bits for fuse bank 5
OTP Overview
Table 7. Bank 6
FusesRegister NameRegister bitsDescription
6:0OTP SW 4 VOLTSW4_VOLT[6:0]SW4 power-up voltage
11:7OTP SW 4 SEQSW4_SEQ[4:0]SW4 power-up sequence
13:12OTP SW 4 CONFIGSW4_FREQ[1:0]SW4 power-up frequency
14OTP SW 4 CONFIGVTTSW4 tracking mode select
17:15OTP VSNVS VOLTVSNVS_VOLT[2:0]VSNVS power-up voltage
18––RSVD
19OTP EN ECC1EN_ECC_BANK6Enable ECC for OTP fuse bank 6
25:20––ECC check bits for fuse bank 6
Table 8. Bank 7
FusesRegister NameRegister bitsDescription
3:0OTP VGEN1 VOLTVGEN1_VOLT[3:0]VGEN1 power-up voltage
8:4OTP VGEN1 SEQVGEN1_SEQ[4:0]VGEN1 power-up sequence
12:9OTP VGEN2 VOLTVGEN2_VOLT[3:0]VGEN2 power-up voltage
17:13OTP VGEN2 SEQVGEN2_SEQ[4:0]VGEN2 power-up sequence
18––RSVD
19OTP EN ECC1EN_ECC_BANK 7Enable ECC for OTP fuse bank 7
25:20––ECC check bits for fuse bank 7
Freescale Semiconductor11
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
Table 9. Bank 8
FusesRegister NameRegister bitsDescription
3:0OTP VGEN3 VOLTVGEN3_VOLT[3:0]VGEN3 power-up voltage
8:4OTP VGEN3 SEQVGEN3_SEQ[4:0]VGEN3 power-up sequence
12:9OTP VGEN4 VOLTVGEN4_VOLT[3:0]VGEN4 power-up voltage
17:13OTP VGEN4 SEQVGEN4_SEQ[4:0]VGEN4 power-up sequence
18––RSVD
19OTP EN ECC1EN_ECC_BANK 8Enable ECC for OTP fuse bank 8
25:20––ECC check bits for fuse bank 8
Table 10. Bank 9
FusesRegister NameRegister bitsDescription
3:0OTP VGEN5 VOLTVGEN5_VOLT[3:0]VGEN5 power-up voltage
8:4OTP VGEN5 SEQVGEN5_SEQ[4:0]VGEN5 power-up sequence
12:9OTP VGEN6 VOLTVGEN6_VOLT[3:0]VGEN6 power-up voltage
17:13OTP VGEN6 SEQVGEN6_SEQ[4:0]VGEN6 power-up sequence
18OTP PWRGD_ENPWRGD_ENEnable different functionality for
RESETBMCU
19OTP EN ECC1EN_ECC_BANK9Enable ECC for OTP fuse bank 9
25:20––ECC check bits for fuse bank 9
12Freescale Semiconductor
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
Table 11 . Bank 10
FusesRegister NameRegister bitsDescription
1:0OTP PU CONFIG1SEQ_CLK_SPEED1[1:0]Power-up sequence delay, bits are XORed
3:2OTP PU CONFIG1SWDVS_CLK1[1:0]Power-up slew rate for all switchin g
regulators, bits are XORed
4OTP PU CONFIG1PWRON_CFG1Power button configuration, bits is XORed
5OTP FUSE POR1FUSE_POR1Loads fuse values to TBBOTP registers, bit
is XORed
7:6OTP PU CONFIG2SEQ_CLK_SPEED2[1:0]Power-up sequence delay, bits are XORed
9:8OTP PU CONFIG2SWDVS_CLK2[1:0]Power-up slew rate for all switchin g
regulators, bits are XORed
10OTP PU CONFIG2PWRON_CFG2Power button configuration, bits is XORed
11OTP FUSE POR2FUSE_POR2Loads fuse values to TBBOTP registers, bit
is XORed
13:12OTP PU CONFIG3SEQ_CLK_SPEED3[1:0]Power-up sequence delay, bits are XORed
15:14OTP PU CONFIG3SWDVS_CLK3[1:0]Power-up slew rate for all switching
regulators, bits are XORed
16OTP PU CONFIG3PWRON_CFG3Power button configuration, bits is XORed
17OTP FUSE POR3FUSE_POR3Loads fuse values to TBBOTP registers, bit
is XORed
18OTP DONEOTP_DONEPrevents any further programming to fuses
and further writes to TBBOTP registers
19OTP EN ECC1EN ECC BANK10Enable ECC for OTP fuse bank 10
25:20––ECC check bits for fuse bank 10
The TBBOTP registers store data for pro gramming the fuses. These regi sters are written to and read from using the
2
I
C interface.
Once the TBBOTP registers are loaded with the correct values, the fuses can then be programmed. Before
discussing the programming process, some salient features of the OTP function are described.
Freescale Semiconductor13
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
2.4.1TBBOTP Registers Description
The TBBOTP registers for configuring the switching regulators are listed in Table 12 and Table 13 to Table 18
provide a general description of the TBBOTP registers for all the switching regulators.
OTP SW1AB VOLT0xA0SW1AB OTP Output voltage set point
OTP SW1AB SEQ0xA1SW1AB OTP power-up sequence selection
OTP SW1AB CONFIG0xA2SW1AB OTP operation mode and frequency selection
OTP SW1C VOLT0xA8SW1C OTP Output voltage set point
OTP SW1C SEQ0xA9SW1C OTP power-up sequence selection
OTP SW1C CONFIG0xAASW1C OTP frequency selection
OTP SW2 VOLT0xACSW2 OTP Output voltage set point
OTP SW2 SEQ0xADSW2 OTP power-up sequence selection
OTP SW2 CONFIG0xAESW2 OTP frequency selection
OTP SW3AVOLT0xB0SW3A OTP Output voltage set point
OTP SW3A SEQ0xB1SW3A OTP power-up sequence selection
OTP SW3A CONFIG0xB2SW3A OTP operation mode and frequency selection
OTP SW3B VOLT0xB4SW3B OTP Output voltage set point
OTP SW3B SEQ0xB5SW3B OTP power-up sequence selection
OTP SW3B CONFIG0xB6SW3B OTP frequency selection
OTP SW4 VOLT0xB8SW4 OTP output voltage set point
OTP SW4 SEQ0xB9SW4 OTP power-up sequence selection
OTP SW4 CONFIG0xBASW4 OTP frequency and VTT mode selection
OTP SWBST VOLT0xBCSWBST OTP output voltage set point
OTP SWBST SEQ0xBDSWBST OTP power-up sequence selection
Table 13. OTP SW1x VOLT Register Description (SW1A/B and SW1C)
NameBit #Description
SW1x_VOLT5:0Sets the SW1x output voltage to be programmed on the OTP
fuses and loaded during power-up. Refer to SW1A/B/C output
voltage configuration table on Data Sheet for all possible
configurations.
UNUSED7:6UNUSED
Table 14. OTP SWx VOLT Register Description (SW2 - SW4)
NameBit #Description
SWx_VOLT6:0Sets the SWx output voltage to be programmed on the OTP
fuses and loaded during power-up. Refer to the respective
SWx output voltage configuration table on datasheet for all
possible configurations.
UNUSED7UNUSED
Table 15. OTP SWx SEQ Register Description
NameBit #Description
SWx_SEQ4:0Assign the power-up sequence slot 0-31 for SWx
UNUSED7:5UNUSED
SWBST_SEQ4:0Assign the power-up sequence slot 0-31 for SWBST
UNUSED7:5UNUSED
Freescale Semiconductor15
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
Table 19 shows a summary of all the registers related to the linear regulators, and Table 20 to Table 22 provide a
general bit description of the linear regulator OTP registers.
Table 19. OTP Linear Regulators Register Summary
Register AddressOutput
OTP VSNVS VOLT0xC0VSNVS OTP Output voltage set point
OTP VREFDDR SEQ0xC4VREFDDR OTP power-up sequence selection
OTP VGEN1 VOLT0xC8VGEN1 OTP Output voltage set point
OTP VGEN1 SEQ0xC9VGEN1 OTP power-up sequence selection
OTP VGEN2 VOLT0xCCVGEN2 OTP Output voltage set point
OTP VGEN2 SEQ0xCDVGEN2 OTP power-up sequence selection
OTP VGEN3 VOLT0xD0VGEN3 OTP Output voltage set point
OTP VGEN3 SEQ0xD1VGEN3 OTP power-up sequence selection
OTP VGEN4 VOLT0xD4VGEN4 OTP Output voltage set point
OTP VGEN4 SEQ0xD5VGEN4 OTP power-up sequence selection
OTP VGEN5 VOLT0xD8VGEN5 OTP output voltage set point
OTP VGEN5 SEQ0xD9VGEN5 OTP power-up sequence selection
OTP VGEN6 VOLT0xDCVGEN6 OTP output voltage set point
OTP VGEN6 SEQ0xDDVGEN6 OTP power-up sequence selection
Table 20. OTP VSNVS VOLT Register Description
NameBit #Description
VSNVS_VOLT2:0Sets the VSNVS output voltage to be programmed on the
OTP fuses and loaded during power-up
000 = 1.0 V
001 = 1.1 V
010 = 1.2 V
011 = 1.3 V
100 = 1.5 V
101 = 1.8 V
110 = 3.0 V
111 = RSVD
UNUSED7:3UNUSED
Table 21. OTP VGENx VOLT Register Description
NameBit #Description
VGENx_VOLT3 :0Sets the VGENx output voltage to be programmed on the
OTP fuses and loaded during power-up. Refer to the VGENx
output voltage configuration table on Data Sheet for all
possible configurations.
UNUSED7:4UNUSED
Table 22. OTP xxxx SEQ Register Description
NameBit #Description
xxxx_SEQ4:0Assign the power-up sequence slot 0-31 for the specific linear
UNUSED7:5UNUSED
16Freescale Semiconductor
regulator or VREFDDR voltage
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
2.4.2OTP Redundant Bits
Some functions are assigned redundant bits, wh ich are XORed, to allow that function to be changed multip le times.
These are the functions that have redundant OTP fuse bits:
•Sequence Clock Frequency (Sequence delay)
•DVS Clock Frequency (Initial slew rate)
•Power button function
•Fuse POR
Table 23 shows the I2C registers in the Extended Page 1 dedicated to redundant bits for the four functions
mentioned. The XORed bits are read-only.
Table 23. OTP Redundant Bits Registers
Extended Pg 1I2C Data Bits
Addr Reg Name76543210
E0OTP PU
CONFIG1
E1OTP PU
CONFIG2
E2OTP PU
CONFIG3
E3OTP PU
CONFIG XOR
E4OTP FUSE
POR1
E5OTP FUSE
POR1
E6OTP FUSE
POR1
–––PWRON
CFG1
000xxxxx
–––PWRON
CFg2
000xxxxx
–––PWRON
CFG3
000xxxxx
–––PWRON
CFG_XOR
000xxxxx
TBB_POR SOFT_FUSE
POR
000000x0
RSVDRSVD––––FUSE
000000x0
RSVDRSVD––––FUSE
––––FUSE
SWDVS_CLK1[1:0]SEQ_CLK
SPEED1[1:0]
SWDVS_CLK2[1:0]SEQ_CLK
SPEED2[1:0]
SWDVS_CLK3[1:0]SEQ_CLK
SPEED3[1:0]
SWDVS_CLK3_XORSEQ_CLK_SPEED
POR1
POR2
POR3
XOR
–
–
–
000000x0
E7OTP FUSE
POR XOR
Freescale Semiconductor17
RSVDRSVD––––FUSE
000000x0
–
POR_XOR
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
Table 24. OTP PU CONFIGx Bits Definition
BitNameDescription
1:0SEQ_CLK_SPEEDx[1:0]Sequence delay between steps, bits are XORed
4PWRON_CFGxSet the power on button initial configuration
0 = Power button is level sensitive
1 = Power button is edge sensitive and turn-off is based on time held low
7:5RSVDReserved
Table 25. OTP_PU_CONFIG XOR Bits Definition
BitNameDescription
1:0SEQ_CLK_SPEED_XORFinal result of the XOR function of the SEQ_CLK_SPEEDx[1:0] bits
3: 2SWDVS_CLK_XORFinal result of the XOR function of the SWDVS_CLKx[1:0] bits
4PWRON_CFG_XORFinal result of the XOR function of the SEQ_PWRON_CFGx bits
7:5RSVDReserved
Table 26. OTP_FUSE_PORx Bits Definition
BitNameDescription
0RSVDReserved
1FUSE_PORx
(5)
5:2RSVDReserved
6SOFT_FUSE_POR
7:5TBB_POR
5. In MMPF0100 FUSE_POR1, FUSE_POR2 and FUSE_POR3 are XOR’ed into the FUSE_POR_XOR bit. The
FUSE_POR_XOR has to be 1 for fuses to be loaded. This can be achieved by setting any one or all of the FUSE_PORx
bits. In MMPF0100A, the XOR function is removed. It is required to set all of the FUSE_PORx bits to be able to load the
fuses.
6. Reserved on Addresses E5 and E6
(6)
(6)
Load fuse values to TBB_OTP registers
0 = No Fuse value loaded
1 = Programmed fuse values loaded to TBB_OTP registers
Software version of the FUSE_PORx bit
Prototyping enable bit
0 = Prototyping disabled
1 = Prototyping enabled
18Freescale Semiconductor
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
Table 27. OTP FUSE POR XOR Bits Definition
BitNameDescription
0RSVDReserved
1FUSE_POR_XORFinal result of the XOR function of the FUSE_PORx bits
7:2RSVDReserved
For example, if FUSE_POR1 is programmed to “1”, then fuse values are loaded as FUSE_POR_XOR is “1”. If
FUSE_POR2 is then programmed, FUSE_POR_XOR becomes “0” and fuses values cannot be loaded.
SOFT_FUSE_POR is a software version of the FUSE_PORx bits, i.e. it is XORed with the FUSE_PORx bits to
determine whether fuses can be loaded.
See Table 28 for the XOR truth table for the previous functions listed.
Table 28. Redundant Bit XOR Function Truth Table
Bit1Bit2Bit3XOR bit
0000
1001
1100
1111
Note: The desired function of the redundant bits must be determined when ECC is configured and its bits
programmed, or the ECC logic attempts to correct the newly pr ogrammed redundant bits . ECC is discussed in
Error
Correction Code (ECC).
2.4.3OTP Register Reloading without Turn-on Event
After the fuses are programmed, their values may be loaded into the digital control logic without toggling VIN or
PWRON. To update the TBBOTP registers by reloading the fuse values automatically, set bits in the
OTP
LOAD MASK register depending on the functionality required. Refer to Table 30 for a description of the
OTP LOAD MASK register.
Table 29. OTP Load Mask Register
Extended Page 1I
AddrRe g Name76543210
84OTP LOAD MASKSTART RL PWRTNFORCE
PWRCTL
00 0 0 0 0 00
2
C Data Bits
RL
PWRCTL
RL OTPRL OTP
ECC
RL OTP
FUSE
RSVD
Freescale Semiconductor19
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
Table 30. OTP Reload Mask Register Bit Description
BitNameDescription
0RSVDReserved
1RL_OTP_FUSEReload the OTP fuse latch from the analog fuse bit
0 = Disable loading
1 = Enable loading
2RL_OTP_ECCReload the OTP ECC registers. Set this bit irrespective of whether ECC is
0 = Disable loading
1 = Enable loading of fuses if ECC is disabled. Enable loading of ECC corrected
fuses if ECC is enabled.
4RL_PWRCTLReload the power control registers from the TBBOTP registers
0 = Disable loading
1 = Enable loading
5FORCE_PWRCTLForces the power control registers to be reloaded if they are being used to control
the regulators
0 = No reload forced
1 = Power control register value affects regulators when the reload sequence is
enabled and RL PWRCTL bit is enabled.This is needed when changing output
voltage of switching regulators from low-voltage range to high-voltage range
6RL_PWRTNReloads the register that controls how the PWRON button works
0 = PWRON configuration setting does not change until a shutdown and restart
event
1 = PWRON behavior switch to new OTP PWRON button configuration when
START bit is enabled
7STARTReload sequence start bit
0 = Reload sequence disabled
1 = Starts the reload sequence, when the sequence is done all of the
OTP_LOAD_MASK bits are reset
Often only bits 1, 2, and 3 need to be set, as well as the START bit, to reload the TBBOTP registers after the fuses
are programmed. The TBBOTP register values could then be checked to make sure the correct values have been
loaded from the fuses. Setting bits 4 and 5, updates the re gulator parameters immediately. This should be done with
caution if PWRON is already asserted. A PWRON event triggers a complete reload using the same logic. When a
'1' is written to Bit 7 of the OTP_LOAD_MASK registers, th e MMPF01 00 is turne d o ff momentarily and then turned
back on to reload the fuses. If it is desired to reload the fuses without first turning off the MMPF0100, clear Bit 0 of
the PWRCTRL_OTP_CTRL register prior to writing to the OTP_LOAD_MASK register. Note that the
OTP_LOAD_MASK is register 0x84 in Extended Page 1 whereas the PWRCTRL_OTP_CTRL is register 0x88 in
Extended Page 2.
AN4536 Application Note Rev. 2.0 1/2014
20Freescale Semiconductor
OTP Overview
2.4.4Direct OTP Fuse Read
The OTP_FUSE_READ_EN bit allows the reading of the uncorrected fuse values when it is set HIGH. If ECC is not
enabled, or there is no programming error, the values loaded into the TBBOTP registers are identical to the fuse
values. If ECC is enabled and a single-bit error occurs during programming, the fuse values may be different from
the values loaded into the TBBOTP registers. The values loaded into the TBBOTP regi sters are the error-corr ected
values.
Table 31 shows the OTP FUSE READ EN register.
Table 31. OTP Fuse Read Enable Register
FSL Extended Page 1I
2
C Data Bits
Addr Register Name 76543210
80OTP FUSE READ EN–––––––OTP_FUSE_READ_EN
00000000
2.5Fuse Programming and Error Correction Code (ECC)
2.5.1OTP Fuse Control Register
An example script for OTP programing is shown in section OTP Programming Example. The OTP_FUSE_CTLx
registers, located in the Extended Page 2, must be written to in order to program fuses. There are ten such registers,
one for each bank, Refer to
Table 32 and Table 33 for a description of the registers.
I2C Data Bits
BitNameDescription
0BYPASSxMultiplexor that selects between the value stored in the digital fuse latch
1ANTIFUSEx_RWAllows programming the fuse bank when VDDOTP is 8.25 V
2ANTIFUSEx_LOADClock input to the digital latch that stores the state of the analog fuse cell,
3ANTIFUSEx_ENTurns on the bias to the analog fuse cell so that it can be written to or read
4-7Not usedNot used
Freescale Semiconductor21
and the value on the TBBOTP register
0 = Select from digital latch
1 = Select from TBBOTP register
0 = Disable program fuse
1 = Enable program fuse
it is active high and is pulsed while the ANTIFUSE_EN bit is high to load
the value of the analog fuse stat e in to the digital latch.
from
0 = Analog bias disabled
1 = Analog bias enabled
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
2.5.2Error Correction Code (ECC)
Error correction is off by default, but it is recommended for all OTP programming operations. When enabled, it
reports and corrects a sin gle bit error per fuse ba nk, but only reports a double bit error per fuse bank. Fuses may be
programmed without using ECC. However, after verifying that the part is configured properly, ECC may enabled,
and the error check bits can be programmed.
It should be noted that double bit errors can prevent regulators from powering up, or can result in a configuration
that does not match the external components. Although such occurrence is rare, it is still a good practice to employ
ECC to at least alert the user of such an occurrence.
Note: The desired function of the redundant bits must be determined when ECC is configured and its bits
programmed, or the ECC logic attempts to correct the newly programmed redundant bits.
Sections 2.5.2.1 through 2.5.2.3 are for advanced users. For a simple script that enables ECC, pr oceed to section
OTP Programming Example.
2.5.2.1ECC Interrupt
With ECC enabled, if a single fuse in a bank has the wrong value, the ECC logic corrects that bit and the corrected
value is loaded into the TBBOTP register for that bank. The single error bit for that bank is set and also the main
interrupt ECC bit is set. If two or more bits are in error, in a bank, the ECC is not able to correct them. The double
error bit error for that bank is set and the ECC interrupt bit is set. The single error and doub le error bit s may be read
from registers 0x8A to 0x8D in the Extended Page1 of the register map. The ECC interrupt bit may be read from
register, 0xE, on the functional page of the register map.
0 = No single error detected
1 = Single error detected
1ECC2_SE0Single error detection in fuse bank 2
0 = No single error detected
1 = Single error detected
2ECC3_SE0Single error detection in fuse bank 3
0 = No single error detected
1 = Single error detected
3ECC4_SE0Single error detection in fuse bank 4
0 = No single error detected
1 = Single error detected
4ECC5_SE0Single error detection in fuse bank 5
0 = No single error detected
1 = Single error detected
7:5RSVD0Reserved
OTP Overview
OTP ECC SE2
0ECC6_SE0Single error detection in fuse bank 6
0 = No single error detected
1 = Single error detected
1ECC7_SE0Single error detection in fuse bank 7
0 = No single error detected
1 = Single error detected
2ECC8_SE0Single error detection in fuse bank 8
0 = No single error detected
1 = Single error detected
3ECC9_SE0Single error detection in fuse bank 9
0 = No single error detected
1 = Single error detected
4ECC10_SE0Single error detection in fuse bank 10
0 = No single error detected
1 = Single error detected
7:5RSVD0Reserved
Freescale Semiconductor23
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
Table 36. OTP ECC DE1 and 2 Register Description
0ECC1_DE0Dual error detection in fuse bank 1
1ECC2_DE0Dual error detection in fuse bank 2
2ECC3_DE0Dual error detection in fuse bank 3
3ECC4_DE0Dual error detection in fuse bank 4
4ECC5_DE0Dual error detection in fuse bank 5
7:5RSVD0Reserved
BitNameDefaultDescription
OTP ECC DE1
0 = No single error detected
1 = Single error detected
0 = No single error detected
1 = Single error detected
0 = No single error detected
1 = Single error detected
0 = No single error detected
1 = Single error detected
0 = No single error detected
1 = Single error detected
OTP ECC DE2
0ECC6_DE0Dual error detection in fuse bank 6
0 = No single error detected
1 = Single error detected
1ECC7_DE0Dual error detection in fuse bank 7
0 = No single error detected
1 = Single error detected
2ECC8_DE0Dual error detection in fuse bank 8
0 = No single error detected
1 = Single error detected
3ECC9_DE0Dual error detection in fuse bank 9
0 = No single error detected
1 = Single error detected
4ECC10_DE0Dual error detection in fuse bank 10
0 = No single error detected
1 = Single error detected
7:5RSVD0Reserved
All interrupts are masked by default, ther efore the ECC interrup t should be un masked after fuses are progra mmed,
with ECC enabled, to determine if single or double bit errors exist in any of the banks. The location of the error bits
may be read from the registers described in
Table 34.
24Freescale Semiconductor
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
2.5.2.2Analyzing a Single Bit ECC Error
Although not necessary, when a single bit error occurs, the ECC check bits may be read to find out what fuse in a
given bank is in error. The check bits for each bank may be read from bits[5:0], in registers 0xE1 to 0xEA, in the
Extended Page 2. See
0xE3 yields a hexadecimal code of 0x15. Refer to Table 40 and Table 41 which describe the error control registers.
Table 37. For example, if there is an error in bit[5] of fuse bank 3, reading bits[5:0] of register
To program fuses with ECC, bits in the following registers must be enabled:
•OTP EN ECC0 and OTP EN ECC1 in the Extended Page 1
•OTP AUTO ECC0 and OTP AUTO ECC1 in the Extended Page 2.
The ECC enable registers are shown in Table 38. Enable error correction for any bank by setting the appropriate
bit. Bits in the OTP EN ECCx registers are programmed and not just set in software.
The OTP AUTO ECC registers are shown in Table 39. After the fuses are programmed, their values may be loaded
to the TBBOTP registers. The values loaded are the error-corrected valu es if there was a single bit error in any bank.
To view the uncorrected or raw fuse values see the
error when programming fuses, the following options are available:
•Checking the fuse values against what was written.
•Monitor the INTB signal, but first the ECC interrupt must be unmasked.
•Read bits[5:0] from the OTP ECC CTRLx registers in the Extended Page 2. See Table 37 to decipher single
bit error codes and Table 41 for a description of the ECC registers.
Table 38. ECC Enable Registers
Direct OTP Fuse Read section. To determine if there was an
Extended Pg 1I
2
C Data Bits
Addr Name765 43 2 1 0
F0OTP EN ECC0–––EN_ECC
_BANK5
––– 000 0 0
F1OTP EN ECC1–––EN_ECC
_BANK10
––– 000 0 0
EN_ECC
_BANK4
EN_ECC
_BANK9
EN_ECC
_BANK3
EN_ECC
_BANK8
EN_ECC
_BANK2
EN_ECC
_BANK7
EN_ECC
_BANK1
EN_ECC
_BANK6
Table 39. Automatic ECC Mode Enable Registers
Extended Pg 2I
2
C Data Bits
Addr Name76543210
D0OTP AUTO ECC0
D1OTP AUTO ECC1
–––
–––00000
–––
–––00000
AUTO_ECC
_BANK5
AUTO_ECC
_BANK10
AUTO_ECC
_BANK4
AUTO_ECC
_BANK9
AUTO_ECC
_BANK3
AUTO_ECC
_BANK8
AUTO_ECC
_BANK2
AUTO_ECC
_BANK7
AUTO_ECC
_BANK1
AUTO_ECC
_BANK6
26Freescale Semiconductor
AN4536 Application Note Rev. 2.0 1/2014
OTP Overview
Table 40. ECC Control Registers in the Extended Page 2
3.0 V Lithium-Ion Coin Cell
Allows “Try-Before-Buy”
For Development
R
2
R
1
4.7 K
4.7 K
C
5
C
PGM
= 2 x 10 uF + 1 x 0.1 uF,
20 V, ceramic
C
5
= 0.1 uF, 20 V, ceramic
V3.3
GND
NC
NC
PWRON
R
3
100 K
1
2
3
4
5
6
7
8
R
4
10 K
VSNVS
VSNVS
3Hardware Considerations
The minimum system requirements to allow programming of the OTP fuses are:
1. An I2C communication bridge to communicate with the PF0100
2. A 1.7 V to 3.6 V power supply at VDDIO (power to I2C block and pull-up resistors for the SCL and SDA
lines). Using the KITPFPGMEVME requires a minimum of 3.0 V at VDDIO
3. An 9.5 V/9.25 V, 100 mA power supply at VDDOTP bypassed by 2 x 10 μF capacitors. The voltage
depends on the silicon revision used. See section
4. An input voltage of 3.3 V at the VIN pin
Figure 1 shows the minimum requirements for programming the MMPF0100. Fo r progra mming the MM PF0100 on
an application board some hardware considerations have to be made.
3.1Programming the MMPF0100 on an Application Board
When programming the MMPF0100 in an application board, voltages must be applied at the VIN, VDDIO and
VDDOTP pins. Considerations must be made to allow voltages to be applied on these rails in a fully populated
system board.
3.2Isolating SCL/SDA
During OTP programming of the MMPF0100, commands are sent to the MMPF0100 via the SCL/SDA pins using
2
an I
C communications bridge, typically a programming dongle such as the KITPFPGMEVME. In a typical
application, the SCL and SDA pins of the MMPF0100 are connected to communication ports of an I
typically the processor. Depending on how the ports in the processor are designed, it may or may not be valid to
communicate with the MMPF0100 using an external dongle while the SCL/SDA pins are still connected to the
processor especially when the processor is unpowered due to a yet-to-be-programmed MMPF0100.
It is recommended to isolate the SCL/SDA lines going to the processor while communicating with the MMPF0100
using an external dongle as shown in the example in
Figure 2. In the normally closed position of the analog switch
(NLAS3158 or similar), SCL and SDA of the MMPF0100 are connected to the processor. When the signal
Programmer_Select_O/P is high, SCL and SDA of the MMPF0100 are connecte d to the extern al programming
interface. The Programmer_Select_O/P signal can be generated by the programming interface as well.
2
C master,
Figure 2. Isolating SCL and SDA Using an Analog Switch
Note: Using the analog switch may not be the most cost effective option to isolate the I2C bus. Similar functionality
can be achieved by using solder shorts or 0 Ohm resistors. However, minor rework of the board would be required
once OTP programming is completed.
Freescale Semiconductor29
AN4536 Application Note Rev. 2.0 1/2014
Hardware Considerations
VPGM
V3V3
GND
SDA
SCL
PWRON
VUSB
ID
D+
D-
GND
1
2
3
4
5
PROGRAMMING
INTERFACE
6
1
2
3
4
5
MINI-USB
INTERFACE
BOOST
LDO
MCU
+3.3V
+8.25V
+3.5V to 5.5V
VIN
BSTEN
GND
VOUT
GND
GND
VINVOUT
SHDN
PGMEN
D-
SCL
SDA
PWRON
VDD
D+
CONNECTED
PROGON
3V3EN
VINSNS
EN
FB
VUSBEN
S1
S2
UP
DNBSTDN
BSTUP
DACOUT
7
8
GPIO1
GPIO2
GPIO1
GPIO2
3.3Programming using the PF-Programmer
The KITPFPGMEVME is Freescale's programming board that can be used to OTP program the MMPF0100. It
integrates a 3.3 V LDO to power the MMPF0100 and a boost converter with an adjust able output voltage to generate
the OTP programming voltage. An integrate d USB-to-I
using a Freescale supplied GUI. See
Figure 3 for a block diagram of KITPFPGMEVME.
2
C converter allows PC communication with the MMPF0100
The V3V3 rail generates a 3.3 V supply to power the VIN and VDDIO rails of the MMPF0100. Figure 4 shows how
to interface the KITPFPGMEVME with the MMPF0100 in an application board. Fo r applications which u se a sin gle
rail for VIN and VDDIO, the connection is straightforward as shown in
other loads connected to the 3.3 V rail do not surpass the current rating of the LDO. If that is the case, isolation in
Figure 3. KITPFPGMEVME Block Diagram
Figure 4. However, it must be ensured that
the form of an analog switch, a solder short, or a 0 Ohm resistor is required.
AN4536 Application Note Rev. 2.0 1/2014
30Freescale Semiconductor
Hardware Considerations
3.3V Regulator from KITPFPGMEVME
LDO REGULATOR 3.3V
R1
R2
Optional isolation to prevent
LDO from being over loaded
Processor_SCL
Processor_SDA
Programmer_SCL
Programmer_SDA
Programmer_Select_O/P
3V3
3V3EN
INPUT
3V3
0
0
0
0
R99
4.7K
C92
470PF
R102
12.0K
R103
0
C94
1.0UF
+
C95
2.2UF
R100
4.7K
C93
2.2uF
DNP
R101
20K
NLAS3158
1
2
3
5
4
12119
6
8
7
10
U21
MIC5205
IN
1
GND
2
ADJ
4
EN
3
OUT
5
MMPF0100/Z
U19A
ICTEST
5
INTB
1
RESETBMCU
3
SCL
54
SDA
53
SDWNB
2
STANDBY
4
VCOREDIG
51
VCOREREF
52
VDDIO
55
VDDOTP
47
PWRON
56
VCORE
49
GNDREF
48
VIN
50
Figure 4. Interfacing KITPFPGMEVME for application board MMPF0100 programming (Systems with VIN =
In systems which use different rails for VIN and VDDIO, the requirement s for interfacing the KITPFPGMEVME with
the MMPF0100 in an application board are different. As the KITPGPGMEVME provides a single rail for VIN and
VDDIO, it is necessary to short the two rails on the application board during programming. This re quires that the
other loads connected on the VDDIO rail in the system be isolated. These can be achieved using an analog switch
as shown in
the VDDIO pin. When Programmer_Select_O/P is high, VIN and VDDIO are connected together allowing the
KITPFPGMEVME to communicate with MMPF0100.
Freescale Semiconductor31
VDDIO)
Figure 5. When the signal Programmer_Select_O/P is low, the system VDDIO supply is connected to
AN4536 Application Note Rev. 2.0 1/2014
Hardware Considerations
3.3V Regulator from KITPFPGMEVME
LDO REGULATOR 3.3V
R1
R2
3V3
3V3EN
INPUT
Programmer_Select_O/P
SYSTEM_VDDIO_SUPPLY
3V3
0
0
0
0
C88
470PF
MMPF0100/Z
U12A
ICTEST
5
INTB
1
RESETBMCU
3
SCL
54
SDA
53
SDWNB
2
STANDBY
4
VCOREDIG
51
VCOREREF
52
VDDIO
55
VDDOTP
47
PWRON
56
VCORE
49
GNDREF
48
VIN
50
R88
12.0K
U13
NC7SB3157L6X
B11GND
2
B03A
4
VCC5S
6
+
C91
2.2UF
C90
1.0UF
R91
4.7K
C89
2.2uF
DNP
U11
MIC5205
IN
1
GND
2
ADJ
4
EN
3
OUT
5
R87
20K
R90
4.7K
Figure 5. . Interfacing KITPFPGMEVME for application board MMPF0100 programming (Systems with
different VIN and VDDIO)
Note: Using the analog switch may not be the most cost effective option to supply VIN and VDDIO. Similar
functionality can be achieved by using solder shorts or 0 Ohm resistors. However, minor rework of the board would
be required once OTP programming is completed.
The Programmer_Select_O/P signal can be generated using the GPIO2 pin on the KITPFPGMEVME. Controlling
this signal can be part of the programming script.
32Freescale Semiconductor
AN4536 Application Note Rev. 2.0 1/2014
Hardware Considerations
Optional isolation
diode to prevent
VDDIO supply from
being over loaded
Processor_SCL
Processor_SDA
Programmer_SCL
Programmer_SDA
Programmer_Select_O/P
SYSTEM_VDDIO_SUPPLY
Programmer_VDDIO
Programmer_VIN
Programmer_PWRON
R95
4.7K
R96
4.7K
MMPF0100/Z
U15A
ICTEST
5
INTB
1
RESETBMCU
3
SCL
54
SDA
53
SDWNB
2
STANDBY
4
VCOREDIG
51
VCOREREF
52
VDDIO
55
VDDOTP
47
PWRON
56
VCORE
49
GNDREF
48
VIN
50
NLAS3158
1
2
3
5
4
12119
6
8
7
10
DIODE
AC
3.4Programming using a Generic Programmer
Following are the requirements if it is preferred to use a generic programmer board:
1. VIN power supply: 3.3 V, 100 mA
2. VDDIO power supply: 1.8 V to 3.3 V, 10 mA
3. I2C Master
4. GPO signal to control MMPF0100's PWRON pin
5. GPO signal to control analog switch (Programmer_Select_O/P)
6. 9.5 V/9.25 V 100 mA power supply at VDDOTP bypassed by 2 x 10 μF capacitors. The voltage depends
on the silicon revision used. See section
An example is shown in Figure 6.
Note: Using the analog switch may not be the most cost effective option to isolate th e I2C bus. Similar functionality
can be achieved by using solder shorts or 0 Ohm resistors. However, minor rework of the board would be required
once OTP programming is completed.
OTP Programming Example for details.
Figure 6. Interfacing a Generic Programmer to the MMPF0100 in an Application Board
Freescale Semiconductor33
AN4536 Application Note Rev. 2.0 1/2014
References
4References
Following are URLs where you can obtain information on Freescale products and application solutions:
Freescale.comhttp://www.freescale.com
Product Summary Pagehttp://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MMPF0100
Analog Home Pagehttp://www.freescale.com/analog
Power Management Home Pagehttp://www.freescale.com/PMIC
34Freescale Semiconductor
AN4536 Application Note Rev. 2.0 1/2014
5Revision History
RevisionDateDescription
2.05/2013 • Initial release
3.01/2014 • Updated section 2.2 OTP Programming Example
Revision History
• Added Section 2.3, Try-Before-Buy Mode Example, page 8
• Deleted section 2.4.3 Example Prototyping with ECC
• Added
(2)
and
(5)
Freescale Semiconductor35
AN4536 Application Note Rev. 2.0 1/2014
How to Reach Us:
Home Page:
freescale.com
Web Support:
freescale.com/support
Information in this document is provided solely to enable system an d soft ware implemen ters to use Freescale product s.
There are no express or implied copyright licenses granted hereunder to design or fabricat e any integrated circuits based
on the information in this document.
Freescale reserves the right to make changes without further notice to any products herein. Freescale makes no
warranty, representation, or guarantee regarding the suitability of its prod ucts for any particular purpose, nor does
Freescale assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any
and all liability, including without limitation consequential or incidental damages. “Typical” par ameters that may be
provided in Freescale data sheets and/or specifications can and do vary i n different app lications, and actual performance
may vary over time. All operating parameters, including “typicals,” must be validated for each customer application by
customer’s technical experts. Freescale does not convey any license under its patent rights nor the rights of others.
Freescale sells products pursuant to stan dard terms and conditions of sale, which can be found at the following address:
freescale.com/SalesTermsandConditions.
Freescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off.
SMARTMOS is a trademark of Freescale Semiconductor , Inc. A ll other product or service names are the property of t heir
respective owners.