La diferencia está en el software y la funcionalidad, que afecta enormemente al hardware.
Los cables FTDI JTAG utilizan un conjunto de comandos para producir señales JTAG. Estos son comandos de muy bajo nivel, que a menudo entran en detalles exactos sobre cómo funciona y funciona la máquina de estado JTAG. La lógica de enviar los comandos correctos para su configuración se realiza en el host de depuración en su PC.
Esto es funcional, hardware barato, software libre (GNU GCC + GDB + OpenOCD), etc. Es lo suficientemente flexible (debido al conjunto de comandos de bajo nivel) que hay puertos para depuración ARM, programación FPGA o escaneo genérico de cadenas JTAG .
Los cables comerciales son mucho más específicos de una plataforma y a menudo contienen lógica dentro del cable. Esto permite que el programa de PC hable con el dispositivo de una manera más abstracta que puede ser más rápida.
Por ejemplo: mire el protocolo USB JLINK . Contiene comandos como EMU_CMD_WRITE_MEM_ARM79. Los cables FTDI también pueden ejecutar este comando, pero se traduce en el lado de la PC a los comandos JTAG de bajo nivel que entiende el cable FTDI. También significa que el comando de alto nivel (escribir algo de memoria) se divide en muchos más subcomandos, que JLINK puede hacer en el cable. Esto puede resultar en una mejor latencia (teniendo en cuenta las limitaciones de USB) y / o mayor velocidad.
También depende de los proveedores comerciales de IDE qué cable admiten, y es más probable que se admita un cable comercial. Por otro lado, es más probable que los IDE gratuitos admitan los cables de depuración FTDI baratos.
Algunos software comerciales también contienen soporte para puntos de interrupción de código de software, donde puede establecer más puntos de interrupción de código de los que permite el hardware.
El uso de la funcionalidad de rastreo de algunos microcontroladores requiere un hardware muy rápido para capturar un bus paralelo de 4 bits. El hardware capaz de esta característica a menudo contiene un FPGA para hacerlo.