JTAG Level Translation
http://www.freelabs.com/~whitis/electronics/jtag/
One of the big issues in making a JTAG pod is level translation. The state of level translation ICs leaves a LOT to be desired. You would think that there would be a lot of chips that you could apply 1.2-5V power and logic on port A and 1.2-5V (or 0V) power and logic on port B. Well, that isn't the case. Many level translators assume that one power bus will always be higher than the other. You also need to deal with hot plugging where signal lines might get connected before Vref. And you can have any combination of the POD and the target being powered up or down. TI has a voltage translator selection application note that is informative; it would be more useful if there were actually good parts to choose from. Pullup resistors should not be used to pull the output of a driver higher than its supply voltage. Also, many level translators don't work at 5V. Many level translators have output enable or direction signals but don't be surprised if the input is connected to the wrong supply voltage. Many 5V devices have TTL not CMOS levels, which must be taken into account when doing voltage translation. Very few translators go from 1.2 to 5V on either port, let alone both ports with either VCC higher. And good luck finding a suitable part that also has a second source.
Maxim has a level translation tips though not adequate for a serious pod.
A typical JTAG pod might have 3.3V logic and need to interface to 1.2 to 5V logic. This means the other side of the translator could have higher or lower supply voltage. If the POD uses 5V logic, conversion may be simpler.
The state of single directional voltage translation leaves enough to be desired; when dealing with bidirectional signals it gets worse. Bit programmable bidirectional signals, such as would be found on a GPIO port or on a JTAG pod that allows flexible pin assignments, are particularly problematic for level translation. It is one thing to translate a bidirectional signal when you have a direction signal to work with and another when the translator has to guess. Suppose you have a high level on a port A input. Is it high because the micro drove it high or is it high because the translator is driving it high because it thinks port B is being driven high. Voltage clamps with passive pullups don't have this problem but they have the usual issues with pullups.
- 74LVC1G125 - single gate tristate driver, in 5 pin packages. About $0.29 qty 1 at digikey. Input is either 3.3V or 5V, supply voltage 1.65 to 5.5V. Problem is, you need to stuff a lot of parts. When having a board assembled, you pay for each part placed plus setup charges for each unique part.
- 74LVC125 - you might expect it to act like a quadd 74LVC1G125 except supply voltage is limited to 3.6V and some are limited on the low end as well.
- TI 1G99 is a single gate 8 pin device with 60 functions intended to reduce inventory. 1G97 and 1G98 have 9 functions and 6 pins. Not a programable device, it is a 4 input device with a fixed transfer function and you select the logic function based on how you tie the inputs. The LVC version works from 1.65 to 5V and has 5V tolerant inputs. Good for high to low translation, not so good for low to high though it may do 3.3V to 5V. There are however versions with voltage suffixes that might have fixed thresholds. 1T97 and 1T98 translator versions availible (3.6V max).
- 74LVC2T45, 74LCV2T45-1.8V, 74LVC2T45-2.5V, 74LVC2T46-3.3V, 74LVC2T45-5V. Dual gate (1T versions also available) dual supply translators. Samples only as of this writing except for the one with no suffix. "Fully Configurable Dual-Rail Design Allows Each Port to Operate Over the Full 1.65-V to 5.5-V Power-Supply Range". Dual bidirectional bus transceiver with common DIR signal. 74Mbps tranlating to 1.8V, faster for higher voltages. Goes into isolation mode when either power supply is lost.
- FET clamp bus switches and Translation Voltage Clamps(TI). These are an array of symetrical fets with the gates all tied together and matched gate threshold voltages. The two busses are connected to source and drain. Voltage in either direction is clamped to the gate voltage minus the gate threshold. Either a simple external analog circuit (resistors) or an internal circuit is used to set the gate voltage. One FET is used as a reference. Internal circuits usually require one supply voltage to be less than the other. SN74TVC3010 (10 fets) and SN74TVC16222A are examples of the external bias type. One or two fewer signals than fets. These types of devices can also be used to isolate buses from each other. These are fast (Tpd 4ns) and bidirectional but when translating low to high need pullups and are only driven part of the way up before the pullup has to take over. To pass 5V through with no clamping requires an elevated supply. Versions are availible that can be connected in ways not shown on the datasheet to support any combination between 0v - 5V on either port; hint: use built in FETs for the reference circuit instead of one. If you also use a serial resistor (or the target board has one for protection), the series resistor and the pullup form a voltage divider that can give you less than ideal logic low levels. If you are receiving a signal from a driver with an active pullup but a passive pull down, it isn't going to interact well with your pullups. In any case, pullup resistors lower your input impedence. These parts can be useful for translation on a GPIO port where you have no direction signal availible. Maxim also has a variation on this. called a signal protector, with three fets in series that will protect signals to+/-40? volts; about 100 ohm series resistance and requres extra supply voltages such as +7.5V and -2.5V to bias the fets. The NXP GTL2000 looks like a pin compatible replacement for the SN74TVC16222A and the GTL2010 looks to be a pin compatible replacement for the SN74TVC16222A.
- FET clamps with boosters. boosters can get confused about who is asserting what signal and friends have had bad things to say about such devices. ST2378E is one example, but it suffers from the requrement that VCCA > VCCB. Only 13Mhz.
- bus hold type design made bidirectional, with boosters. Suppose you want to keep a bus from floating when tristated. You connect the bus to the inputs of a buffer and you connect the output of the buffer through a resistor back to the bus. Thus, the bus will be driven at whatever level it was last at until forced to another state. Put two suitable buffers with resisotrs back to back and you have a slow bidirectional voltage translator. To get around the speed, you add booster circuits (one shots with stronger drive). ADG3308 is an example. The MAX3000/3001/3002/3003 are this type, also availible in unidirectional (fixed number in each direction), but output drive is very weak (6k ohm) except when a transition occurs; 1.2 to 5.5V, some parts up to 20Mbps.
- Open drain drivers with higher voltage tolerance on outputs. Unidirectional, requires pullups.
- Analog switches. The TI LVC1G66 is a single analog switch that runs on 1.65 to 5.5V, 2ns propagation delay and 5.5 ohm on resistance. TI SN74LVC1G3157 is a SPDT analog switch, 1.65V to 5.5V, input up to 5.5V regardless of VCC (5V tolerant), Vih is 70% of VCC.
- ATE pin drivers. Fairly expensive.
- Overvoltage tolerant inputs with a suitable threshold. I have also used a logic level fet as an input translator but it does invert the signal. Getting a threshold that matches a range of logic levels can be tricky.
- Some CPLDs can work fairly well for level translation applications and provide additional functionality as well. However, they are typically limited to translating up or down one knotch. I.E. a 3.3V device such as an XC9500XL family device may work with 5V, 3.3V, and 2.5V but not 1.2V and a 2.5V device may work with 1.2V, 2.5V, and 3.3V but not 5V. Some CPLDs have separate supply voltages for different I/O ports and some are simply tolerant of higher and lower levels. XAPP785 describes level translation using the coolrunner family (3.3V max).
- Series resistors. Slow or low impedence issues. When using series resistors to down convert, make sure the device being driven has clamping diodes and that there is actually enough load on Vcc that the diodes can safely dump the current (the load on VCC may be negligable except when switching).
- Comparators, Op amps, and differential receivers. Microchip TB013has an example of using opamps and transistors to drive a signal.
- Application specific translators such as SIM/smart card shifters. The MAX1840/MAX1841 are unusual in that they do not require that one VCC be always less than the other. Not enough I/Os, though. They have two drivers and one fet clamped bidirectional line.
Also consider whether you should have opto-isolators
JTAG Level Translation的更多相关文章
- JTAG 引脚自动识别 JTAG Finder, JTAG Pinout Tool, JTAG Pin Finder, JTAG pinout detector, JTAGULATOR, Easy-JTAG, JTAG Enumeration
JTAG Finder Figuring out the JTAG Pinouts on a Device is usually the most time-consuming and frustra ...
- Multiplexing SDIO Devices Using MAX II or CoolRunner-II CPLD
XAPP906 Supporting Multiple SD Devices with CoolRunner-II CPLDs There has been an increasing demand ...
- AD8275 Driver Amplifiers For Analog-To-Digital Converters
Driver Amplifiers For Analog-To-Digital Converters What amplifiers are used to drive analog-to-digit ...
- CMSIS-DAP调试器
http://www.keil.com/support/man/docs/dapdebug/dapdebug_introduction.htm CMSIS-DAP is the interface f ...
- (转)关于ARM9协处理器CP15及MCR和MRC指令
网址:http://blog.csdn.net/zhou1232006/article/details/6150198 在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的 ...
- SPI SWD Protocol Implement
//================================================================================= // ARM SWD Mode ...
- What is CMSIS-DAP
The mbed HDK and mbed-enabled hardware support the CMSIS-DAP debug interface, which consists of an a ...
- 74HC245 74HCT245 74LV245 74LVC245 74LVC4245A 74LVC8T245 74LVC16T245 74ALVC164245
74HC245/74HCT245 The 74HC245; 74HCT245 is a high-speed Si-gate CMOS device and is pin compatible wit ...
- Linux内存初始化(二)identity mapping和kernel image mapping
一.前言 本文没有什么框架性的东西,就是按照__create_page_tables代码的执行路径走读一遍,记录在初始化阶段,内核是如何创建内核运行需要的页表过程.想要了解一些概述性的.框架性的东西可 ...
随机推荐
- python面向对象(七)属性方法的添加
通常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.下来我就讲下添加属性和方法,同时也将下限值添加属性方法. 添加属性 ...
- sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
由于业务逻辑的多样性,经常得在sql server中查询不同数据库中数据,这就产生了分布式查询的需求 现我将开发中遇到的几种查询总结如下: 1.access版本 --建立连接服务器 EXEC sp_a ...
- python 比timedelta强大的多的 relativedelta
datetime包中的timedelta功能有限,比如,一个月的delta都没法表示.dateutil包中的relativedelta要强大很多. 年月日周的delta都能支持,还有weekday, ...
- WordPress用户登录后重定向到指定页面
这篇文章将向您展示WordPress用户登录后如何重定向到指定页面或者文章的技巧. 一.重定向到网站管理面板. 将以下代码添加到您的当前主题的 functions.php 文件中: function ...
- Asp.Net MVC Razor视图引擎与My97DatePicker插件的结合
using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using System. ...
- Kylin使用笔记-1: 安装
2016年1月14日 9:57:23 星期四 背景介绍 Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最 ...
- 002 使用Appender扩展logger框架
这个地方,在看公司的源代码的时候,写的知识点: 现在再看,竟然不是太懂,重新写一份新的文档,外加示例说明. 一:说明 1.log4j 环境的三个主要组件: logger(日志记录器):控制要启用或禁用 ...
- ref:LDAP入门
ref:https://www.jianshu.com/p/7e4d99f6baaf LDAP入门 首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚.在这里给大家稍微捋一捋. 首 ...
- DDR3调试记录
FPGA采集视频数据并写到DDR3,然后从DDR3读出并送给显示终端显示.不能稳定显示.但用FPGA内部逻辑产生color bar写到DDR3后读出来显示正常.因此DDR3部分逻辑没有问题 ...
- C++雾中风景5:Explicit's better than implicit.聊聊Explicit.
关于Explicit还是Implicit一直是编程语言中能让程序员们干起架的争议.那些聪明的老鸟总是觉得Implicit的规则让他们能够一目十行,减少样板代码的羁绊.而很多时候,Implicit的很多 ...