This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UCD3138064: Question of Program Upgrades

Part Number: UCD3138064
Other Parts Discussed in Thread: UCD3138

Hi Experts,

I refer the file to implement program upgrades with UCD3138.

Using D1D4 and PMBus for Program Upgrades in the field.pdf

The power have main output in normal, but one I/O pin is unusual.

Then, power off.

Once again power on, the power is in boot flash, I use Memory Dump to read main program.

Main program is erased and data is FF.

What happened to cause main program to be erased possibility?

Thanks!

  • It sounds like you have a hardware backdoor which is erasing the pflash.  

    Check near the start of the main function and see if there's somethng like this:

    //Check to see if FAULT2 is pulled high and FAULT0 is pulled low.
    //If they are go to ROM.
    if (MiscAnalogRegs.GLBIOREAD.bit.FAULT2_IO_READ && !MiscAnalogRegs.GLBIOREAD.bit.FAULT3_IO_READ)
    {
    pmbus_read_write_rom_mode(PMBUS_WRITE);

    }

    Or there could be a call to erase pflash or to clear_integrity word.  And of course the I/O pins could be different.  

    Erase pflash may erase everything, which would erase the bootflash as well.  It's possible that you are dong write rom mode or clear integrity word, which may clear the checksum at the end of the flash, which may cause the bootflash code to erase the program flash except for the bootflash.  I'd have to see your boot flash code to see.  Since it's an 064, I'm not sure whether you're doing an update with one block running and the other block being downloaded, or whether you are writing to the whole memory except for the bootflash.  This may have an effect on the cause as well.  Basically you need to look through your bootloader code and see where it might erase whatever memory is being erased, and work backwards from there.  

  • This has been here for quite a while without any further questions, so I'm going to assume the issue is resolved.