0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于JTAG口,你了解多少?

玩轉(zhuǎn)嵌入式 ? 來(lái)源:FPGA技術(shù)江湖 ? 2023-06-07 12:35 ? 次閱讀

FPGA研發(fā)及學(xué)習(xí)過(guò)程中,有一個(gè)關(guān)鍵步驟就是下板實(shí)現(xiàn),做硬件“硬現(xiàn)”很重要,一般來(lái)說(shuō)用JTAG口比較常見(jiàn)一些,因此相信肯定有些大俠遇到過(guò)JTAG口失靈或者損壞無(wú)法使用的事情。最近我就遇到了這類(lèi)事情,F(xiàn)PGA的JTAG口突然就不能下載程序了,而且這種事情已經(jīng)不是第一次了,之前在做項(xiàng)目的時(shí)候也出現(xiàn)過(guò),而且出現(xiàn)的形式也極其相似,之前還用的好好的,第二天就不行了,真是讓人郁悶。為此,本人也是去嘗試了很多解決辦法,一開(kāi)始也沒(méi)有去設(shè)想是JTAG口壞了,于是乎,本人換了usb-blaster,可一點(diǎn)反應(yīng)也沒(méi)有。難道真的是JTAG口壞了?于是,本人就去查閱相關(guān)資料去搞清楚問(wèn)題的本質(zhì)在哪里,下面就是本人的一些收獲,分享出來(lái),僅供各位大俠參考,一起交流學(xué)習(xí)。

根據(jù)查閱資料及本人的一些實(shí)踐經(jīng)驗(yàn)所得,在使用JTAG下載接口的過(guò)程中,請(qǐng)不要隨意帶電插拔,否則會(huì)損壞FPGA芯片的JTAG口信號(hào)管腳。那么如何去確認(rèn)JTAG口已經(jīng)損壞了呢。首先你要去排除基本的幾項(xiàng)因素,一是,是否匹配連接,有很多設(shè)備會(huì)對(duì)應(yīng)很多接口,在實(shí)際條件下要匹配正確,否則也會(huì)出現(xiàn)上述情況;二是,排除下載線的問(wèn)題,如果是下載線壞了,可以使用多根下載線去嘗試,排除這類(lèi)問(wèn)題。如果還是不能訪問(wèn)FPGA的JTAG口,那么很有可能你的FPGA芯片的JTAG口已經(jīng)損壞。此時(shí)請(qǐng)用萬(wàn)用表檢查T(mén)CK,TMS,TDO和Tdi是否和GND短路,如果任何一個(gè)信號(hào)對(duì)地短路則表示JTAG信號(hào)管腳已經(jīng)損壞。

至于JTAG口是什么,這里我們也來(lái)探討一下,JTAG英文全稱是 Joint Test Action Group,翻譯過(guò)來(lái)中文就是聯(lián)合測(cè)試工作組。

JTAG是一種IEEE標(biāo)準(zhǔn)用來(lái)解決板級(jí)問(wèn)題,誕生于20世紀(jì)80年代。今天JTAG被用來(lái)燒錄、debug、探查端口。當(dāng)然,最原始的使用是邊界測(cè)試。

1、邊界測(cè)試

舉個(gè)例子,你有兩個(gè)芯片,這兩個(gè)芯片之間連接了很多很多的線,怎么確保這些線之間的連接是OK的呢,用JTAG,它可以控制所有IC的引腳。這叫做芯片邊界測(cè)試。

wKgZomRnYYqABThGAAAP5EQwa2g807.png

2、JTAG引腳

JTAG發(fā)展到現(xiàn)在已經(jīng)有腳了,通常四個(gè)腳:TDI,TDO,TMS,TCK,當(dāng)然還有個(gè)復(fù)位腳TRST。對(duì)于芯片上的JTAG的腳實(shí)際上是專(zhuān)用的。

TDI:測(cè)試數(shù)據(jù)輸入,數(shù)據(jù)通過(guò)TDI輸入JTAG口;

TDO:測(cè)試數(shù)據(jù)輸出,數(shù)據(jù)通過(guò)TDO從JTAG口輸出;

TMS:測(cè)試模式選擇,用來(lái)設(shè)置JTAG口處于某種特定的測(cè)試模式;

TCK:測(cè)試時(shí)鐘輸入;

TRST:測(cè)試復(fù)位。

wKgaomRnYYuAGH4hAAASEciZR24124.png

CPU和FPGA制造商允許JTAG用來(lái)端口debug;FPGA廠商允許通過(guò)JTAG配置FPGA,使用JTAG信號(hào)通入FPGA核。

3、JTAG如何工作

