JTAG: Chips olvasása közös teszt akciócsoportos protokoll

JTAG: Reading Chips with Joint Test Action Group Protocol

A JTAG (közös teszt akciócsoport) egy széles körben alkalmazott protokoll a hibakereséshez, a programozáshoz és az integrált áramkörök (ICS) teszteléséhez. Ez lehetővé teszi, hogy a közvetlen kommunikáció a chipekkel olvassa el a memóriáját, végezzen határolási vizsgálatokat vagy firmware -t töltsön be. Ez az oktatóanyag végigvezeti Önt a JTAG chipek olvasásához való felhasználásának alapjain, beleértve a beállítást, az eszközöket és a bevált gyakorlatokat.


Mi az a JTAG?

A JTAG egy szabványosított felület (IEEE 1149.1), amely lehetőséget kínál a hardver tesztelésére és hibakeresésére a chip szintjén. Általában használják:

  • Firmware fejlesztés és hibakeresés
  • PCB -csatlakozások tesztelése
  • Villogó firmware az eszközökre
  • A memória kinyerése az IC -kből

A JTAG 4 vagy 5 tűs felületet használ:

Csap Leírás
TDI Az adatok tesztelése
Tdo Adatokat tesztel
TCK Tesztóra
TMS Test mód kiválasztása
TRST Teszt alaphelyzetbe állítás (opcionális)

Mire lesz szüksége

  1. JTAG adapter: Egy hardver eszköz, amely a chiphez (például Segger J-link, OpenOCD által támogatott adapterek) kapcsolódik.
  2. Célkészülék: Az IC vagy rendszer, amelyet el szeretne olvasni.
  3. Szoftver eszközök: A JTAG hibakeresési alkalmazások, például az OpenOCD, az URJTAG vagy a védett eszközök.
  4. JTAG pinout dokumentáció: Pinout diagram a cél eszközhöz.
  5. Csatlakozási kiegészítők: Vezetékek, fejlécek és kenyérlemez (ha szükséges).

1. lépés: A JTAG hardver beállítása

1. Határozza meg a JTAG felületet a cél eszközön

  • Lásd a JTAG csapok megtalálásához a chip adatlapját vagy a PCB -sémáját.
  • A JTAG -csapok általános címkéi között szerepel TDI, TDO, TCK, és TMS.
  • Egyes táblák JTAG fejléceket jelöltek (például 10 tűs vagy 20 tűs csatlakozók).

2. Csatlakoztassa a JTAG adaptert

  • Vezesse be az adaptert a céleszközre, megfelelve a JTAG pinoutnak:
    • TDI az adapteren csatlakozik TDI az eszközön, és így tovább.
    • Győződjön meg arról, hogy a GND csatlakozik -e az adapter és a cél között.
    • Adjon meg energiát a cél eszközhöz, ha szükséges.

3. Ellenőrizze a feszültségszintet

  • Győződjön meg arról, hogy a JTAG adapter támogatja a céleszköz feszültségszintjét (például 3,3 V vagy 1,8 V).
  • Egyes adapterek konfigurálható feszültségbeállításokkal rendelkeznek.

2. lépés: JTAG szoftveres eszközök telepítése

1.

Az OpenOCD egy nyílt forráskódú eszköz, amelyet széles körben használnak a JTAG hibakereséshez.

  • Telepítse azt a csomagkezelővel (pl. apt install openocd a linuxon).
  • Győződjön meg arról, hogy a JTAG adapterét az OpenOCD támogatja.

2. Urjtag

Könnyű eszköz a határolvasáshoz és az alapvető JTAG műveletekhez.

3. eladó-specifikus eszközök

A szabadalmaztatott adapterekhez, mint például a Segger J-link vagy a Xilinx, használja a hivatalos szoftverüket:

  • Segger J-link: Töltse le a J-link eszközöket Segger weboldala.
  • Xilinx eszközök: Használjon Vivado -t vagy ütést az FPGA hibakereséshez.

