Перейти к содержанию
    

Здравствуйте!

 

Есть у меня один вопрос. На моей плате стоят процессор IDT7RC64474, плис XILINX со своими загрузочными ПЗУ. Все эти элементы, кроме процессора, соединены в цепочку JTAG. Хочу в эту же цепочку подключить так же и процессор. Загвоздка в организации управления входом TRST* процессора. Согласно даташиту, во время нормальной работы процессора на этом входе должен быть низкий логический уровень; при этом выход TDO процессора переводится в третье состояние. Это все понятно. Непонятно другое: Для нормального функционирования JTAG надо на вход TRST* процессора подать высокий логический уровень напряжения; будет ли при этом процессор нормально функционировать?

В принципе, решение вопроса уже есть: утянуть на плате TRST* через 1кОм на землю, вывести TRST* на JTAG-разъем платы, а в подключаемом к этому разъему жгуте замкнуть TRST* на +3В. Но по ряду нетехнических причин на это решение идти не очень хочется. Поэтому меня интересует: будет ли нормально работать процессор, если на вход TRST* подать +3В напрямую или через сопротивление подтянуть этот вход к +3В? Посоветуйте, как быть, плиз. Заранее спсибо за ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Единственное, что делает TRST - асинхронно полностью сбрасывает JTAG-интерфейс, переводя его автомат в состояние Test-Logic-Reset. Ни на что другое этот сигнал никакого влияния не оказывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Единственное, что делает TRST - асинхронно полностью сбрасывает JTAG-интерфейс, переводя его автомат в состояние Test-Logic-Reset.

 

Скажи, Обязательно ли перед использованием jtag сбрасывать его автомат переводом TRST* в низкий уровень?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажи, Обязательно ли перед использованием jtag сбрасывать его автомат переводом TRST* в низкий уровень?

Сигнал TRST* - асинхронный сигнал для сброса автомата состояния TAP контроллера. Есть другой способ сброса, согласно спецификации, - это удержание сигнала TMS в единице не менее чем на 5 тактов TCK. Сброс TAP контроллера обязателен всегда.

Изменено пользователем semonoff

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажи, Обязательно ли перед использованием jtag сбрасывать его автомат переводом TRST* в низкий уровень?

 

На самом деле сбросом должен заниматься контроллер, который работает на шине JTAG - т.е. программатор.

А по спецификации IEEE1149 во время перевода процессора в режим Boundary Scan (если вы его, конечно, используете) внутреннее логическое ядро процессора отключается, поэтому ни о какой нормальной работе микросхемы говорить нельзя. Но, естественно, производители любят вносить свои коррективы в этот процесс (например, TI), поэтому обращаемся к даташиту или к разработчикам напрямую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле сбросом должен заниматься контроллер, который работает на шине JTAG - т.е. программатор.

А по спецификации IEEE1149 во время перевода процессора в режим Boundary Scan (если вы его, конечно, используете) внутреннее логическое ядро процессора отключается, поэтому ни о какой нормальной работе микросхемы говорить нельзя. Но, естественно, производители любят вносить свои коррективы в этот процесс (например, TI), поэтому обращаемся к даташиту или к разработчикам напрямую.

 

Сделал все по даташиту. Сброс сделал от кнопки (замыкает TRST на ноль). Процессор перевел в reset mode (VCCOK, RESET, COLDRESET утянул через 1кОм в ноль). Цепочка программой Impact ("программатор" XILINX) определяется, но состоит она из 9 unknown devices вместо трех загрузочных ПЗУ, одной ПЛИС и одного процессора. Почему так может происходить? Сигналы TDO-TDI проходят всю цепочку без искажений формы. Остальные сигналы распаяны правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего Impact плючит. Попробуйте другие средства, если все сигналы проходят нормально, и TCK не звенит. А TRST - он опциональный - если жтаг-контроллер его не поддерживает, то подтянуть на плюс и забыть навечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего Impact плючит.

 

