JTAG学习笔记 (2)

 

学习是知行循环的过程,当我们了解的一个东西,就需要通过实践的方法加深对他的认识。

这里我们利用WIGGLER的并口卡,通过并口模拟JTAG时序,对端的设备是MPC8247的板卡,我们将在逻辑分析仪上捕获的数据和TAP16个状态的状态机比对来进行分析。

 

 

下面是一个BYPASS指令:

发送的数据:

"00001111000010010000111100001111"

软件上接收到的数据:

11100001111000010010000111100000

从接受到的数据上看,发现:

1.      最后收到的数据在最高位上

2.      第一个在TDO上捕获的数据被正常的情况早了一个CLK,这个应该是软件的问题,从下面的波形上看是正确的。( 当写完下面的drScan的时候,我觉得这个不应该叫做一个错误,而是一个特性 )

 

图片URL:

http://hi.csdn.net/attachment/201002/9/3466916_12657282153Bss.jpg

 

HRESETSRESET因为没有进行控制,板卡默认上拉。

 

5CLKTMS为高,表示复位JTAG逻辑,这时候进入Test-Logic Reset状态

6CLK进入Run-Test/Idle状态,第7CLKRun-Test/Idle状态自旋一次

8CLK进入Select-DR-Scan状态

9CLK进入Select-IR-Scan状态

10CLK进入Capture-IR状态

11CLK进入Shift-IR状态

1218 CLK Shift-IR状态自旋,将BYPASS指令的前7Bits放在TDI信号线上(BYPASS 命令为81)

19 CLK进入Exit-IR状态,同时将BYPASS指令的第8Bit放在TDI信号线上(BYPASS 命令为81)

20CLK进入Update-IR状态

21CLK进入Run-Test/Idle状态,第2223CLKRun-Test/Idle状态自旋

24CLK进入Select-DR-Scan状态

25CLK进入Capture-DR状态

26CLK进入Shift-DR状态

2757(27+32-1-1)CLKShift-DR状态自旋,同时将用户数据的前31Bits放在TDI信号线上

58 CLK进入Exit-DR状态,同时将用户数据的第32Bit放在TDI信号线上

59 CLK进入Update-DR状态

60CLK进入Run-Test/Idle状态

 

其中:

CLK12CLK19放置命令字

CLK27CLK58放置用户数据

CLK28CLK59读取用户数据(软件上捕获的是CLK27CLK58

 

下面是一个drScan操作情况( 对于在菊花链上有多个设备情况下的扫描操作还不清楚 )

扫描菊花链,扫描到设备:MPC8247

 

Checking cable...

00000001100011001101000000011101

ID code database file does not exist.

 

下面这段来自于飞思卡尔提供的BSDL文件,BSDL是Boundary Scan Description Language,里面包含了IEEE规定的必须开发给用户的指令,以及每个PIN脚在扫描链上的位置(CellNum),PIN脚的功能描述,默认的电平状态等信息。

下面这段是数据寄存器IDCODE的数值。

      attribute IDCODE_REGISTER  of pq27e : entity is

          "0000"          & -- Version

          "000110"        & -- Design Center Number

          "0011001101"    & -- Sequence Number

          "00000001110"   & -- Manufacturer Identity

          "1";              -- IEEE 1149.1 Requirement

 

 

图片URL:

http://hi.csdn.net/attachment/201002/9/3466916_1265728416zZX4.jpg

 

5CLKTMS为高,表示复位JTAG逻辑,这时候进入Test-Logic Reset状态

6CLK进入Run-Test/Idle状态,第7CLKRun-Test/Idle状态自旋一次

8CLK进入Select-DR-Scan状态

9CLK进入Capture-DR状态

10CLK进入Shift-DR状态

1142CLKShift-DR状态自旋,同时IDCode寄存器内部的32Bits数据将出现在TDO的信号线上

 

从波形上可以看到因为是软件模拟出的波形,所以不是很漂亮,通过测量发现TCK的时钟在100KHz到200KHz之间。

而且在程序运行的时候CPU的占用是很高的。

你可能感兴趣的:(File,url,database,2010)