Update Firmware of LPC54608 w/o programming cable, addtional mcu

cancel
Showing results for 
Search instead for 
Did you mean: 

Update Firmware of LPC54608 w/o programming cable, addtional mcu

632 Views
benmao
Contributor II

We wanted to use an LPC54608 and I have the demo board here. In the final product we do not want to include the additional MCU which is on the demo board which makes it possible to transfer the firmware to both, internal and spifi flash.

It should be possible, that our customer can update the firmware by the use of an usb cable and eventually some software on his pc only.

As this feature is needed, we cannot use an NXP LPC 54608?

0 Kudos
8 Replies

180 Views
victorjimenez
NXP TechSupport
NXP TechSupport

Hello Ernst, 

It's possible to update the firmware of the LPC54608 by the usb cable. You have to boot the LPC546xx in mass storage mode. You can refer the section 3.1 of the following user manual: 

Hope it helps! 

Victor.

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

180 Views
benmao
Contributor II

Dear Victor,

unfortunately this does not help. Part of the application is on an external SPIFI flash as I meantioned. In the document referred by you they write: "Note that this method cannot be used to load binary files that require data to be programmed into SPI/SPIFI flash."

0 Kudos

180 Views
victorjimenez
NXP TechSupport
NXP TechSupport

Hello Ernst,

Thanks for your patience. I just sent you to your email the example project. 

Hope it helps!

Victor.

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

----------------------------------------------------------------------------------------------------------------------- 

0 Kudos

180 Views
eileen_radzwion
Contributor II

Hello Victor,

I also have a need to load LPC54608 firmware via DFU mode using USB1.  I am looking for clear steps to program flash for the first time from the bootloader, not from a running program that makes a call to an ISP/IAP API routine. 

In other words, an example project with source code is not the solution, as that would require that project to be running on the chip prior to attempting a firmware update via DFU, and I am looking for how to load from the bootloader "the first time".

this is how we will program a blank chip that only has the bootloader, or recover from a corrupt loaded firmware image.  The UM does not include clear instruction on how to do this, except for defining the state of each of the ISP pins for this mode.  

Thank you,

Eileen

0 Kudos

180 Views
henryliu
Contributor I

Hello, Victor,

We also have similar needs to update the LPC54616 firmware via USB cable.  Could you please provide instructions to accomplish this?  We are still new to this product, so clear and concise instructions would be very much appreciated.

Thanks,

Henry Liu

VersaLogic Corporation

henryl@VersaLogic.com

0 Kudos

180 Views
benmao
Contributor II

Hello Victor,

thank you for the example.

I looked into the source code and there seems to be a bug or just the description of the function is wrong:

The data is no written to DFU_DEST_BASE memory area but it is read from there instead.

Later, start_image((void *) DFU_DEST_BASE) is called but DFU_DEST_BASE was not written before, therefore I assume that the example does not work.

/* DFU write callback is called during DFU_DOWNLOAD state. In this example

  • we will write the data to DFU_DEST_BASE memory area.

*/

uint8_t dfu_wr(uint32_t block_num, uint8_t * *pBuff, uint32_t length, uint8_t *bwPollTimeout)

{

uint32_t dest_addr = DFU_DEST_BASE;

if (block_num >= DFU_MAX_BLOCKS) {

return DFU_STATUS_errADDRESS;

}

dest_addr += (block_num * DFU_XFER_BLOCK_SZ);

dest_addr += length;

// ---> HERE AT THIS PLACE dest_addr is read instead of written:

*pBuff = (uint8_t *) dest_addr;

return DFU_STATUS_OK;

}

Kind regards,

Ernst

ERNST MURNLEITNER

GESCHÄFTSFÜHRER / GENERAL MANAGER

AWITE BIOENERGIE GMBH

GRÜNSEIBOLDSDORFER WEG 5

D-85416 LANGENBACH

TEL. +49 (0)8761 72162 - 0 (ZENTRALE)

TEL. +49 (0)8761 72162 - 18 (DURCHWAHL)

FAX +49 (0)8761 72162 - 11

WWW.AWITE.DE

0 Kudos

180 Views
victorjimenez
NXP TechSupport
NXP TechSupport

Hello Ernst,  

Sorry for the misunderstood. The apps team told me that in two weeks they will released an example of USB DFU mode for the LPC546xx families. In the DFU mode you can program also the external SPIFI flash. I will let you know when this example is available. 

Regards,  

Victor.

0 Kudos

151 Views
fcopetti
Contributor I

Hi Victor,

Any update about the mentioned example? 

Thanks and best regards,

Filippo

0 Kudos