3. lépés: Adatok olvasása egy chipből

1. Konfigurálja a JTAG szoftvert

  • Hozzon létre vagy töltse be a JTAG adaptert és a céleszközt meghatározó konfigurációs fájlt.
    • Példa az OpenOCD -re:
      source [find interface/jlink.cfg]
      transport select jtag
      source [find target/stm32f4x.cfg]
      init
      halt
      

2. Detektálja a céleszközt

Futtasson egy parancsot a JTAG lánc beolvasására és a csatlakoztatott eszközök azonosításához.

  • Az OpenOCD -hez:
    openocd -f interface/jlink.cfg -f target/stm32f4x.cfg
    
    Keresse meg az észlelt eszközöket a kimeneti naplóban.

3. Memória tartalmát dobja el

A JTAG parancsok segítségével olvassa el a memória régiók olvasását:

  • Az OpenOCD -hez:
    dump_image memory.bin 0x08000000 0x10000
    
    • memory.bin: Fájl a memória dump mentéséhez.
    • 0x08000000: Kezdési cím.
    • 0x10000: Az olvasandó bájtok száma.

4. Végezzen el határolási vizsgálatokat

A határolvadások ellenőrzése Ellenőrizze az IC csapok összekapcsolhatóságát és funkcionalitását.

  • Használja az URJTAG -t vagy az OpenOCD -t a határolvasás elvégzéséhez.
  • Példa az urjtag -ban:
    cable jtagkey
    detect
    bsdl path/to/bsdl/file.bsd
    svf boundary_scan.svf
    

4. lépés: A JTAG hibakeresési bevált gyakorlatai

  1. Biztosítsa a kapcsolatot: Használjon rövid, megbízható vezetékeket a zaj minimalizálásához.
  2. Ellenőrizze a pinout -ot: Ellenőrizze duplán a JTAG PIN-csatlakozásokat, hogy elkerülje az eszköz károsodását.
  3. Biztonsági mentés firmware: A változtatások elvégzése előtt mindig készítsen biztonsági másolatot az eredeti firmware -hez.
  4. Használjon helyes szoftvert: Győződjön meg arról, hogy a használt eszköz támogatja a céleszközt.
  5. Monitor feszültség: Győződjön meg arról, hogy a cél eszköz a megfelelő feszültségszinten működik -e.

JTAG alkalmazásai

  1. Hibakeresési firmware és szoftver
  2. Új firmware vagy rendszerindító villogása
  3. Adatok kinyerése a memóriából az elemzéshez
  4. A PCB gyártási hibáinak diagnosztizálása
  5. Fordított mérnöki hardver

Hibaelhárítás

  • Az eszközt nem észlelték:

    • Ellenőrizze a vezetékeket és a pinout -ot.
    • Győződjön meg arról, hogy a céleszköz be van kapcsolva.
    • Ellenőrizze a feszültségszintek kompatibilitását.
  • JTAG hibák:

    • Győződjön meg arról, hogy a helyes konfigurációs fájl használható -e.
    • Próbálja meg csökkenteni a JTAG órasebességet, ha a kommunikáció meghibásodik.
  • Engedélyezési kérdések:

    • A Linuxon győződjön meg arról, hogy rendelkezik -e megfelelő engedélyekkel az USB -eszközökhöz való hozzáféréshez (használja sudo vagy konfigurál udev szabályok).

Következtetés

A JTAG felbecsülhetetlen értékű eszköz az alacsony szintű chipek hibakereséséhez és programozásához. A JTAG hardver és szoftver alapjainak megértésével elolvashatja a chip memóriát, hibakeresheti a firmware -t és elvégezheti a határolatokat. Kísérletezzen különböző eszközökkel és konfigurációkkal, hogy teljes mértékben felhasználhassa a JTAG -t a projektekben!

Hagyj egy megjegyzést

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.