MMPF0100NPAEP OTP Error

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MMPF0100NPAEP OTP Error

5,697 Views
konradzgaga
Contributor II

Hello,

I'm having problem with programing OTP in MMPF0100NPAEP part on custom board. This is a second lot of our PCBs, with first one we didn't have any issue, but we used MMPF0100NPZES part. I'm using:

  • KITPFGUI Revision 4.1
  • KITPFPGMEVME - I don't know if it is REV B, there is a sticker with a QR code (an27456schb700a:fw4.0fat2.0:sn17060022), but it is supplying 9.5V on VPGM, so I'm thinking it is REV B.
  • The script that was working on the MMPF0100NPZES part (attached).
  • I2C lines are connected only to the KITPFPGMEVME programmer
  • VIN is external from KITPFPGMEVME, but there is nothing on VIN other than this PMIC. I also tried supplying everything from KITPFPGMEVME, but the results are the same.

When I'm writing and reading during TBB Mode, it works fine. When the coin cell is placed, it remembers everything,works great. But when I try to program OTP, there are random errors during verification. Devices are blank before programming, I checked that. I tried three boards, each programmed a different number of registers incorrectly – in one, there are 15, in another, 2. Another thing is that when I try to program it again, the number of failed registers can change. I looked at voltages and I2C communication lines on the oscilloscope, and they look good, no sharp voltage drops or anything that looks suspicious.

Example output:

Extracting OTP Data from Target Device...
Verifying OTP Data from Target Device...
OTP REG:[A0], DATA:[0x24] = [0x3D] (PROGRAMMING ERROR)
OTP REG:[A2], DATA:[0x05] = [0x01] (PROGRAMMING ERROR)
OTP REG:[A8], DATA:[0x20] = [0x04] (PROGRAMMING ERROR)
OTP REG:[A9], DATA:[0x04] = [0x12] (PROGRAMMING ERROR)
OTP REG:[AA], DATA:[0x01] = [0x02] (PROGRAMMING ERROR)
OTP REG:[AC], DATA:[0x72] = [0x7E] (PROGRAMMING ERROR)
OTP REG:[AD], DATA:[0x01] = [0x07] (PROGRAMMING ERROR)
OTP REG:[B0], DATA:[0x2C] = [0x28] (PROGRAMMING ERROR)
OTP REG:[B4], DATA:[0x62] = [0x6E] (PROGRAMMING ERROR)
OTP REG:[B5], DATA:[0x02] = [0x03] (PROGRAMMING ERROR)
OTP REG:[B9], DATA:[0x03] = [0x07] (PROGRAMMING ERROR)
OTP REG:[BC], DATA:[0x00] = [0x03] (PROGRAMMING ERROR)
OTP REG:[BD], DATA:[0x06] = [0x16] (PROGRAMMING ERROR)
OTP REG:[C0], DATA:[0x06] = [0x0F] (PROGRAMMING ERROR)
OTP REG:[D8], DATA:[0x0A] = [0x0F] (PROGRAMMING ERROR)
OTP REG:[D9], DATA:[0x0C] = [0x1F] (PROGRAMMING ERROR)
OTP REG:[DD], DATA:[0x08] = [0x1F] (PROGRAMMING ERROR)
OTP REG:[0xE3], DATA:[0x0E] = [0x0F] (PROGRAMMING ERROR)
OTP REG:[0xE8], DATA:[0x00] = [0x01] (PROGRAMMING ERROR)
OTP REG:[0xFF], DATA:[0x08] = [0x0B] (PROGRAMMING ERROR)
Verification Complete. 21 Programming Errors
Program Verification Complete.

This one was especially frustrating because it programmed wrong I2C address.
Can you please suggest something to help ?

0 Kudos
Reply
12 Replies

5,665 Views
JozefKozon
NXP TechSupport
NXP TechSupport

Hello Konrad,

please refer to the Table 2. in the MMPF0100 and in the MMPF0100Z datasheets. The first part MMPF0100NPAEP is the PF0100A version, where the XOR function is removed, while the later MMPF0100NPZES is the PF0100Z version, without the A suffix and has the XOR function.

JozefKozon_0-1708927881185.png

JozefKozon_1-1708927916620.png

JozefKozon_2-1708927980188.png

With Best Regards,

Jozef

 

0 Kudos
Reply

5,661 Views
konradzgaga
Contributor II

Thank you for your answer.

I'm not sure if this is the cause of the problem or maybe I don't understand somethings. I use the option in the "Programming" section, where I get input from script file, then convert script file and then program the device. KITPFGUI is identifying chip correctly as PF0100A, so my understanding was that after clicking "PROGRAM" it sets all necessary register in corret oreder to program OTP. Even if the OTP programing registers sequence is taken from the script, this part related to otp fuses seems correct to me:

