无论是客户反馈,还是自己亲身经历,USB-Blaster不能下载配置FPGA的情况时有出现。究其原因,大致有如下几条:

1. FPGA器件上的JTAG相关引脚出现故障;

2. USB-Blaster坏了;

3. 10针JTAG线缆没有压制好。

其中第1条给我们带来的损害最为严重,那么应该怎样规避呢?

内容
 
故障1的现象
 
JTAG接口的TCK、TMS、TDO或TDI,与GND短路。
原因分析
我们经常为了图方便,随意带电插拔JTAG下载口。尽管在多数情况下JTAG相关引脚安然无恙,但是不能避免小概率事件发生:由热插拔而产生的静电和浪涌,将会击穿JTAG相关引脚。有人猜测,由于盗版的USB-Blaster等简化了保护电路,因此才发生此类故障。然而,事实证明,即便是Altera官方的USB-Blaster等也避免不了这种小概率事件。因此我们艾米电子猜测:Altera为了降低成本,裁减了低端FPGA I/O的二极管钳位保护电路。
推荐插拔顺序
 
插线顺序
1. 关闭FPGA开发板的电源;
2. 将JTAG仿真器的JTAG线缆连接至FPGA开发板的JTAG接口;
3. 在仿真器的USB接口上插入USB线缆(假设USB线缆的另一段已经插在电脑上);
4. 打开FPGA开发板的电源。
步骤2和3的最好不要调换,因为虽然FPGA开发板没有供电,但是USB供电的JTAG仿真器也会产生一定的电压,作用于FPGA开发板的VCC和GND上,所以千万要注意此顺序。
拔线顺序
1. 关闭FPGA开发板的电源;
2. 拔下JTAG仿真器的USB接口上的USB线缆;
3. 去除JTAG线缆与FPGA开发板的连接;
步骤2和3的最好不要调换,原因如上。
总结
 
无论是FPGA开发板还是其他,万不可带电插拔线缆,必须先想方设法断去一切相连的电源,再做动作。

42.JTAG接口使用注意的更多相关文章

  1. 硬件相关-JTAG接口

    JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,用于系统仿真.调试及芯片内部测试.它通过访问芯片内部封装好的测试电路TAP(Test Access ...

  2. 图解Stm32使用jlink下载程序时jtag接口(SW和JTAG模式)的简化方法

    转自: http://www.it165.net/embed/html/201308/2332.html 用过stm32的人都知道stm32有两种常用下载程序的方法,用串口和jlink.串口下载方法和 ...

  3. MSP430的JTAG接口和BSW接口

    1.JTAG口,JTAG引脚如下定义:  单片机TCK——测试时钟输入,接仿真器7脚  单片机TDI——测试数据输入,接仿真器2脚  单片机TDO——测试数据输出,接仿真器1脚  单片机TMS——测试 ...

  4. JLINK 10针J和20针JTAG接口连接方法

    我的JLINK终于用上了,哈哈,好开心,终于不用考虑是不是要借用别人的PC机了,昨天到城隍庙电子市场忙活了一下午,终于算是满载而归,呵呵,好了,下面说一下接法,其实根本不需要什么转接板什么的,直接把相 ...

  5. JTAG接口定义

  6. STM32 JTAG接口SWD下载接线图

  7. JLink and JTAG等接口简介

    1.JTAG JTAG用的计算机的并口,JTAG也是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试.现在多数的高级器件都支持JTAG协议,如DSP.FPGA器件等. 标准的J ...

  8. 浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别

    JTAG协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试.现在多数的高级器件都支持JTAG协 ...

  9. JTAG各类接口针脚定义及含义

    注:转自 揽月阁 JTAG有10pin的.14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下. 一.引脚定义 Test Clock Input ...

随机推荐

  1. Compass是什么

    Compass是一个强大的Sass框架,他的设计目标是顺畅.搞笑地装扮互联网,使用它的人可以写出可维护性更高的样式表. Compass由三个主要部分组成:混混合器和实用工具类库,能够集成到应用开发环境 ...

  2. php 几种函数类型

    <?php header("Content-type:text/html;charset=utf-8"); $a=; $b=; function demo(){ global ...

  3. C#多线程案例基础

    C#多线程案例基础(转) 在学习多线程之前,我们先来看几个概念: 1,什么是进程?    当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源,当然一个程序也可能开 ...

  4. hdu2093

    #include <stdio.h> #include <string.h> #include <algorithm> #include <math.h> ...

  5. 001Linux命令

    1.删除非空目录的命令:rm -rf [目录名],r表示迭代,f表示强制: 删除空目录:rmdir [目录名]: 删除文件:rm [文件名]: 2.用户管里类命令: (1)添加用户:useradd [ ...

  6. Android IOS WebRTC 音视频开发总结(二四)-- p2p调用堆栈

    本文主要分析webrtc音视频点对点部分的代码结构,文章来自博客园RTC.Blacker,转载请说明出处. 前段时间在查一个偶尔断线的问题(这种问题最蛋疼,不好重现,只能凭经验去搞),所以理了下web ...

  7. sqlserver分区表实践:对时间分区表自动进行管理

    项目问题:有一张日志表,插入和查询为主,每天记录数据为200多万,大小为2G-4G之间.一开始开发人员使用delete语句手动删除,保留7天数据,经常造成阻塞和性能瓶颈.但是如果不删除数据随着表越来越 ...

  8. javaSE第二十四天

    第二十四天    363 1:多线程(理解)    363 (1)JDK5以后的Lock锁    363 A:定义    363 B:方法:    364 C:具体应用(以售票程序为例)    364 ...

  9. [视频]MAC OS 技巧之如何更新及重装MAC系统

    mac os是当今最好用的桌面操作系统,但再好的系统也有新版本发布的一天,或者被极客的你尝试各种设置而配置混乱了,这时我们就要进行系统更新或者重装了. 系统更新 Mac OS有新版本推出时,会自动在A ...

  10. Mysql连接测试代码

    <?php $link=mysql_connect('localhost','root','htuidc'); if($link) echo "success"; ?>