Данная тема является продолжением темы http://forum.electronix.ru/index.php?showtopic=6653
Предлагаемый USB-JTAG адаптер был создан для модуля, содержащего два JTAG интерфейса. Первый содержит три PLD фирмы Altera (EPM7064S, EPM7064S, EPM7064AE). Второй содержит два DSP фирмы Analog Devices (ADSP-21062, ADSP21065).
Адаптер был создан по требованию настройщиков прибора, содержащего этот модуль. Для программирования PLD и FLASH памяти для загрузки ADSP модуля им хотелось использовать простую программу и один адаптер, а не устанавливать и осваивать два фирменных пакета (VisualDSP и Quartus) чтобы использовать фирменный эмулятор для ADSP и ByteBlaster для PLD.
Для программирования PLD EPM7064S фирмы Altera использован алгоритм, являющийся универсальным для программирования любой PLD фирмы Altera (и загрузки любой FPGA) через JTAG интерфейс. Число CPLD (FPGA) в JTAG цепочке ограничено только требованиями JTAG.
Quartus позволяет создать выходной файл для программирования CPLD (загрузки FPGA) в формате Serial Vector Format File (.svf). Файл в этом формате содержит команды JTAG для программирования/загрузки одной или нескольких CPLD/FPGA в цепочке JTAG. Программа XL_Loader преобразует JTAG-команды этого файла в команды, выполняемые USB контроллером C8051F320 фирмы SiLabs.
Это краткое описание адаптера и его программного обеспечения. Читайте исходники, задавайте вопросы, улучшайте алгоритм, исправляйте мои ошибки.