WRITE_I2C:E4:02 // FUSE POR=1 (This Enables OTP Programming)
WRITE_I2C:E5:02 // FUSE POR=1 (This Enables OTP Programming)
WRITE_I2C:E6:02 // FUSE POR=1 (This Enables OTP Programming)

Best regards,

Konrad

0 Kudos
Reply

5,653 Views
JozefKozon
NXP TechSupport
NXP TechSupport

Hello Konrad,

I have found on my disk a PF0100A programming script. Please find it attached. Please test the script. The only difference I see (except the regulators settings) is in the I2C address. In your script I see the I2C address set to 0x08. In the script for the PF0100A the I2C address is 0x00. 

JozefKozon_1-1708937326109.png


JozefKozon_0-1708937198694.png

Let me know if it helped.

With Best Regards,

Jozef

0 Kudos
Reply

5,647 Views
konradzgaga
Contributor II

I tried your script but it work the same as my. One difference that I notice is that some of delays are longer then in my script.

I program chip with this script around 10 times, after each i had less errors but after like 5th time it stopped at 10 errors and nothing more is happening.

One thing I notice, that in "Script Editor", after I load script and click "Run Script", the script is running but it don't program the chip, it is still blank, is this normal ?

0 Kudos
Reply

5,642 Views
JozefKozon
NXP TechSupport
NXP TechSupport

Hello Konrad,

thank you for testing it. On how many empty MMPF0100NPAEP have you tried the scripts? If only on one, could you please try a new MMPF0100NPAEP? In case the MMPF0100NPAEP you are trying to program is damaged. 

With Best Regards,

Jozef

0 Kudos
Reply

5,636 Views
konradzgaga
Contributor II

I tried three chips with my script and one with yours.

5,600 Views
konradzgaga
Contributor II

Any advice on how to approach this issue ?

0 Kudos
Reply

5,595 Views
JozefKozon
NXP TechSupport
NXP TechSupport

Hello Konrad,

I have contacted an application team for an advice on this issue. As soon as they answer me, I will definitely reply to you.

Thank you for your patience. 

With Best Regards,

Jozef

5,547 Views
JozefKozon
NXP TechSupport
NXP TechSupport

Hello Konrad,

there is still no answer from the application team. I have just sent them a reminder. Hopefully they will answer me soon.

Thank you for your patience. 

With Best Regards,

Jozef

5,531 Views
JozefKozon
NXP TechSupport
NXP TechSupport

Hello Konrad,

I have received an answer from the application team. They confirmed, that there shouldn't be a difference between the part numbers regarding the OTP programming. Could you please test few more chips? At least three or better five more new MMPF0100NPAEPs. To confirm, that it is a systematic issue. 

While you test the TBB, please measure the outputs if there is the required voltage.

Please confirm, that you have purchased all the components only from our authorized distributors. Please see this link for a list of our authorized distributors. Please state the name/names of the distributors.

DESCRIPTION

These two components are only in different package. Please make sure that it is not a single case, but lots of device with the same part number that can't be programmed. and please check whether the device which can't be programmed have output when it is works in normal situation. thanks.

With Best Regards,

Jozef

0 Kudos
Reply

5,449 Views
konradzgaga
Contributor II

Hello,

Thank you for reply. The parts were purchased from an authorized distributor.

It was a good idea to check the output voltages in TBB mode because I noticed something new. In the "OTP Configuration" tab, I enable TBB mode and then load the configuration file (attached). When I check the voltages at the output, in most cases one or two of the voltages are incorrect, it is not always the same outputs, it`s random. It also happens sometimes that all voltages are good. Coming back to the case when something is wrong, I go to the "Programming" tab, select "Extract from Device" as "Data source" and click "Get Input". In most cases, all registers that are listed are consistent with those in the configuration I uploaded. This means that what I read from the registers is consistent with what I want it to be there, but the output voltages are still incorrect. I repeated this procedure many times on 5 PCBs and the effect is random each time. If it happens that the voltages are good and I perform OTP programming, then the chip is programmed without errors, but this procedure is long due to randomness.

0 Kudos
Reply

5,432 Views
JozefKozon
NXP TechSupport
NXP TechSupport

Hello Konrad,

please see below an answer from the application team. Unfortunately they do not have an answer for you. They recommend to start FA (Failure Analysis) If you have tested the chips many times and the issue is still there, please start a CQI (Customer Quality Incident). Procedure is, that you contact one of our authorized distributors, preferably the one, from who you have purchased the components. He/She will let you fill a CQC (Customer Quality Complaint) report, will take the failed components and send them to NXP for analysis.

DESCRPTION

It can't be random, Please let customer to check again and again to make sure they are correct operation. If still so, please go FA process. thanks.

With Best Regards,

Jozef

0 Kudos
Reply