Several methods of microcontroller burning: ISP, IAP and ICP introduction
Hedy · Dasenic Content Editor
Published Sep 27,2024What are the common methods of microcontroller burning program?
Let's talk about the three common methods of burning program: ISP, IAP and ICP, and their differences.
1. ISP (In-System Programming)
Principle: Program the microcontroller directly on the circuit board through a specific programming interface (such as SPI, I2C, etc.). Generally, a dedicated programmer (such as USBasp, AVRISP, etc.) is used to connect to the programming pins of the microcontroller.
Connection diagram:
- The programmer is connected to the microcontroller.
- The programming pins of the microcontroller (such as MISO, MOSI, SCK, RESET) are connected through the programmer.
Application scenario: Commonly used in the development and production stages, convenient for multiple programming and testing. Suitable for preliminary program uploads.
2. IAP (In-Application Programming)
Principle: The microcontroller can receive new programs and update them while running. IAP usually involves implementing specific upgrade logic in the program and receiving new firmware through communication interfaces such as serial ports, USB, and Wi-Fi.
Connection diagram:
- The MCU is connected to an external device (such as a PC or mobile phone).
- Through the written application, the MCU can receive and write new programs during operation.
Application scenario: Suitable for IoT devices and remote control application scenarios, users can upgrade firmware without disassembling the device.
3. ICP (In-Circuit Programming)
Principle: Programming the MCU on the circuit board through a programmer, usually involving connection through a dedicated interface. The ICP method may use JTAG or SWD interfaces, etc.
Connection diagram:
- The programmer is connected to specific pins of the MCU (such as the JTAG interface).
- Testing and programming can be performed simultaneously through multiple pins on the circuit board.
Application scenario: Suitable for debugging and testing in the development stage, and can directly burn programs in the actual circuit environment.
Differences, advantages and disadvantages of ISP, IAP and ICP
ISP is suitable for convenient on-site programming.
Advantages:
Convenient and fast, programming directly on the circuit board.
No need to disassemble the microcontroller, saving time.
Supports multiple programming, suitable for frequent testing.
Disadvantages:
Requires an additional programmer.
May require physical connection, suitable for well-wired circuits.
IAP is suitable for remote or online updates.
Advantages:
Ability to update firmware online, good user experience.
Firmware upgrades can be performed in the running state, reducing downtime.
Disadvantages:
Complex implementation, update logic needs to be designed in the application.
High requirements for storage and processing capabilities may increase programming risks.
ICP is suitable for use in circuit development and debugging.
Advantages:
Programming in the actual circuit environment, suitable for debugging and testing.
Circuit and program can be tested at the same time to verify compatibility.
Disadvantages:
Requires a specific programmer and interface, which increases the cost.
May interfere with other parts of the circuit, so be careful.
The applicable scenarios and characteristics of each of these methods make them play an important role in different projects. These three methods have their own advantages and disadvantages. When choosing, you should make a trade-off based on the specific project requirements and application scenarios.