Разница заключается в программном обеспечении и функциональности, которые сильно влияют на оборудование.
Кабели FTDI JTAG используют набор команд для формирования сигналов JTAG. Это команды очень низкого уровня, часто подробно описывающие работу и работу машины состояний JTAG. Логика отправки правильных команд для вашей настройки выполняется на хосте отладки на вашем ПК.
Это функциональное, дешевое аппаратное обеспечение, бесплатное программное обеспечение (GNU GCC + GDB + OpenOCD) и т. Д. Он достаточно гибок (из-за низкоуровневого набора команд), что есть порты для отладки ARM, программирования FPGA или общего сканирования цепочки JTAG ,
Коммерческие кабели гораздо более специфичны для платформы и часто содержат логику внутри кабеля. Это позволяет программе ПК общаться с устройством более абстрактно, что может быть быстрее.
Например: посмотрите на протокол USB JLINK . Он содержит такие команды, как EMU_CMD_WRITE_MEM_ARM79. Кабели FTDI также могут выполнять эту команду, но она преобразуется на стороне ПК в низкоуровневые команды JTAG, которые распознает кабель FTDI. Это также означает, что высокоуровневая команда (запись некоторого объема памяти) разбита на множество дополнительных подкоманд, которые JLINK может выполнять на собственном кабеле. Это может привести к лучшей задержке (принимая во внимание ограничения USB) и / или более высокой скорости.
Коммерческие поставщики IDE также могут выбирать, какой кабель они поддерживают, и, скорее всего, поддерживается коммерческий кабель. С другой стороны, более вероятно, что бесплатные IDE будут поддерживать дешевые отладочные кабели FTDI.
Некоторые коммерческие программы также содержат поддержку программных точек останова, где вы можете установить больше точек останова, чем позволяет оборудование.
Использование функции трассировки некоторых микроконтроллеров требует очень быстрого оборудования для захвата 4-битной параллельной шины. Аппаратные средства, поддерживающие эту функцию, часто содержат для этого ПЛИС.