PC控制JTAG:用JTAG電纜連接PC的打印端口或者USB或者網(wǎng)口。最簡(jiǎn)單的是連接打印端口。

TMS:在每個(gè)含有JTAG的芯片內(nèi)部,會(huì)有個(gè)JTAG TAP控制器。TAP控制器是一個(gè)有16個(gè)狀態(tài)的狀態(tài)機(jī),而TMS就是這玩意的控制信號(hào)。當(dāng)TMS把各個(gè)芯片都連接在一起的時(shí)候,所有的芯片的TAP狀態(tài)跳轉(zhuǎn)是一致的。下面是TAP控制器的示意圖:

wKgZomRnYYyAGVPkAAAfrPAZ5Uk899.png

改變TMS的值,狀態(tài)就會(huì)發(fā)生跳轉(zhuǎn)。如果保持5個(gè)周期的高電平,就會(huì)跳回test-logic-rest,通常用來(lái)同步TAP控制器;通常使用兩個(gè)最重要的狀態(tài)是Shift-DR和Shift-IR,兩者連接TDI和TDO使用。

IR:命令寄存器,你可以寫(xiě)值到這個(gè)寄存器中通知JTAG干某件事。每個(gè)TAP只有一個(gè)IR寄存器而且長(zhǎng)度是一定的。

DR:TAP可以有多個(gè)DR寄存器,與IR寄存器相似,每個(gè)IR值會(huì)選擇不同的DR寄存器。(很迷)

4、JTAG鏈相關(guān)疑問(wèn)

計(jì)算JTAG鏈中的IC數(shù)目:

一個(gè)重要的應(yīng)用是IR值是全一值,表示BYPASS命令,在BYPASS模式中,TAP控制器中的DR寄存器總是單bit的,從輸入TDI到輸出TDO,通常一個(gè)周期,啥也不干。

可用BYPASS模式計(jì)算IC數(shù)目。如果每個(gè)IC的TDI-TDO鏈的延遲是一個(gè)時(shí)鐘,我們可以發(fā)送一些數(shù)據(jù)并檢測(cè)它延遲了多久,那么久可以推算出JTAG鏈中的IC數(shù)目。

得到JTAG鏈中的器件ID:

大多數(shù)的JTAG IC都支持IDCODE命令。在IDCODE命令中,DR寄存器會(huì)裝載一個(gè)32bit的代表器件ID的值。不同于BYPASS指令,在IDCODE模式下IR的值沒(méi)有標(biāo)準(zhǔn)。不過(guò)每次TAP控制器跳轉(zhuǎn)到Test-Logic-Reset態(tài),它會(huì)進(jìn)入IDCODE模式,并裝載IDCODE到DR。

5、邊界掃描:

wKgaomRnYY6AWCGtAAAS72iCvNM270.png

TAP控制器進(jìn)入邊界掃描模式時(shí),DR鏈可以遍歷每個(gè)IO塊或者讀或攔截每個(gè)引腳。在FPGA上使用JTAG,你可以知曉每個(gè)引腳的狀態(tài)當(dāng)FPGA在運(yùn)行的時(shí)候??梢允褂肑TAG命令SAMPLE,當(dāng)然不同IC可能是不同的。

wKgZomRnYZCATnx-AAAh0zV6EBQ387.jpg

如果JTAG口已經(jīng)損壞了,那只能“節(jié)哀順變”了,但是也不要只顧著傷心,最重要的是分析其中的原因,做其他事情也是一樣的道理。那我們就來(lái)分析分析,我們?cè)谑褂玫倪^(guò)程中,可能經(jīng)常為了方便,隨意插拔JTAG下載口,在大多數(shù)情況下不會(huì)發(fā)生問(wèn)題。但是仍然會(huì)有很小的機(jī)率發(fā)生下面的問(wèn)題,因?yàn)闊岵灏味a(chǎn)生的JTAG口的靜電和浪涌,最終導(dǎo)致FPGA管腳的擊穿。至此,也有人懷疑是否是盜版的USB Blaster或者ByteBlasterII設(shè)計(jì)簡(jiǎn)化,去除了保護(hù)電路導(dǎo)致的。但經(jīng)過(guò)很多實(shí)際情況的反饋,事實(shí)證明原裝的USB Blaster 也會(huì)發(fā)生同樣的問(wèn)題。也有人提出質(zhì)疑是否是ALTERA的低端芯片為了降低成本,F(xiàn)PGA的IO單元沒(méi)有加二極管鉗位保護(hù)電路。這類(lèi)質(zhì)疑其實(shí)都不是解決問(wèn)題的本質(zhì),最重要的是我們要規(guī)范操作,盡可能的去減少因?yàn)閷?shí)際操作不當(dāng)導(dǎo)致一些硬件設(shè)備、接口等提前結(jié)束壽命或“英年早逝”,那重點(diǎn)來(lái)了,關(guān)于JTAG下載口的使用,我們需要如何去規(guī)范操作呢。

