Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Кривой сигнал TDO в JTAG Zynq 7000
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Gerret
Приветствую, господа форумчане.

Если тема такая была, ткните пожалуйста носом, не смог найти...

Для начала немного о системе:

1) Использован модуль Trenz TE0720.
2) JTAG к нему подключен на прямую.
3) Программатор Digilent HS2 rev. A

Вот так выглядит сигнал TDO при программировании логической части Zynq:

Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла


Логика прошивается нормально и даже начинает работать, но при попытке запустить программу на исполнение из SDK, получаю вот такую ошибку:
Код
INFO  : Processor reset is completed for ps7_cortexa9_0
INFO  : PS initialization will be done as it is not done before.
INFO  : Running PS initialization....
ERROR : Unexpected error while launching program. java.lang.RuntimeException: Error while running ps7_init method.
Cannot write to target


    Cannot access JTAG-DP: invalid ACK value (0x00, expected=0x02)
    Error Address = 0xf8000b50


    at com.xilinx.sdk.targetmanager.internal.TM.run_ps7_init(Unknown Source)
    at com.xilinx.sdk.targetmanager.internal.TM.runPs7Init(Unknown Source)


И ПЛИС перезапускается "забывая" прописанную перед этим логическую структуру.

Подскажите, где может быть засада!
Victor®
Цитата(Gerret @ Dec 17 2013, 18:36) *
Подскажите, где может быть засада!


Первая засада в щупах осциллографа. Земля у них "длинная".
rloc
Цитата(Victor® @ Dec 17 2013, 19:43) *
Первая засада в щупах осциллографа. Земля у них "длинная".

Причем засада в щупах отражается только на фронтах, в виде всплесков. А "пила" в середине - это HS2 переводит буфера в третье состояние, а подтягивающие резисторы заряжают входную емкость, когда данных нет. Убедиться в этом можно подключив второй канал на CLK - тактов в этот момент нет. Подозреваю, что не подключен выход GPIO2 на RESET Zync.

Updated.
Ха, а у HS2 нет GPIOx, только у SMT2.
Gerret
По поводу фронтов - согласен, земля длинная, но это на передачу не может влиять, а вот пила - интереснее. Нет подтягивающих резисторов на TDO... По этому и задаю вопрос, может кто видел такое? Такты завтра посмотрю.
rloc
Сами приводили ссылку на документацию:

Цитата
The IEEE 1149.7-2009 specification requires any device that functions as a Debug and Test System (DTS) to provide a pull-up bias on the TMS and TDO pins. In order to meet this requirement, the JTAG-HS2 features weak pull-ups (100K ohm) on the TMS, TDI, TDO, and TCK signals.
Gerret
Проверил по поводу отсутствия клоков во время "пилы", к сожалению они там есть:
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
и какой уровень воспринимает JTAG в этих местах - совершенно не понятно... И не понятно, от чего такое получается, тот же программатор на покупной отладочной плате от Xilinx дает вполне нормальные сигналы без этих извращений.
Victor®
Цитата(Gerret @ Dec 18 2013, 09:11) *
Проверил по поводу отсутствия клоков во время "пилы", к сожалению они там есть:
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
и какой уровень воспринимает JTAG в этих местах - совершенно не понятно... И не понятно, от чего такое получается, тот же программатор на покупной отладочной плате от Xilinx дает вполне нормальные сигналы без этих извращений.


Как-то так нехорошо наводится TCK на TDO судя по диаграмам.
Сравните схему со схемой фирменной отладки.
Raven
Думаю, что вы не на том сосредоточились. Сосуществование активных тактов TCK и Z-state TDO - дело нормальное, такое будет встречаться, если : 1) TAP находится не в одном из двух состояний, когда он только и имеет право активно драйвить TDO (Shift-IR, Shift-DR); 2) с помощью TCK и TMS происходит перевод TAP'а из одного состояния в другое.

Наводки одного сигнала на другой - тоже в пределах нормы, тем более, что из сказанного/проэкспериментированного мы не можем различить - наводки ли это в самой наблюдаемой схеме, или на щупах наблюдения.

К тому же - раз через этот же интерфейс конфигурирование FPGA прошло хорошо, вряд ли есть проблемы на аппаратном уровне. Для начала я бы проверил, правильно ли сконфигурирована программная часть доступа к ARM TAP'у, там ли он ищется в цепочке согласно настройкам и т.д. Если есть теоретическая возможность установить контакт с этим TAP'ом (со штатными тулами, или через другие) без привязки к загрузке FPGA, или вообще как-то иначе - попробовал бы это.

Если все же подозреваете аппаратную проблему при доступе к ARM TAP'у - тогда нужно отслеживать и разглядывать опять-таки именно эти транзакции, а не конфигурирование FPGA, причем с начала, и трекая изменение состояния TAP'а (а значит, надо все входные сигналы протоколировать, а не только TCK).
_4afc_
Цитата(Gerret @ Dec 17 2013, 18:36) *
Для начала немного о системе:
1) Использован модуль Trenz TE0720.
2) JTAG к нему подключен на прямую.
3) Программатор Digilent HS2 rev. A


А разве можно напрямую подключить Digilent HS2 к Trenz TE0720?
По моему у них разъёмы не совпадают. Покажите фото как вы это сделали...

Была та же проблема на TDO с Spartan6 и HS1 - решилась укорочением переходника с 15см до 1см.


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.