ISP in system prpgramming ICP in circuit programming ICSP in circuit serial programming
案例开始
PIC: VCC GND RST PGD PGC AVR:VCC GND RST MISO MOSI CLK
总结实现方式
SPI方式:VCC GND RST MISO MOSI CLK;如AVR 如89S52 串口方式:RX TX 如华邦51系列之W78系列 JATAG:还可调试程序 IEEE1149.1标准JTAG接口与ISP接口 JTAG(Joint Test Action Group)是1985年制定的检测PCB和IC芯片的一个标准,1990年被修改后成为IEEE的一个标准,即IEEE1149.1-1990。通过这个标准,可对具有JTAG口芯片的硬件电路进行边界扫描和故障检测。 具有JTAG口的芯片都有如下JTAG引脚定义: TCK——测试时钟输入; TDI——测试数据输入,数据通过TDI输入JTAG口; TDO——测试数据输出,数据通过TDO从JTAG口输出; TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。 可选引脚TRST——测试复位,输入引脚,低电平有效。 含有JTAG口的芯片种类较多,如CPU、DSP、CPLD等。 ISP接口符合JTAG接口标准
SWD:口线更少 Serial Wire Debug (SWD) SWD为pin有限的应用提供了一个调试的端口,主要是面向small package的微控制器,也面向复杂的ASICs—pin数量有限并且成本控制的应用。 SWD使用一个时钟+双向数据管脚来取代5-pin的JTAG端口,提供了所有的通用的JTAG调试和测试功能,并且增加了:在没有中断内核以及没有增加额外的代码的情况下,对系统内存的实时访问。SWD使用了一个ARM标准的双向有线协议,这已在ARM Debug Interface v5中定义。SWD在调试器和目标系统之间用一种高效标准的方式互相传送数据。它是ARM-based设备的标准接口。
实现机理
其实是从一个固定封装的程序启动boot ROM,进行数据收发操作 bootloader 有的已经固化 像AVR 有的需要另外烧录,像华邦W78系列
适合外露的编程接口
对于 ISP、IAP,由于编程接口露在机壳外,要注意 ESD 等抗干扰性能。不宜将 TTL、CMOS 电平的管脚外露,而应该选择 RS232、485、CAN等专门的通信接口 作为外露的在线编程接口。 曾经有人将 JTAG口作为一个车载电子产品的外露编程 接口,结局当然是产品失败,很失败。
JTAG
(Joint Test Action Group)联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),一种边界扫描技术,为了对芯片内部进行测试而生,现在主要应用于电路的边界扫描测试和可编程芯片的在线系统编程。现在多数的高级器件 都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 TRST为测试复位,输入引脚,低电平有效。GND TI还定义了一种叫SBW-JTAG的接口,用来在引脚较少的芯片上通过最少的利用引脚实现JTAG接口,它只有两条 线,SBWTCK,SBWTDIO。实际使用时一般通过四条线连接,VCC,SBWTCK,SBTDIO,GND,这样就可以很方便的实现连接,又不会占 用大量引脚。 一次用AVR M16做产品中,发现继电器驱动输出端口电平不对,最后找到原因是没有关闭JTAG,因为共用了