上電時(shí)的操作流程順序:

1.在FPGA開(kāi)發(fā)板及相關(guān)設(shè)備斷電的前提下,插上JTAG下載線接口;

2.插上USB Blaster或者ByteBlasterII的電纜;

3.接通FPGA開(kāi)發(fā)板的電源。

下電時(shí)的操作流程順序:

1.斷開(kāi)FPGA開(kāi)發(fā)板及相關(guān)設(shè)備的電源;

2.斷開(kāi)USB Blaster或者ByteBlasterII的電纜;

3.拔下JTAG下載線接口,并放置適宜地方存儲(chǔ)。

雖然上述的操作步驟有點(diǎn)繁瑣,有時(shí)我們?cè)谑褂玫臅r(shí)候也是不以為然,但是為了保證芯片不被損壞,建議大家還是中規(guī)中矩的按照上述的步驟來(lái)操作。本人上述出現(xiàn)的問(wèn)題,經(jīng)過(guò)檢測(cè)后就是TCK跟GND短路了,雖然發(fā)生的概率不是很大,但是為了能夠更合理更長(zhǎng)久的的使用硬件相關(guān)設(shè)備,還是建議大家在實(shí)操過(guò)程中,不要擔(dān)心繁瑣,中規(guī)中矩操作,換個(gè)角度思考,“多磨多練”也是對(duì)自己有好處的。最后,還是給各位嘮叨一句,關(guān)于JTAG下載口的使用最好不要帶電熱插拔,起碼可以讓JTAG口“活”的久一些,畢竟長(zhǎng)情陪伴也是挺不錯(cuò)的,不要等到失去了才知道惋惜。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598943
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119206
  • JTAG
    +關(guān)注

    關(guān)注

    6

    文章

    393

    瀏覽量

    71433
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1132

    瀏覽量

    49742

原文標(biāo)題:關(guān)于JTAG口,你了解多少?

