A diferença está no software e na funcionalidade, o que afeta muito o hardware.
Os cabos FTDI JTAG usam um conjunto de comandos para produzir sinais JTAG. Esses são comandos de nível muito baixo, geralmente detalhando como a máquina de estado JTAG funciona e é operada. A lógica de enviar os comandos corretos para a sua configuração é feita no host de depuração no seu PC.
É hardware funcional e barato, software livre (GNU GCC + GDB + OpenOCD), etc. É flexível o suficiente (por causa do conjunto de comandos de baixo nível) que há portas para depuração do ARM, programação FPGA ou varredura de cadeia JTAG genérica .
Os cabos comerciais são muito mais específicos para uma plataforma e geralmente contêm lógica dentro do cabo. Isso permite que o programa do PC fale com o dispositivo de uma maneira mais abstrata, o que pode ser mais rápido.
Por exemplo: veja o protocolo JLINK USB . Ele contém comandos como EMU_CMD_WRITE_MEM_ARM79. Os cabos FTDI também podem executar este comando, mas são traduzidos no lado do PC para os comandos JTAG de baixo nível que o cabo FTDI entende. Isso também significa que o comando de alto nível (grava um pouco de memória) é dividido em muitos outros subcomandos, o que o JLINK pode executar no próprio cabo. Isso pode resultar em melhor latência (levando em consideração as limitações do USB) e / ou velocidade mais alta.
Também cabe aos fornecedores comerciais de IDE quais cabos eles suportam e é mais provável que um cabo comercial seja suportado. Por outro lado, é mais provável que os IDE gratuitos suportem os cabos de depuração baratos do FTDI.
Alguns softwares comerciais também contêm suporte para pontos de interrupção de código de software, onde você pode definir mais pontos de interrupção de código do que o hardware permite.
O uso da funcionalidade de rastreamento de alguns microcontroladores requer hardware muito rápido para capturar um barramento paralelo de 4 bits. O hardware capaz desse recurso geralmente contém um FPGA para fazer isso.