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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

JTAG如何工作?是誰動了我的JTAG口?

凡億PCB ? 來源: FPGA技術江湖 ? 作者: FPGA技術江湖 ? 2023-12-04 07:40 ? 次閱讀

FPGA研發(fā)及學習過程中,有一個關鍵步驟就是下板實現(xiàn),做硬件“硬現(xiàn)”很重要,一般來說用JTAG口比較常見一些,因此,相信肯定有些大俠遇到過JTAG口失靈或者損壞無法使用的事情。

最近我就遇到了這類事情,F(xiàn)PGA的JTAG口突然就不能下載程序了,而且這種事情已經(jīng)不是第一次了,之前在做項目的時候也出現(xiàn)過,而且出現(xiàn)的形式也極其相似,之前還用的好好的,第二天就不行了,真是讓人郁悶。

為此,本人也是去嘗試了很多解決辦法。一開始也沒有去設想是JTAG口壞了,于是換了usb-blaster,可一點反應也沒有。難道真的是JTAG口壞了?后來,查閱相關資料去搞清楚問題的本質在哪里…… 下面就是本人的一些收獲,分享出來,僅供各位大俠參考,一起交流學習。

根據(jù)查閱資料及本人的一些實踐經(jīng)驗所得,在使用JTAG下載接口的過程中,請不要隨意帶電插拔,否則會損壞FPGA芯片的JTAG口信號管腳。那么如何去確認JTAG口已經(jīng)損壞了呢。

首先,你要去排除基本的幾項因素,一是,是否匹配連接,有很多設備會對應很多接口,在實際條件下要匹配正確,否則也會出現(xiàn)上述情況;

二是,排除下載線的問題,如果是下載線壞了,可以使用多根下載線去嘗試,排除這類問題。如果還是不能訪問FPGA的JTAG口,那么很有可能你的FPGA芯片的JTAG口已經(jīng)損壞。此時,請用萬用表檢查TCK、TMS、TDO和Tdi,是否和GND短路,如果任何一個信號對地短路則表示JTAG信號管腳已經(jīng)損壞。

至于JTAG口是什么,這里我們也來探討一下,JTAG英文全稱是 Joint Test Action Group,翻譯過來中文就是聯(lián)合測試工作組。 JTAG是一種IEEE標準用來解決板級問題,誕生于20世紀80年代。今天JTAG被用來燒錄、debug、探查端口。當然,最原始的使用是邊界測試。

1、邊界測試

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

wKgaomVtEv6AXBjlAAAP5EQwa2g764.png

2、JTAG引腳

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

TDI:測試數(shù)據(jù)輸入,數(shù)據(jù)通過TDI輸入JTAG口。

TDO:測試數(shù)據(jù)輸出,數(shù)據(jù)通過TDO從JTAG口輸出。

TMS:測試模式選擇,用來設置JTAG口處于某種特定的測試模式。

TCK:測試時鐘輸入。

TRST:測試復位。

wKgaomVtEv6AZ7B5AAASEciZR24974.png

CPU和FPGA制造商允許JTAG用來端口debug;FPGA廠商允許通過JTAG配置FPGA,使用JTAG信號通入FPGA核。

3、JTAG如何工作?

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

TMS:在每個含有JTAG的芯片內部,會有個JTAG TAP控制器。TAP控制器是一個有16個狀態(tài)的狀態(tài)機,而TMS就是這玩意的控制信號。當TMS把各個芯片都連接在一起的時候,所有的芯片的TAP狀態(tài)跳轉是一致的。

下面是TAP控制器的示意圖:

wKgaomVtEv6AaOa7AAAfrPAZ5Uk545.png

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

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

DR:TAP可以有多個DR寄存器,與IR寄存器相似,每個IR值會選擇不同的DR寄存器。

4、JTAG鏈相關疑問

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

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

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

得到JTAG鏈中的器件ID:

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

5、邊界掃描

wKgaomVtEv6AYCReAAAS72iCvNM505.png

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

wKgaomVtEv6AYDe8AAAh0zV6EBQ550.jpg

