Perbedaannya terletak pada perangkat lunak & fungsionalitas, yang sangat mempengaruhi perangkat keras.
Kabel JTAG FTDI menggunakan set perintah untuk menghasilkan sinyal JTAG. Ini adalah perintah tingkat yang sangat rendah, sering kali masuk ke detail yang tepat bagaimana statemachine JTAG bekerja dan dioperasikan. Logika mengirim perintah yang benar untuk pengaturan Anda dilakukan pada host debug pada PC Anda.
Ini fungsional, perangkat keras murah, perangkat lunak bebas (GNU GCC + GDB + OpenOCD), dll. Cukup fleksibel (karena set perintah tingkat rendah) sehingga ada port untuk debugging ARM, pemrograman FPGA, atau pemindaian rantai JTAG generik .
Kabel komersial jauh lebih spesifik untuk platform dan sering mengandung logika di dalam kabel. Ini memungkinkan program PC untuk berbicara dengan perangkat dengan cara yang lebih abstrak yang bisa lebih cepat.
Misalnya: lihat protokol USB JLINK . Ini berisi perintah seperti EMU_CMD_WRITE_MEM_ARM79. Kabel FTDI juga dapat mengeksekusi perintah ini, tetapi diterjemahkan pada sisi PC ke JTAG tingkat rendah yang perintah kabel FTDI pahami. Ini juga berarti perintah tingkat tinggi (tulis beberapa memori) dipecah menjadi banyak lagi sub-perintah, yang dapat dilakukan JLINK pada kabel itu sendiri. Ini dapat menghasilkan latensi yang lebih baik (dengan mempertimbangkan keterbatasan USB) dan / atau kecepatan yang lebih tinggi.
Ini juga tergantung pada vendor komersial IDE mana kabel yang mereka dukung, dan kemungkinan besar kabel komersial didukung. Di sisi lain, kemungkinan besar IDE gratis akan mendukung kabel debug FTDI murah.
Beberapa perangkat lunak komersial juga berisi dukungan untuk breakpoint kode perangkat lunak, di mana Anda dapat menetapkan lebih banyak breakpoint kode daripada yang diizinkan oleh perangkat keras.
Menggunakan fungsi jejak beberapa mikrokontroler membutuhkan perangkat keras yang sangat cepat untuk menangkap bus paralel 4-bit. Perangkat keras yang mampu fitur ini sering mengandung FPGA untuk melakukannya.