Programming features of ISP, IAP, ICP, JTAG, and SWD
Click on EEWORLD above to follow the world of electronic engineering!
Electronic engineers all know that the rapid development of semiconductor technology has driven the continuous upgrading of various chip technologies. In terms of data storage, from the initial mask ROM to the current Flash technology, the continuous improvement of storage technology has also led to the continuous development of corresponding programming technology.
I remember that when the older generation of engineers were programming 51 MCUs, they still used a large programmer to download programs, and it was a one-time (OTP) program. They would carefully debug the code again and again before downloading it to see the effect. Now it is so simple that you only need a serial port downloader to download programs. Basically, you don’t need to consider the number of programming times. You can compile, download and update at any time when you have an idea.
In this development process, many programming technologies have been born, such as ISP, IAP, ICP, JTAG programming, SWD programming, UART programming, etc. Those who play with microcontrollers should be familiar with these terms, but what are the differences between them? First, let's look at their definitions:
ISP: In System Programing
ICP: In Circuit Programing
IAP: In Application Programing
JTAG programming: programming via JTAG protocol
SWD programming: programming via SWD protocol
UART Programming: Programming via UART
It may seem very confusing, but it will not be confusing if we clarify the hierarchical relationship between them. Let's use a picture to illustrate it:
From the diagram, ISP and ICP are the top-level technologies, describing a programming structure, and the protocols and communication ports used are defined differently for different chips.
IAP is a programming method at the second level. The implementation method is to download a section of executable code of the target chip to the chip RAM through a certain communication protocol and execute it by the chip. The code implements specific operations to achieve the purpose of programming. This method requires the chip to support reading and writing the chip's RAM through a certain communication protocol and to control its CPU. This is a programming method under the programming structure. Burners such as AK100Pro and SmartPRO 5000U-Plus all use this programming method.
The bottom one is the hardware communication protocol. UART is the earliest serial communication technology used in microcontrollers. JTAG and SWD gradually became popular after the rise of ARM core chips. These three technologies describe the communication protocols used by the hardware layer during the programming process and are some of the lowest-level technical specifications.
Use a table to compare the characteristics of these communication protocols:
To sum up the above content, as long as the hardware communication protocols such as UART, JTAG, and SWD can ensure the standardization and stability of the electrical connection, ISP and IAP can program the chip correctly.
Welcome to click below to read the original text for more exciting content!