找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 12329|回复: 6

JTAG线的问题

[复制链接]
发表于 2008-12-10 22:22 | 显示全部楼层 |阅读模式
弱弱的问一下,坛子里自己DIY 100欧 并口 JTAG线 和 成品的这种JTAG线(下图)有什么区别吗?

成品的这种线可以用来刷路由吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2008-12-10 23:44 | 显示全部楼层
用起来应该没有什么区别的,这个要好很多啊!!!
 楼主| 发表于 2008-12-10 23:53 | 显示全部楼层
但是这种线有Wiggler和SDT之分,不知道我们刷无线路由应该用哪种线呢?
发表于 2008-12-11 00:10 | 显示全部楼层
网上搜了下,看看:
S3C2410简易JTAG详解 常见的JTAG cable结构都比较简单,一端是DB25,接到电脑的并口上,中间经过74HC244和一些电阻实现电平转换(5V3.3V?)(也有比较猥琐的只用了 几个100 Ohm电阻的方案),另一端的JTAG header接到目标板的JTAG interface。
并口DB25原先主要是用来连接打印机,其引脚定义如下:
25 Pin D-Sub SPP SIGNAL DIRECTION IN/OUT
1            /Strobe               In/Out
2            Data 0                Out
3            Data 1                Out
4            Data 2                Out
5            Data 3                Out
6            Data 4                Out
7            Data 5                Out
8            Data 6                Out
9            Data 7                Out
10          /ACK                   In
11         Busy                    In
12         Paper Out           In
13         Select                  In
14         /Line Feed          In/Out
15         /Error                   In
16         /INIT                     In/Out
17         /Select In             In/Out
18-25   Ground GND
可见,数据线Pin2~Pin9可以用来发送数据,Pin10~Pin13等可以用来接收数据。
JTAG的数据传输形式是串行,主要使用了以下引脚:
TDI (Test Data In)
TDO (Test Data Out)
TCK (Test ClocK)
TMS (Test Mode Select)
TRST (Test ReSeT) optional.
因此,DB25-JTAG实际上只利用了DB25的少数几根线。但由于DB25的8条数据线都可以作为output,市面上就出现了各种使用不同Pin Assignment的JTAG线。

例如Wiggler的Pin assignment:
TMS : Pin3 (D1)
TCK : Pin4 (D2)
TDI : Pin5 (D3)
TDO : Pin11 (Busy)
SRST   : Pin2 (D0)
TRST   : Pin6 (D4)
(参见Wiggler的电路图,但最后的nSRST和nTRST可能不一定用到,并且在H-JTAG中的定义也不一样,TRST是Pin2,没有SRST)
H-JTAG里还有另外一种接法--STD,定义如下:
TMS : Pin3 (D1)
TCK : Pin2 (D0)
TDI : Pin8 (D6)
TDO : Pin13 (Select)
SRST   : N/A
TRST   : Pin4 (D2)
而S3C2410的烧写程序SJF2410用的是:
TCK : Pin2 (D0)
TDI : Pin3 (D1)
TMS : Pin4 (D2)
TDO : Pin11 (Busy)
这个可以在源代码中的jtag.h文件里看到。
除了DB25那边的Pin Assignment有多种方案,JTAG connector也有20pin, 14pin, 12pin, 10pin等几种标准。这里一块ARM9开发板配的DB25-JTAG转换板就十分好玩,上面也是只有一块244,但是有Wiggler, STD, S3C2410三个20pin接口。由于20pin connector的Pin Assignment是固定的,三个接口对应的是DB25那边的三种接法,因此开发板可以根据pc上运行的程序不同选择不同的接口来接。
20Pin Connector的定义如下(参考此图):
Vcc         ← 1     2  →   NC
nTRST   ← 3     4  →   GND
TDI          ←5     6  →   GND
TMS        ←7     8  →  GND
TCK        ←9    10 →  GND
GND     ←11    12 →  GND
TDO     ←13     14 → GND
NRESET   ←15    16 → GND
NC       ←17     18  → GND
NC       ←19     20  →  GND
14Pin:
nTRST  ← 1    2 →  GND
TDI        ← 3    4 → GND
TDO      ← 5    6 →  GND
TMS       ←7    8 → GND
TCK       ←9   10 → GND
nSRST ←11  12 →  n/a
DINT    ←13   14 → Vcc
(DINT pin is used to raise Debug Interrupt. Many chips has no this pin.)
12Pin:
nTRST  ← 1    2 → GND
TDI        ← 3    4 → GND
TDO      ← 5    6 → GND
TMS      ← 7    8 → GND
TCK      ← 9   10 → GND
nSRST ←11   12 → GND
10Pin:
TCK      ← 1     2 → Vcc
TDI       ← 3      4 → Vcc
TDO     ← 5      6 → GND
TMS     ← 7      8 → GND
nTRST← 9      10 → GND
关于JTAG几个信号,在H-JTAG主页上提供了一个文档,里面有对此进行介绍:

   
……下面,让我们从TAP(Test Access Port)开始。
  TAP是一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。对整个TAP的控制是通过TAP Controller来完成的。TAP总共包括5个信号接口TCK、TMS、TDI、TDO和TRST :其中4个是输入信号接口和另外1个是输出信号接口。一般,我们见到的开发板上都有一个JTAG接口,该JTAG接口的主要信号接口就是这5个。下面,我 先分别介绍这个5个接口信号及其作用。