如果JTAG口已經(jīng)損壞了,那只能“節(jié)哀順變”了,但是也不要只顧著傷心,最重要的是分析其中的原因,做其他事情也是一樣的道理。那我們就來分析分析,我們在使用的過程中,可能經(jīng)常為了方便,隨意插拔JTAG下載口,在大多數(shù)情況下不會發(fā)生問題。但是,仍然會有很小的機率發(fā)生下面的問題,因為熱插拔而產(chǎn)生的JTAG口的靜電和浪涌,最終導致FPGA管腳的擊穿。

至此,也有人懷疑是否是盜版的USB Blaster或者ByteBlasterII設計簡化,去除了保護電路導致的。但經(jīng)過很多實際情況的反饋,事實證明原裝的USB Blaster 也會發(fā)生同樣的問題。也有人提出質疑是否是ALTERA的低端芯片為了降低成本,F(xiàn)PGA的IO單元沒有加二極管鉗位保護電路。這類質疑其實都不是解決問題的本質,最重要的是我們要規(guī)范操作,盡可能的去減少因為實際操作不當導致一些硬件設備、接口等提前結束壽命或“英年早逝”,那重點來了,關于JTAG下載口的使用,我們需要如何去規(guī)范操作呢。

上電時的操作流程順序:

在FPGA開發(fā)板及相關設備斷電的前提下,插上JTAG下載線接口;

插上USB Blaster或者ByteBlasterII的電纜;

接通FPGA開發(fā)板的電源

下電時的操作流程順序:

斷開FPGA開發(fā)板及相關設備的電源;

斷開USB Blaster或者ByteBlasterII的電纜;

拔下JTAG下載線接口,并放置適宜地方存儲。

雖然上述的操作步驟有點繁瑣,有時我們在使用的時候也是不以為然,但為了保證芯片不被損壞,建議大家還是中規(guī)中矩的按照上述的步驟來操作。

本人上述出現(xiàn)的問題,經(jīng)過檢測后就是TCK跟GND短路了,雖然發(fā)生的概率不是很大,但為了能夠更合理更長久的的使用硬件相關設備,還是建議大家在實操過程中,不要擔心繁瑣,中規(guī)中矩操作,換個角度思考,“多磨多練”也是對自己有好處的。

最后再嘮叨一句,關于JTAG下載口的使用最好不要帶電熱插拔,起碼可以讓JTAG口“活”的久一些,畢竟長情陪伴也是挺不錯的,不要等到失去了才知道惋惜。

作者 FPGA技術江湖公眾號 在此特別鳴謝

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

    關注

    1620

    文章

    21510

    瀏覽量

    598940
  • JTAG
    +關注

    關注

    6

    文章

    393

    瀏覽量

    71433
  • JTAG口
    +關注

    關注

    0

    文章

    6

    瀏覽量

    1739

原文標題:是誰動了我的JTAG口?

