La differenza sta nel software e nella funzionalità, che influisce notevolmente sull'hardware.
I cavi FTDI JTAG utilizzano un set di comandi per produrre segnali JTAG. Si tratta di comandi di livello molto basso, che vanno spesso nei dettagli esatti su come funziona la macchina a stati JTAG. La logica di invio dei comandi corretti per la configurazione viene eseguita sull'host di debug sul PC.
Si tratta di hardware funzionale, economico, software gratuito (GNU GCC + GDB + OpenOCD), ecc. È abbastanza flessibile (a causa del set di comandi di basso livello) che ci sono porte per il debug ARM, la programmazione FPGA o la scansione della catena JTAG generica .
I cavi commerciali sono molto più specifici di una piattaforma e spesso contengono logica all'interno del cavo. Ciò consente al programma per PC di comunicare con il dispositivo in un modo più astratto che può essere più veloce.
Ad esempio: guarda il protocollo USB JLINK . Contiene comandi come EMU_CMD_WRITE_MEM_ARM79. Anche i cavi FTDI possono eseguire questo comando, ma viene tradotto sul lato PC nei comandi JTAG di basso livello che il cavo FTDI comprende. Significa anche che il comando di alto livello (scrivere un po 'di memoria) è suddiviso in molti più comandi secondari, che JLINK può eseguire da solo sul cavo. Ciò può comportare una migliore latenza (tenendo conto delle limitazioni di USB) e / o una velocità maggiore.
Spetta anche ai fornitori commerciali IDE quali cavi supportano ed è più probabile che sia supportato un cavo commerciale. D'altra parte, è più probabile che gli IDE gratuiti supportino i cavi di debug FTDI economici.
Alcuni software commerciali contengono anche supporto per i punti di interruzione del codice del software, in cui è possibile impostare più punti di interruzione del codice di quelli consentiti dall'hardware.
L'uso della funzionalità di traccia di alcuni microcontrollori richiede un hardware molto veloce per acquisire un bus parallelo a 4 bit. L'hardware capace di questa funzione spesso contiene un FPGA per farlo.