LPC54018 Crash Issue

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

LPC54018 Crash Issue

480 Views
ZRay
Contributor I

My customer is experiencing an issue with the LPC54018J2M.

The situation is described as follows:

After the customer updates the firmware by programming the new version into the Ether Back Up CODE block via I2C, upon reboot, the BOOT CODE first checks if there is a newer firmware in the Ether Back Up CODE. If there is, it overwrites the Ether CODE and then executes it.

flash memory arrangement
|-------------------------------------| 0x10000000 - 0x1000FFFF
| BOOT CODE(64k)                             10000|
|-------------------------------------| 0x10010000 - 0x100fffff
| Ether CODE(960k)                           f0000|
|-------------------------------------| 0x10100000 - 0x101effff
| Ether Back Up CODE(960k)           f0000|
|-------------------------------------| 0x101f0000 - 0x10200000
| reserved(64k)                                  10000|
|-------------------------------------|

For a small number of units, after the firmware update is completed, the software runs normally for a period of time. However, after some time, the code suddenly gets stuck. In these cases, even attempting to reprogram or erase cannot recover the system, and the IC has to be replaced.

For the abnormal ICs, we performed further tests using JTAG. Initially, program the sample code would not run normally, the IC would get stuck immediately after flashing.

upload_44c1df325efcbfd1bf742fc095949c9e.png

 

For the customer software, the BOOT CODE checks the Flash Memory and then gets stuck during the SPIFI Initialization.

However, after programming the sample code from SDK_2.x_LPC54018J2M (version 24.12) via JTAG, the IC can operate normally, and subsequent programming also works as expected.

For abnormal ICs, directly reprogramming the customer code does not restore proper operation. It is necessary to first program the sample code in order to recover from the abnormal state.

The customer code is currently developed based on SDK 2.11.

The sample code that restores normal operation is from SDK 24.12.

I have also suggested that the customer update to the new version if possible, but this may require some time.

Therefore, I would like to discuss here what could be causing this issue—whether it is related to the SDK version, or if the memory configuration needs to be adjusted.

Although we can currently recover the device via JTAG, we hope to find a way to completely prevent this problem from occurring.

Labels (1)
0 Kudos
Reply
1 Reply

453 Views
carlos_o
NXP TechSupport
NXP TechSupport

Hi @ZRay 

Thanks for your post!

It could be related to an Errata on the LPC54XX devices, it is described at Errata sheet LPC540xx_LPC54S0xx at the functional problem description 3.8 ROM.1: On boot failure peripheral pins remain configured or driven 

Also, I recommend reviewing the MCUXpresso SDK Release Notes, another recommendation will always use the newest version of SDK available. 

Did the sample code you mentioned perform any pin configuration?

 

0 Kudos
Reply