Test Clock Input (TCK)
TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。TCK在IEEE 1149.1标准里是强制要求的。
Test Mode Selection Input (TMS)
TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。TMS信号在TCK的上升沿有效。TMS在IEEE 1149.1标准里是强制要求的。
Test Data Input (TDI)
TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。TDI在IEEE 1149.1标准里是强制要求的。
Test Data Output (TDO)
TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动)。TDO在IEEE 1149.1标准里是强制要求的。
Test Reset Input (TRST)
TRST可以用来对TAP Controller进行复位(初始化)。不过这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。因为通过TMS也可以对TAP Controller进行复位(初始化)。
  事实上,通过TAP接口,对数据寄存器(DR)进行访问的一般过程是:
  1 通过指令寄存器(IR),选定一个需要访问的数据寄存器;
  2 把选定的数据寄存器连接到TDI和TDO之间;
  3 由TCK驱动,通过TDI,把需要的数据输入到选定的数据寄存器当中去;同时把选定的数据寄存器中的数据通过TDO读出来。
另外,可选信号nSRST的定义如下(见参考资料1):
nSRST is a "system reset" signal and acts like conventional "Reset' button.
参考资料:
[1] http://www.linux-mips.org/wiki/JTAG
[2] http://en.wikipedia.org/wiki/Jtag
[3] http://docwiki.gumstix.org/JTAG
[4] http://wiki.openwrt.org/OpenWrtD ... Hardware/JTAG_Cable
[5] http://www.bluewaternz.com/corporate/uni/unikit/jtag/
从这里明白了市场上各个板子公司的jtag接口为何有20pin, 10pin,12pin,14pin的原因。再阅读了高手
litron 的文档,http://blog.chinaunix.net/u/23070/showart.php?id=157735
把jtag.h文件改动了一下
// Pin Connections
// TCK ATA[0] (2) // my is 4   DATA[2]
// TDI ATA[1] (3) // my is 5   DATA[3]
// TMS ATA[2] (4)   //my is 3 DATA[1]
// TDO :STATUS[7] (11)
//#define TCK_H        0x01
#define TCK_H        0x04
//#define TDI_H        0x02            
#define TDI_H        0x08            
//#define TMS_H        0x04
#define TMS_H        0x02
编译,烧写,
[root@hujunlinux Jflash]# ./Jflash-s3c2410   vivi   /t=5

+------------------------------------+
|     SEC JTAG FLASH(SJF) v 0.11     +
|     modified by MIZI 2002.7.13     +
+------------------------------------+
> flashType="5"
> S3C2410X(ID=0x0032409d) is detected.
> K9S1208 is detected. ID="0xec76"

K9S1208 NAND Flash JTAG Programmer Ver 0.0
0:K9S1208 Program    1:K9S1208 Pr BlkPage 2: Exit

Select the function to test :0

[SMC(K9S1208) NAND Flash Writing Program]

Source size: 0x13a53

Available target block number: 0~4095
Input target block number:0
target start block number     =0
target size        (0x4000*n) =0x14000
STATUS:Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp

K9S1208 NAND Flash JTAG Programmer Ver 0.0
0:K9S1208 Program    1:K9S1208 Pr BlkPage 2: Exit

Select the function to test :2
jflash 可以烧写了,但是把vivi烧进去之后,运行minicom,串口没有输出,但是在windows下用
sjf2410烧写同样的一个vivi,正常运行,
碰到这个问题是因为我烧写vivi之后,
没有关闭电源,再打开板子, 只是按了一下板子上的Reset按钮,重新关闭再打开,串口就看到了vivi的启动信息。
这里提供我的Jflash源代码,
说明适合采用wiggler的jtag ,
// TCK ATA[0] (2) // my is 4   DATA[2]
// TDI ATA[1] (3) // my is 5   DATA[3]
// TMS ATA[2] (4)   //my is 3 DATA[1]
意思是TCK->pin4,也就是DATA[2],应为pin2-pin9组成了DATA,所以pin2就是DATA[0]
依次类推TDI,TMS。TDO采用的是pin11, 因为我的jtag的TDO跟litron大侠采用的是一样的,
pin11,就没管它了。
发表于 2008-12-18 10:03 | 显示全部楼层

不适合路由器使用

我有一块这样的,原来是用来烧AT87S52的,可试用在路由器上,无论是接口定义还是软件都不支持
有芯片哪种成品叫AVR ISP下载线,这种下载线加了块驱动器IC,例如74HC244 373这些,不过这种线不适合路由器的JTAG使用,第一,软件方面设计是对着单片机来做的,所以要使用的话就得调整软件上面DB25的PIN位,也就是修改软件,第二,哪块驱动器IC是要5V供电的,路由器上面的JTAG接口是3.3V的,所以要在板上做个升压电路,例如34063等等都可以,因为用于单片机的下载线都是由目标板来提供电的,用驱动器的目的是为了增加稳定性,而速度依然是很慢,如果要这样弄倒不如USB口做的下载线。
发表于 2008-12-18 15:18 | 显示全部楼层
100欧姆的电阻可以不用加,到电子城里买个并口插头,排线,针座,成本就4块钱,按图焊起来就行了,实际只用到5根线。
发表于 2008-12-18 15:52 | 显示全部楼层
理论上应该能用,下载的软件都是调用giveio那个链接库指定并口电平,那根下载线你得先看针脚对应的并口针脚是那个,要不然线就接不对了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-6-15 00:09

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表