We have a custom board with the LPC8N04, and we are programming it with a Keil ULINK2 programmer via the SWD interface. At this moment, the MCU is in DeepPowerDown mode, and I can't reach the core anymore with the debugger.
How can I program the LPC8N04 again?
Hello, my name is Pavel, and I will be supporting your case, I found a related thread maybe you can use the Flash magic tool.
LPC8N04 EEPROM write over 4kB result chip locked - NXP Community
Best regards,
Pavel
> At this moment, the MCU is in DeepPowerDown mode, and I can't reach the core anymore with the debugger.
That is the very purpose of power-down modes - to switch off units to save energy.
This is most probably a bug in your application.
Boot the MCU into ISP mode, and access via tools like FlashMagic to erase the Flash.
It should be accessible in normal fashion by your IDE and debug pod afterwards.
The process is usually explained in the MCU user manual and/or respective app notes.
Thanks for the reply. The problem is that the LPC8N04 doesn't have ISP mode (as far as I know).
While I don't have experience with the LPC8N04, basically all modern MCUs support such a mode.
Usually via specific mode pins, which are checked during MCU startup. If a specific logic level combination is detected, the MCU remains in the system ROM, and awaits communication on one of the defined serial lines. Most commonly UART interfaces are used.
The mode pins, logic level combinations, supported input lines and ISP protocol are usually defined in the user manual.
Evaluation boards usually come with jumpers to set the MCU in ISP mode.
So, check the eval board documentation as well.
I have experience with the ISP modes in previous NXP MCUs I've programmed, but with this one, I can't find these modes. Additionally, this MCU doesn't have the UART interface. It's a minimalistic MCU.
I'm using the SWD interface which works fine until now.
I would be surprised if this MCU doesn't support an ISP mode, but it's not impossible.
For personal interest, I will look it up. And avoid this MCU if it is the case ... ;-O
I overlooked that you mentioned "custom board". Which probably means there is no support designed in.
> Additionally, this MCU doesn't have the UART interface. It's a minimalistic MCU.
UART is just the most common. Many system ROM bootloaders support other interfaces like SPI, CAN, or even USB.
But as said, I will check the DS / user manual, and see if I can find something.
Deep sleep modes are known to break debug access.
I suppose it would help to add a wake-up source than can be manually operated, like a GPIO level transition.
It seems you are right, I couldn't find anything mentioning mode pins or ISP mode.
Which is somewhat unusual.
Perhaps some NXP employees can explain how to unbrick a board with this MCU.
I would try to set the wakeup pin (PIO0_0) and attempt debug access at the same time.