JTAG (Gabungan Tes Aksi) adalah protokol yang banyak digunakan untuk debugging, pemrograman, dan pengujian sirkuit terintegrasi (ICS). Ini memungkinkan komunikasi langsung dengan chip untuk membaca memori, melakukan pemindaian batas, atau memuat firmware. Tutorial ini akan memandu Anda melalui dasar -dasar menggunakan JTAG untuk membaca chip, termasuk pengaturan, alat, dan praktik terbaik.
Apa itu JTAG?
JTAG adalah antarmuka standar (IEEE 1149.1) yang menyediakan cara untuk menguji dan men -debug perangkat keras di tingkat chip. Itu biasanya digunakan dalam:
- Pengembangan dan debugware firmware
- Menguji koneksi PCB
- Firmware berkedip ke perangkat
- Mengekstraksi memori dari ICS
JTAG menggunakan antarmuka 4 atau 5-pin:
Pin | Keterangan |
---|---|
Tdi | Uji data di |
Tdo | Uji data keluar |
Tck | Jam tes |
TMS | Mode Uji Pilih |
Trst | Uji reset (opsional) |
Apa yang Anda Butuhkan
- Adaptor Jtag: Perangkat perangkat keras untuk berinteraksi dengan chip (mis., Segger J-Link, adaptor yang didukung OpenOCD).
- Perangkat target: IC atau sistem yang ingin Anda baca.
- Perangkat Perangkat Lunak: Aplikasi untuk debugging JTAG, seperti OpenOCD, URJTAG, atau alat milik.
- Dokumentasi JTAG Pinout: Diagram pinout untuk perangkat target.
- Aksesori Koneksi: Kabel, header, dan papan tempat memotong roti (jika perlu).
Langkah 1: Menyiapkan perangkat keras JTAG
1. Identifikasi antarmuka JTAG pada perangkat target
- Rujuk ke lembar data chip atau skema PCB untuk menemukan pin JTAG.
- Label umum untuk pin JTAG termasuk
TDI
,TDO
,TCK
, DanTMS
. - Beberapa papan telah memberi label header JTAG (mis., Konektor 10-pin atau 20-pin).
2. Hubungkan adaptor JTAG
- Kawat adaptor ke perangkat target, cocok dengan pinout JTAG:
-
TDI
pada adaptor terhubung keTDI
di perangkat, dan sebagainya. - Pastikan GND terhubung antara adaptor dan target.
- Berikan daya ke perangkat target jika perlu.
-
3. Verifikasi level tegangan
- Pastikan adaptor JTAG mendukung level tegangan perangkat target (mis., 3.3V atau 1.8V).
- Beberapa adaptor memiliki pengaturan tegangan yang dapat dikonfigurasi.
Langkah 2: Menginstal Perangkat Perangkat Lunak JTAG
1. OpenOCD (Open on-chip debugger)
OpenOCD adalah alat open-source yang banyak digunakan untuk debugging JTAG.
- Instal menggunakan Paket Manajer Anda (mis.,
apt install openocd
di Linux). - Pastikan adaptor JTAG Anda didukung oleh OpenOCD.
2. Urjtag
Alat ringan untuk pemindaian batas dan operasi JTAG dasar.
- Instal via Situs web Urjtag.
3. Alat khusus vendor
Untuk adaptor berpemilik seperti Segger J-Link atau Xilinx, gunakan perangkat lunak resmi mereka:
- Segger J-Link: Unduh alat J-link dari Situs web Segger.
- Alat Xilinx: Gunakan vivado atau dampak untuk debugging FPGA.
Langkah 3: Membaca data dari chip
1. Konfigurasikan perangkat lunak JTAG
- Buat atau memuat file konfigurasi yang menentukan adaptor JTAG dan perangkat target.
- Contoh untuk OpenOCD:
source [find interface/jlink.cfg] transport select jtag source [find target/stm32f4x.cfg] init halt
- Contoh untuk OpenOCD:
2. Mendeteksi perangkat target
Jalankan perintah untuk memindai rantai JTAG dan mengidentifikasi perangkat yang terhubung.
- Untuk openocd:
Cari perangkat yang terdeteksi di log keluaran.openocd -f interface/jlink.cfg -f target/stm32f4x.cfg
3. Isi memori buang
Gunakan perintah JTAG untuk membaca daerah memori:
- Untuk openocd:
dump_image memory.bin 0x08000000 0x10000
-
memory.bin
: File untuk menyimpan dump memori. -
0x08000000
: Mulai alamat. -
0x10000
: Jumlah byte yang harus dibaca.
-
4. Lakukan pemindaian batas
Pemindaian batas memeriksa konektivitas dan fungsionalitas pin IC.
- Gunakan urjtag atau OpenOCD untuk melakukan pemindaian batas.
- Contoh dalam urjtag:
cable jtagkey detect bsdl path/to/bsdl/file.bsd svf boundary_scan.svf
Langkah 4: Praktik Terbaik untuk JTAG Debugging
- Amankan Koneksi: Gunakan kabel pendek dan andal untuk meminimalkan kebisingan.
- Verifikasi pinout: Periksa kembali koneksi pin JTAG untuk menghindari merusak perangkat.
- Firmware cadangan: Selalu cadangkan firmware asli sebelum membuat perubahan.
- Gunakan perangkat lunak yang benar: Pastikan alat yang Anda gunakan mendukung perangkat target.
- Pantau tegangan: Pastikan perangkat target beroperasi pada tingkat tegangan yang benar.
Aplikasi JTAG
- Debugging firmware dan perangkat lunak
- Mem -flash firmware atau bootloader baru
- Mengekstraksi data dari memori untuk analisis
- Mendiagnosis cacat manufaktur PCB
- Perangkat keras teknik terbalik
Pemecahan masalah
-
Perangkat tidak terdeteksi:
- Verifikasi kabel dan pinout.
- Pastikan perangkat target didukung.
- Periksa level tegangan untuk kompatibilitas.
-
Kesalahan Jtag:
- Pastikan file konfigurasi yang benar digunakan.
- Coba turunkan kecepatan jam JTAG jika komunikasi gagal.
-
Masalah izin:
- Di Linux, pastikan Anda memiliki izin yang tepat untuk mengakses perangkat USB (gunakan
sudo
atau konfigurasikanudev
aturan).
- Di Linux, pastikan Anda memiliki izin yang tepat untuk mengakses perangkat USB (gunakan
Kesimpulan
JTAG adalah alat yang sangat berharga untuk debugging dan pemrograman chip di level rendah. Dengan memahami dasar -dasar perangkat keras dan perangkat lunak JTAG, Anda dapat membaca memori chip, debug firmware, dan melakukan pemindaian batas. Eksperimen dengan berbagai alat dan konfigurasi untuk sepenuhnya memanfaatkan JTAG di proyek Anda!