文章出處:【微信號:FANYPCB,微信公眾號:凡億PCB】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C2000 MCU JTAG 連接調試

    電子發(fā)燒友網(wǎng)站提供《C2000 MCU JTAG 連接調試.pdf》資料免費下載
    發(fā)表于 09-09 09:30 ?0次下載
    C2000 MCU <b class='flag-5'>JTAG</b> 連接調試

    Samtec小課堂 | 兩分鐘了解JTAG連接器

    摘要/前言 在回答 “什么是JTAG 連接器?”這個問題之前,讓先向大家簡要介紹一下 JTAG。 什么是JTAG? 聯(lián)合測試工作組(Joi
    發(fā)表于 08-28 13:59 ?200次閱讀
    Samtec小課堂 | 兩分鐘了解<b class='flag-5'>JTAG</b>連接器

    使用esp32-s3的USB Serial/JTAG連接linux時,找不到設備是怎么回事?

    一直以來使用uart進行燒寫,在linux和windows上都正常,這兩天嘗試了用USB Serial/JTAG,用的是官方開發(fā)板進
    發(fā)表于 06-12 07:22

    FPGA的JTAG很脆弱?以后要多加小心了

    人郁悶的不行。為了繼續(xù)讓他工作換了好幾個usb-blaster,可一點都沒見成效。難道JTAG真的壞了。上網(wǎng)百度了一下,結果發(fā)下了下面的結論,原文如下: 根據(jù)ALTERA官方FAE
    發(fā)表于 06-10 09:41

    RISCV soft JTAG調試_v1.2

    因為目前軟件的限制,RISCV的邏輯不能同時共用JTAG,所以如果想要同時去調試邏輯和RISCV的話,可以通過RISCV的soft Jtag來實現(xiàn)。soft Jtag就是通過GPIO來實現(xiàn)的軟件
    的頭像 發(fā)表于 04-23 08:38 ?743次閱讀

    RISCV soft JTAG調試_v1.1

    因為目前軟件的限制,RISCV的邏輯不能同時共用JTAG,所以如果想要同時去調試邏輯和RISCV的話,可以通過RISCV的soft Jtag來實現(xiàn)。soft Jtag就是通過GPIO來實現(xiàn)的軟件
    的頭像 發(fā)表于 02-23 16:16 ?463次閱讀
    RISCV soft <b class='flag-5'>JTAG</b>調試_v1.1

    請問UDE可以直接驅動miniWiggler JTAG嗎?

    UDE為什么可以直接驅動英飛凌AURIX開發(fā)板上自帶的usb轉JTAG,而不需要使用universal access device 硬件支持?
    發(fā)表于 02-20 07:01

    關于JTAG,你了解多少?

    ,有好的靈感以及文章隨筆,歡迎投稿,投稿請標明筆名以及相關文章,投稿接收郵箱:1033788863@qq.com。今天帶來的是“是動了JTAG
    發(fā)表于 01-19 21:19

    JTAG經(jīng)典問題解析

    請問,JTAG有5個端口,為什么Trst是可選的復位端口?
    的頭像 發(fā)表于 12-27 10:30 ?643次閱讀
    <b class='flag-5'>JTAG</b>經(jīng)典問題解析

    通過JTAG啟動Linux的方法和腳本

    存儲器(QSPI Flash,eMMC 等)上的鏡像,直接啟動到 Linux。但當板子調試時,經(jīng)常需要通過 JTAG 把 SoC 器件啟動到 Linux。這篇文章將分享通過 JTAG 啟動 Linux 的方法和腳本。
    的頭像 發(fā)表于 12-22 10:27 ?1121次閱讀
    通過<b class='flag-5'>JTAG</b>啟動Linux的方法和腳本

    【技術專欄】泰凌微電子JTAG工具使用教程(一)

    在數(shù)字電路的開發(fā)和調試過程中經(jīng)常需要用JTAG來觀察和修改芯片狀態(tài)。本篇文章將從JTAG的介紹及使用詳細步驟以來展開描述。 1 JTAG介紹 JTAG是英文“Joint Test Ac
    的頭像 發(fā)表于 12-20 10:00 ?2761次閱讀
    【技術專欄】泰凌微電子<b class='flag-5'>JTAG</b>工具使用教程(一)

    jtag接口和swd接口區(qū)別

    jtag接口和swd接口區(qū)別 JTAG (Joint Test Action Group) 接口和 SWD (Serial Wire Debug) 接口是兩種用于調試和燒錄嵌入式設備的常見接口。雖然
    的頭像 發(fā)表于 12-07 15:29 ?5501次閱讀

    JTAG仿真器接口設計

    電子發(fā)燒友網(wǎng)站提供《JTAG仿真器接口設計.pdf》資料免費下載
    發(fā)表于 11-27 10:05 ?0次下載
    <b class='flag-5'>JTAG</b>仿真器接口設計

    簡單認識JTAG接口

    JTAG接口至少包括3個輸入端口(TDI、TMS、TCK)和1個輸出端口(TDO),統(tǒng)稱測試訪問端口(TAP)。TRST可選。當TAP Controller在上電時不能復位,則TRST應當存在。
    的頭像 發(fā)表于 11-14 16:24 ?2476次閱讀
    簡單認識<b class='flag-5'>JTAG</b>接口

    JTAG在FLASH燒錄中的“江湖”

    首先,我們來看看JTAG燒錄FLASH的層次結構
    的頭像 發(fā)表于 10-19 11:35 ?1983次閱讀
    <b class='flag-5'>JTAG</b>在FLASH燒錄中的“江湖”