In LPC1759, I entered ISP through "reinvoke ISP" with the following steps

  1. Disable PLL
  2. Reset timer 1
  3. Re-map interrupt vectors
  4. Set watch dog timeout
  5. Reinvoke ISP

After entering into ISP, What exactly happens in the controller? How to check if it is in ISP Mode? After entering ISP, How to get out?

void init(void){





int main(void)

uint32_t wdtFreq;
wdtFreq = Chip_Clock_GetPeripheralClockRate(SYSCTL_PCLK_WDT) / 4;



Chip_WWDT_SetTimeOut(LPC_WWDT, wdtFreq / 10);



return 0;

When you enter ISP, you "give control" to bootloader code in ROM. You can interact with it through UART interface (possibly also USB or something else, depending on the chip).

You might be able to regain control from code in the MCU itself if you use a watchdog. I'm not sure that's documented/guaranteed to work.

You need to use something that speaks this ISP protocol (e.g. lpc21isp), and you'll be able to issue commands such at detect, write flash, reboot.


Thanks for the info domen, that was helpful.

So do we give control to the primary bootloader ROM or do we need a secondary bootloader ROM?

Do we actually need a secondary bootloader for ISP?

Can this ISP be done through a single controller?

  • \$\begingroup\$ Not really. Depends what you're trying to do and what your requirements are. ISP protocol is quite simple, progremmer side is normally on a PC, but it could also be another microcontroller. \$\endgroup\$ – domen Feb 11 at 9:05
  • \$\begingroup\$ Okay , Thank you so much \$\endgroup\$ – Keerthana R Feb 12 at 5:58

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.