Спасибо за мысль. Допускаю такую возможность. Но есть еще один момент. В даташите на IDT написано: "The JTAG boundary scan should only be used when the RC64474/RC64475 is in the reset mode". Но нигде толком не написано, что это за "reset mode". Другими словами, непонятно, на какие входы сброса из трех (VCCOK, Reset, ColdReset) необходимо подать лог. "0" для переключения процессора в режим boundary scan?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А Вы рекомендации из BSDL-файла выполнили?

 

http://www.idt.com/products/getDoc.cfm?docID=5252

 

-------------------------------

-- 2. MASTERCLOCK needs to be running during JTAG operation.

-- 3. VCCOK* has to be asserted (LOW) during JTAG operation.

-------------------------------

 

А вообще - у этого проца JTAG-отладка-то наверное есть? Если да, то не в резете все равно JTAG должен работать как положено, просто не в boundary scan, а для доступа к отладке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А Вы рекомендации из BSDL-файла выполнили?

 

-------------------------------

-- 2. MASTERCLOCK needs to be running during JTAG operation.

-- 3. VCCOK* has to be asserted (LOW) during JTAG operation.

-------------------------------

 

Да, эти условия выполняются. Но JTAG32 оставлен неподсоединенным. Понадеялся на встроенный пулл-даун.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вообще - у этого проца JTAG-отладка-то наверное есть? Если да, то не в резете все равно JTAG должен работать как положено, просто не в boundary scan, а для доступа к отладке.

 

Вот и я так думаю. Что хотя бы количество микросхем в цепочке должно определяться правильно. Но этого не происходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот и я так думаю. Что хотя бы количество микросхем в цепочке должно определяться правильно. Но этого не происходит.

 

Попробуйте альтерским IDCODE ридером на байтбластере. Если уж и он не возьмет - то что-то в консерватории, скорее звон на TCK.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посятил некоторое время алгоритму определения количества и состава микросхем в JTAG-цепочке. JTAG-контроллеры всех микросхем в цепочке переводятся в состояние "TEST LOGIC RESET". В этом состоянии к TDI-TDO микросхемы подключаются регистры, содержащие ID-код микросхемы. Эти коды по цепочке передаются через все микросхемы в компьютер. И вот возникли у меня новые вопросы:

 

1. Какой регистр подключается к TDI-TDO микросхемы IDT в состоянии "TEST LOGIC RESET"?

2. Может ли этот регистр работать в режиме сдвигового регистра как на передачу, так и на прием? Или он может работать ТОЛЬКО на передачу?

 

Поможете мне это прояснить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Какой регистр подключается к TDI-TDO микросхемы IDT в состоянии "TEST LOGIC RESET"?

2. Может ли этот регистр работать в режиме сдвигового регистра как на передачу, так и на прием? Или он может работать ТОЛЬКО на передачу?

 

1. Это может прояснить лишь BSDL-файл на эту микросхему. Вариантов два - байпас или IDCODE.

3. Не то, что может на прием работать, а обязан. Иначе это будет не JTAG, а х.з. что. Любой регистр в JTAG цепочке всегда обязан передавать через себя все то, что пришло ему на TDI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

JTAG-контроллеры всех микросхем в цепочке переводятся в состояние "TEST LOGIC RESET". В этом состоянии к TDI-TDO микросхемы подключаются регистры, содержащие ID-код микросхемы.

1. Какой регистр подключается к TDI-TDO микросхемы IDT в состоянии "TEST LOGIC RESET"?

Странный вопрос. При этом Вы на него еще и сами ответили двумя строками выше...

 

У меня была подобная проблема с процессором Freescale. Там оказалось нужно правильно проинициализировать контроллер TAP. Это можно было сделать только в процессе подачи питания. При этом нужно было вначале поднять TRST в 1, потом опустить в 0, подождать минимальное время, указанное с спецификации, и потом снова вернутьTRST в 1.

Лругие варианты не работали. Пять раз TMS=1 тоже. Долго препирались с техподдержкой, ничего не добились.

Попробуйте так же, должно поучиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...