请问一下,ICP编程和JTAG编程、SWD编程什么区别?
ISP:In System Programing,在系统编程
ICP:In Circuit Programing,在电路编程
IAP:In Application Programing,在应用编程
JTAG编程:通过JTAG协议进行编程
SWD编程:通过SWD协议进行编程
UART编程:通过UART进行编程
ICP编程
ICP的英文全称是In Circuit Programing,意为:在电路编程。如果单片机已经焊接到电路上,但又需要再次烧写程序,如果拆卸单片机会非常不方便,这时就用到ICP编程,这一点与ISP比较像。
ICP编程的特点是:MCU只要处于上电状态即可,不必预烧任何code在MCU里面;(2)烧录范围涵盖整颗MCU,包括APROM, DataFlash, CONFIG, LDROM和 ROMMAP。
JTAG编程
JTAG的英文全称是Joint Test Action Group(联合测试行为组织);JTAG 主要应用于:电路的边界扫描测试和可编程芯片的在线系统编程。
JTAG也是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现今多数的高级器件都支持JTAG协议,如DSP、FPGA、ARM、部分单片机器件等。标准的JTAG接口是4线:JTAGTMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。
JTAG口会因为单片机的不同,其接口数量也不等,一般有10,14,20引脚的JTAG接口。
SWD编程
SWD最大的好处就是节省PCB 的空间和布线难度,SWN采用J-LINK编程模式。
SWD 模式比 JTAG 在高速模式下面更加可靠。 在大数据量的情况下面 JTAG 下载程序会失败, 但是 SWD 发生的几率会小很多。基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的, 只要你的仿真器支持。 所以推荐大家使用这个模式。
在单片机 GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚。
在板子的体积有限的时候推荐使用 SWD 模式, 它需要的引脚少, 当然需要的 PCB 空间就小啦! 比如你可以选择一个很小的 2.54 间距的 5 芯端子做仿真接口。
引用: eew_1PrAA0 发表于 2022-10-9 14:57 ICP编程 ICP的英文全称是In Circuit Programing,意为:在电路编程。如果单片机已经焊接到电路上,但又 ...
谢谢。但是:
单片机烧录程序的方式有三种:
1、ISP(In-System Programming)在系统编程,使用引导程序(Bootloader)加上外围UART/SPI等接口进行烧录。
2、ICP (In-circuit programmer)在电路编程,使用SWD/JTAG接口。
3、IAP(In-Application Programming)指MCU可以在系统中获取新代码并对自己重新编程,即用程序来改变程序。
以上资料的意思好象ICP是一种编程方式,SWD/JTAG只不过是ICP的两种具体实现方式?也就是说ICP不是具体的实现方式,只是一种概念。
引用: elec921 发表于 2022-10-11 09:54 ICP是一种编程方式,SWD/JTAG只不过是ICP的两种具体实现方式√
功能相当,为什么引脚数会差那么多?
引用: starcat123 发表于 2022-10-17 23:34 功能相当,为什么引脚数会差那么多?
去研究下他们的协议就明白啦