PEmicro logo
Cart New Account Login

Logo image
HomeAbout usProductsSupportForumsBlogCustomer Service

search inside this forum
search inside all forums
How to choose programming algorithm
Dick B. Mar 19, 2021 at 11:23 AM (11:23 hours)
Staff: Johnny N.

  • Hello

    I'd like to program a MPC556LFMZP40 using Multilink FX. There's a number of algorithms for MPC555, which is using the same memory map, so I assume they would do the job. Can you advise on how to pick up the correct algorithm? How do I choose between different versions of the same algorithm? For example, there are 5 version of algorithm for programming the internal 448KB flash:

    MPC555 1x32x112k Freescale_MPC555_1x32x112k_CMF_448k_revc_alg40.pcp
    MPC555 1x32x112k Freescale_MPC555_1x32x112k_CMF_448k_revg_alg50.pcp
    MPC555 1x32x112k Freescale_MPC555_1x32x112k_CMF_448k_revk1_alg61.pcp
    MPC555 1x32x112k Freescale_MPC555_1x32x112k_CMF_448k_revk2_alg61.pcp
    MPC555 1x32x112k Freescale_MPC555_1x32x112k_CMF_448k_revk3_alg61.pcp

    Which one should I use, and what is the difference between them?



  • Greetings,

    NXP has released many different revisions of the MPC555 and its sister chip MPC556 over the years. Note that MPC555 and MPC556 have the same flash organization so they share the same algorithm. The difference between the two is the MPC556 supports a code compression feature that is not available on the MPC555. See Section 1 Overview in the Users Manual:

    All the revisions were given different nicknames: C,G,K1,K2,K3,M,etc.
    You can tell which revision you have by looking at the mask set on the chip.
    NXP published an application note with a table of the mask sets. See Table 21. MPC555 Mask Sets on page 11 of AN2000.

    According to the AN2000, the MPC555LFMZP40 is a Rev K3. I think the MPC556LFMZP40 would be the same.

    Also if you search for MPC556LFMZP40 on the NXP website, it appears to be described as a Rev K3 part.

    Based on this information, I think the algorithm you should use is Freescale_MPC555_1x32x112k_CMF_448k_revk3_alg61.pcp

    I don't think NXP changed the flash in all the different revisions so the algorithms are probably all very similar and share the same underlying assembly.

    Can you let me know if the algorithm I suggested works? Try the erase module, blank check module, program module, and verify module. If it works, I will add the MPC556 to our device list.


  • Hi Johnny,

    Thank you for the comprehensive answer. I can confirm that the algorithm Freescale_MPC555_1x32x112k_CMF_448k_revk3_alg61.pcp works for erasing/reading/writing part no. MPC556LFMZP40.

    While looking through the PCP file I found the following command:
    USE_CMF_DRIVER=0D/06/0F/000B/00008000/ 14-32k blocks, 512 segments, 64 byte page

    I could not find any reference to it in the help file. Can you let me know what is it used for?

    • Greetings,

      Thank you for the feedback. This .pcp algorithm uses the routines in the Motorola MPC555 CMF Driver to program the internal flash. That command defines internal variables that are used by the Motorola routines. It is configured specifically for this algorithm and cannot be modified to support other flash devices. If you are interested in learning more about the CMF Driver, you'll need to contact NXP for their latest source files.


Add comment

   Want to comment? Please login or create a new PEmicro account.

© 2021 P&E Microcomputer Systems Inc.
Website Terms of Use and Sales Agreement