What is the difference between In-System Programming (ISP) and In-Application Programming (IAP)?

What is the difference between In-System Programming (ISP) and In-Application Programming (IAP)?

 


While programming the devices like Micro-controllers, there are several scenarios and options.

  • programming the chip in the factory and then mounting the chip on our PCB
  • programming the chip once it is mounted on the PCB - using JTAG kind of interfaces or any other interfaces
  • programming the chip by itself with minimal intervention from user in the field
  • programming the chip over the air
Remember that we are talking about programming the Flash memory of the chip using various options.

The programming option where we program the chip without removing the chip from the board is In-System Programming (ISP). Devices like MCU has boot loader programmed in the chip. Device has to be in ISP mode to go to boot loader and execute the code. For this devices have some straps (Pull-up or pull-down) which need to be in specific state. Based on these straps, device can enter boot loader and into ISP mode or enter just a normal application code execution mode. Devices like MCU might have UART boot loader, SPI boot loader, I2C boot loader such that any of these interfaces can be used for programming the MCU. Most of the MCU popularly use UART for programming. Remember that we need a host in all such scenarios and host provides the code to be programmed to flash of the device. ISP mode of programming is used, if the user cannot buy costly JTAG available in the market. 

In-Application programming (IAP) is something which is used for programming the chip from the application code itself. 

Post a Comment

0 Comments