JTAG 案例
摘要:
以前看datasheet,到了JTAG一章,一直奇怪為啥需要這么多篇幅來(lái)進(jìn)行介紹。這段時(shí)間碰到兩個(gè)JTAG問(wèn)題,才把章節(jié)瀏覽了一遍。才理解了 TAP其實(shí)由TMS,TCK控制,有時(shí)候能掃描器件,但是不能下載是因?yàn)門(mén)MS,TCK是正常,但是其他信號(hào)不正常。才理解IR寄存器的 (instruction register)作用,以及長(zhǎng)度的重要性。
問(wèn)題的解決.感謝同事caijun的幫助
JTAG ISSUE
1)? 出現(xiàn)JTAG CHAIN 的問(wèn)題,問(wèn)題描述
當(dāng)進(jìn)行XILINX CPLD 的JTAG下載的時(shí)候,LATTICE PM(power management)芯片(ISPPAC-POWER1220AT8)沒(méi)有串在JTAG chain的鏈中(雖然同時(shí)接第一個(gè)TDI)。但是TDI,TMS,TCK仍然接在JTAG chain上,形成一個(gè)分叉。當(dāng)采用XILINX IMPACT進(jìn)行CPLD下載時(shí),會(huì)失敗。甚至get dvicecode也會(huì)失敗。
問(wèn)題原因:
是因?yàn)長(zhǎng)ATTICE PM的JTAG instruction 的定義和XILINX的instruction的定義不一致造成.
When program the CPLD by Xilinx software, it will read the every IC IDCODE, instruction signals come from TMS&TCK which are inputs for TAP.From Xilinx CPLD datasheet page12, read IDCODE instruction is 0000 0001.
?
and from Lattice power1220 (電源管理芯片ispPAC-POWR1220AT8)datasheet page47 JTAG instruction table, found that
?
they have a same IR(instruction register) length and TMS instruction 0000 0001? !!!!?
?
因?yàn)閘attice 的器件是一個(gè)電源管理芯片,所以會(huì)導(dǎo)致誤操作lattice器件,電源異常,從而引起FPGA的問(wèn)題.
另外,因?yàn)椴皇谴谝粋€(gè)JTAG CHAIN上,所以無(wú)法被下載軟件bypass掉
The TAP is controlled by the Test Clock (TCK) and Test Mode Select (TMS) inputs. These inputs determine whether an Instruction Register or Data Register operation is performed.
?
2) 問(wèn)題描述:
在JTAG 鏈中,有l(wèi)attice芯片和3片F(xiàn)PGA,使用chipscope的時(shí)候,出現(xiàn)FPGA異常,表現(xiàn)在initialize chain的時(shí)候,FPGA的內(nèi)容似乎被刪除,在trigger的時(shí)候,軟件也被掛死。只有close cable(把JTAG cable關(guān)閉)才能重啟
問(wèn)題解決:2011-12-19
如下圖,第一個(gè)器件是lattice的PM(電源管理芯片ispPAC-POWR1220AT8),其IR length(instruction register length)應(yīng)該填入8。原來(lái)自己亂設(shè)為10,可能就造成了LATTICE芯片的錯(cuò)誤,或者其他FPGA不可知的錯(cuò)誤。 查看lattice atasheet改為8即可。修改可在menu ,JTAG CHAIN/JTAG CHAIN SETUP。其實(shí)不是電源問(wèn)題,而是IR Length填寫(xiě)錯(cuò)誤,寫(xiě)成10后,可能就把FPGA的IR指令一并帶入受到影響,造成沒(méi)有預(yù)料的問(wèn)題。
?
JTAG設(shè)計(jì)小節(jié)
1)不要做分叉的JTAG CHAIN,把整個(gè)CHAIN串在一起,這樣可以bypass不需要的芯片。如果是分叉結(jié)構(gòu),分叉的芯片由于掃描不到,沒(méi)法做到bypass,這時(shí)雖然分叉,TDO沒(méi)有接回來(lái),但是TMS,TCK仍然接在一起,就會(huì)產(chǎn)生問(wèn)題(當(dāng)然主要是電源管理芯片)。
2)如果需要隔離一個(gè)芯片的JTAG,必須把TMS,TCK禁止掉,因?yàn)檫@兩者才是TAP的輸入信號(hào)(見(jiàn)JTAG的結(jié)構(gòu),TAP),由于不同公司的IR寄存器(instruction register)定義不一樣,所以會(huì)出現(xiàn)沖突的問(wèn)題(見(jiàn)上)。TDI也有影響。
3)對(duì)于POWER management的JTAG,要注意其輸出是否影響到整個(gè)鏈的電源,如果影響了,可以增加跳線進(jìn)行模式選擇,讓其直接返回。同樣對(duì)于FPGA,因?yàn)樯婕暗絻?nèi)置邏輯分析儀使用,建議提供模式只有FPGA的JTAG CHAIN.
4)理解JTAG的IR寄存器(instruction register),這個(gè)很多JTAG下載軟件中碰到非本公司的芯片時(shí),會(huì)要求輸入IR寄存器的長(zhǎng)度(如chipsope,lattice下載),因?yàn)閎ypass命令是全1命令,所有JTAG 需要遵守的不多的命令之一。錯(cuò)誤的IR寄存器長(zhǎng)度,會(huì)帶來(lái)意想不到的問(wèn)題。由于不同公司的IR寄存器(instruction register)定義只要遵守一些基本的定義,大部分定義不一樣,所以會(huì)出現(xiàn)沖突的問(wèn)題(見(jiàn)第一個(gè)issue)
5)Lattice 的PM 的JTAG不支持boundary scan function 。
6)有些芯片的JTAG 管腳供電電壓不是和I/O電壓一樣,有時(shí)采用核電壓,如CYPRESS QDRII+ SRAM
以上對(duì)于JTAG工程師而言比較簡(jiǎn)單,但是對(duì)于一般不關(guān)注JTAG CHAIN硬件工程師,則會(huì)有用。
轉(zhuǎn)載于:https://www.cnblogs.com/e-shannon/archive/2011/12/21/2295858.html
總結(jié)
- 上一篇: 项目总结(采用领域驱动开发方式)
- 下一篇: LVM( Logical Volume