文章出處:【微信號(hào):玩轉(zhuǎn)嵌入式,微信公眾號(hào):玩轉(zhuǎn)嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    JTAG如何工作?是誰(shuí)動(dòng)了我的JTAG

    在FPGA研發(fā)及學(xué)習(xí)過(guò)程中,有一個(gè)關(guān)鍵步驟就是 下板實(shí)現(xiàn) ,做硬件“硬現(xiàn)”很重要,一般來(lái)說(shuō)用JTAG比較常見(jiàn)一些,因此,相信肯定有些大俠遇到過(guò)JTAG失靈或者損壞無(wú)法使用的事情。
    的頭像 發(fā)表于 12-04 07:40 ?959次閱讀
    <b class='flag-5'>JTAG</b>如何工作?是誰(shuí)動(dòng)了我的<b class='flag-5'>JTAG</b><b class='flag-5'>口</b>?

    關(guān)于簡(jiǎn)單JTAG電纜,如何提高JTAG下載速度

    JTAG標(biāo)準(zhǔn)決定,通過(guò)JTAG寫(xiě)/讀一個(gè)字節(jié)要一系列的操作,根據(jù)我的分析,使用簡(jiǎn)單JTAG電纜,利用打印,通過(guò)JTAG輸出一個(gè)字節(jié)到目標(biāo)
    的頭像 發(fā)表于 06-15 09:06 ?1.1w次閱讀

    一文詳細(xì)了解JTAG接口

    在FPGA研發(fā)及學(xué)習(xí)過(guò)程中,有一個(gè)關(guān)鍵步驟就是下板實(shí)現(xiàn),做硬件“硬現(xiàn)”很重要,一般來(lái)說(shuō)用JTAG比較常見(jiàn)一些,因此相信肯定有些大俠遇到過(guò)JTAG失靈或者損壞無(wú)法使用的事情。最近我就
    發(fā)表于 07-20 09:15 ?1.2w次閱讀

    關(guān)于JTAG,了解多少?

    ,排除這類(lèi)問(wèn)題。如果還是不能訪問(wèn)FPGA的JTAG,那么很有可能的FPGA芯片的JTAG已經(jīng)損壞。此時(shí)請(qǐng)用萬(wàn)用表檢查T(mén)CK,TMS,T
    發(fā)表于 01-19 21:19

    關(guān)于高清信號(hào)的靜電防護(hù)方案了解嗎?

    關(guān)于高清信號(hào)的靜電防護(hù)方案了解嗎?下面介紹一下:高清信號(hào)靜電防護(hù)方案描述:隨著芯片處理器設(shè)計(jì)技術(shù)的發(fā)展,高速信號(hào)傳輸技術(shù)已越來(lái)越成熟,
    發(fā)表于 11-15 10:44

    FPGA的JTAG為什么容易損壞?

    現(xiàn)象: 在排除了下載線的問(wèn)題后,還是不能訪問(wèn)FPGA的JTAG,那么很有可能的FPGA芯片的JTAG已經(jīng)損壞。此時(shí)請(qǐng)用萬(wàn)用表檢查T(mén)CK
    發(fā)表于 05-31 07:01

    如何去使用JTAG?使用JTAG需要注意什么事項(xiàng)?

    AVR單片機(jī)使用JTAG作為普通I/O的方法有哪幾種?JTAG的配置方式是什么?如何去使用JTAG
    發(fā)表于 07-07 06:22

    今日說(shuō)“法”:是誰(shuí)動(dòng)了我的JTAG

    ,排除這類(lèi)問(wèn)題。如果還是不能訪問(wèn)FPGA的JTAG,那么很有可能的FPGA芯片的JTAG已經(jīng)損壞。此時(shí)請(qǐng)用萬(wàn)用表檢查T(mén)CK,TMS,T
    發(fā)表于 05-19 19:47

    JTAG及其對(duì)Flash的在線編程

    通過(guò)JTAG 實(shí)現(xiàn)對(duì)Flash 在線編程。首先, 介紹JTAG 的定義、結(jié)構(gòu)及引腳的定義, 并闡述JTAG 狀態(tài)機(jī)的工作原理。然后,介紹JTAG
    發(fā)表于 04-16 10:00 ?61次下載

    LM3S系列單片機(jī)JTAG解鎖應(yīng)用筆記

    LM3S系列單片機(jī)JTAG解鎖應(yīng)用筆記 介紹LM3S系列單片機(jī)的JTAG被設(shè)置為GPIO后,恢復(fù)JTAG功能的方法。
    發(fā)表于 04-07 16:20 ?52次下載

    JTAG仿真電路設(shè)計(jì)

    JTAG接口都滿足IEEE 1149.1的標(biāo)準(zhǔn)。滿足IEEE 1149.1標(biāo)準(zhǔn)的14腳JTAG接口如圖1所示。 圖1 14腳仿真引腳 一般情況下,最小系統(tǒng)板需要引出雙排的14腳插針和圖2所示的一致
    發(fā)表于 12-02 09:46 ?1043次閱讀
     <b class='flag-5'>JTAG</b>仿真<b class='flag-5'>口</b>電路設(shè)計(jì)

    嵌入式JTAG接口了解多少

    JTAG是串行接口,使用打印的簡(jiǎn)單JTAG電纜,利用的是打印的輸出帶鎖存的特點(diǎn),使用軟件通過(guò)I/O產(chǎn)生JTAG時(shí)序。
    發(fā)表于 10-18 11:47 ?2240次閱讀

    如何檢查JTAG的FPGA管腳是否被擊穿?

    最關(guān)鍵的是現(xiàn)在出現(xiàn)了在ISE上找不到設(shè)備的情況,不知道是我焊接的不牢固還是我?guī)щ姴灏伟?b class='flag-5'>JTAG燒壞。
    發(fā)表于 03-15 10:31 ?5208次閱讀
    如何檢查<b class='flag-5'>JTAG</b><b class='flag-5'>口</b>的FPGA管腳是否被擊穿?

    什么是JTAG?今日帶你深度了解JTAG

    在FPGA研發(fā)及學(xué)習(xí)過(guò)程中,有一個(gè)關(guān)鍵步驟就是下板實(shí)現(xiàn),做硬件“硬現(xiàn)”很重要,一般來(lái)說(shuō)用JTAG比較常見(jiàn)一些,因此相信肯定有些大俠遇到過(guò)JTAG失靈或者損壞無(wú)法使用的事情。
    的頭像 發(fā)表于 03-17 14:05 ?1.2w次閱讀
    什么是<b class='flag-5'>JTAG</b><b class='flag-5'>口</b>?今日帶你深度<b class='flag-5'>了解</b><b class='flag-5'>JTAG</b><b class='flag-5'>口</b>

    探討一下JTAG是什么?

    根據(jù)查閱資料及本人的一些實(shí)踐經(jīng)驗(yàn)所得,在使用JTAG下載接口的過(guò)程中,請(qǐng)不要隨意帶電插拔,否則會(huì)損壞FPGA芯片的JTAG口信號(hào)管腳。那么如何去確認(rèn)JTAG已經(jīng)損壞了呢。首先
    的頭像 發(fā)表于 07-26 09:29 ?1106次閱讀