Полная версия этой страницы:
Использование пинов JTAG
Кто нибудь пробовал заиспользовать JTAG пины как USER IO после конфигурации?
В новом Квартусе появился компонент cyclone_jtag.
Но при его подключении Квартус говорит "Error: JTAG port tck must connect to I/O pin".
Теоретически долна быть возможность использования пинов.
Ведь работает программатор флеша через JTAG и NIOS тоже через него подключается.
У кого есть какие соображения?
Цитата
Кто нибудь пробовал заиспользовать JTAG пины как USER IO после конфигурации?
выводы JTAG нельзя использовать как пользовательские.
Цитата
Ведь работает программатор флеша через JTAG и NIOS тоже через него подключается.
Для этих целей обмен ведется через jtag в чистом виде. Для подключения нескольких устройств к контроллеру jtag используется sld_hub. для более подробной информации можно посмотреть в исходники jtag_uart.
Всетаки можно похоже использовать JTAG пины. Но не все а только TCK и TMS.
См:
http://wiki.openchip.org/index.php/Altera:JTAGНо как входы они конечно не так интересны. Было бы удобно использовать как выходы, для светодиодов например, чтобы нормальные пины не занимать.
Вы не правильно поняли.
Это модуль подключения jtag. То, что "TMS(TCK) copy direct connect TMS(TCK)" не говорит о том, что вы можете использовать их как пользовательские. Эти выводы(отводы), в совокупности с прочими, необходимы для организации обмена управляющей машины с внутренностями ПЛИС.
Если, следуя вашей логике, их использовать как пользовательские, то это может привести к !невосстанавливаемым! повреждениям микросхемы и/или платы.
Понятно, что их нельзя просто так использовать. Но я думаю что TMS точно можно как вход, при условии что TCK и TDI притянуты к земле. Скорее всего можно и TCK использовать если TDI притянут к земле, но в этом уже не уверен.
А если JTAG не используется по назначению, что мешает поиметь 1 или 2 свободных пина. Хотя как я уже сказал, мне было бы лучше если бы они были выходами.
Наиболее удобно посмотреть какие пины можно использовать как пользовательские, а какие нет можно в "Assignment Editor". Там где вы обычно назначаете какому сигналу какую ножку привязать.

. Можно ещё посмотреть вкладку в Quartuse - Assignments-> Device...->Device & Pin Options...->Dual-Purpose Pins.
DSIoffe
Mar 2 2006, 07:55
Да вы чё, мужики, в натуре?
Вот у меня лежит скачанный ep2c20.pdf, Pin Information for the Cyclone™ II EP2C20 Device. Сказано практически русским языком про все JTAG выводы: Dedicated JTAG input pin или Dedicated JTAG output pin (стр. 21). И в таблице на стр. 2 для них не указано других функций, кроме JTAG. Нельзя их больше ни для чего использовать, только для JTAG. Если он не нужен, то входы заземлить. И всё.
Цитата(Tosha @ Feb 28 2006, 15:51)

В новом Квартусе появился компонент cyclone_jtag.
У кого есть какие соображения?
Вот какие есть соображения про компонент.
Есть два вида работ, выполняемых по JTAG - первая это загрузка чипа.
А вот вторая - ...
Представим, что Вы сделали в проекте "нечто" и его хотите продебажить. Но из интерфейсов у Вас подключен только JTAG. У ксайлинкса для этого есть аналогичный библиотечный компонент, который можно прицепить к проекту и читать-писать в проект через JTAG, уже после того, как загружена прошивка. Это может быть самодельный лог.анализатор, отладочно-трассировочное средство и тд.
Вот такие соображения.
А забивать JTAG под пины, вместо того, чтобы научиться делать автоматическую проверку качества монтажа или зашивки каких-либо флэшей - ну это, в переводе на ... дальше просто не пишу....
Удачи!
Ну зачем же сразу так категорично. Никто же не мешает использовать пины DCLK, DATA0, ASDO, nCSO по своему усмотрению. Они тоже Dedicated programming pins. Например удобно можно подключить параллельно несколько последовательных флешей при этом добавляя всего 1 ногу на флеш. Почему нельзя сделать то же самое и с JTAG'ом? Хотя как я уже сказал для меня в таком виде они как User IO не интересны.
DSIoffe
Mar 3 2006, 07:29
Ага, я тоже как-то подключил ASDO по своему усмотрению. Только это была ошибка в datasheet. Через пару потерянных дней я понял, что это никогда не будет работать, и так уж совпало, что поставил новую версию Квартуса. А она мне после первой же компиляции сказала, что на этот вывод сигнал подавать нельзя.
DCLK по своему усмотрению - точно нельзя, я уже разбирался. Остальные не помню, лень смотреть.
Вообще: если настолько не хватает ног, что каждый dedicated на счету, то надо брать следующий корпус. Аппетит приходит во время еды, и потом всё равно ещё что-то понадобится. Эта истина, ИМХО, будет осознана каждым после первого же проекта на ПЛИС.
А что прикажете делать, если EP1C12F324 забит под завязку так, что выкнуть ничего нельзя. При том что все что можно было вынести - порядка 70 контактов вынесено в дополнительную MAX'ину. Переходить на EP1C20 в корпусе BGA400 или вообще другое семейство?
Кстати подключать те ноги которые я перечислил точно можно (у меня они используются для переконфигурирования на ходу

), для этого нужно подключить соответствующий компонент.
Цитата
Переходить на EP1C20 в корпусе BGA400 или вообще другое семейство?
Так и надо поступить. Или же поставить EP2C20F484(у него до 315 ног свободно).
JTAG в любом случае необходимо оставить и вывести на разъем.
Цитата(Tosha @ Mar 3 2006, 11:51)

А что прикажете делать, если EP1C12F324 забит под завязку так, что выкнуть ничего нельзя.
А потом, при отладке "на объекте" понадобится добавить только один триггерок, или захотите простробировать еще одним сигнальчиком...
И вот тогда - весь проект на выброс, а фирме - кранты....
Очень, очень веселый путь для любителей адреналина...
Удачи!
Цитата(iosifk @ Mar 3 2006, 12:20)

А потом, при отладке "на объекте" понадобится добавить только один триггерок, или захотите простробировать еще одним сигнальчиком...
Вот как раз такой случай я и имел в виду. Если уже все сделано и вдруг приперло. Не переразводить же всю плату если нужно всего 1 пин добавить

Ведь можно придумать такую функцию для пина, которая JTAG'у не мешает и позволяет еще сделать что-нибудь полезное.
В общем пусть каждый останется при своем мнении. Предлагаю тему закрыть.
Цитата(Tosha @ Mar 3 2006, 13:19)

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

Ведь можно придумать такую функцию для пина, которая JTAG'у не мешает и позволяет еще сделать что-нибудь полезное.
В общем пусть каждый останется при своем мнении. Предлагаю тему закрыть.
Тогда сочувствую....
Но все же. Возможно на чипе есть Входы, на которые подаются какие-нибудь сигналы конфигурации работы, типа джамперов, на 1, на 0, или что-то в этом духе.
Тогда можно по старту-сбросу считать эти 0 и 1 во внутренний регистр, а сами эти пины использовать как выходы, конечно если они напрямую не сидят на нуле.
Или промультиплексировать какую-нибудь функцию, типа чтения ОЗУ по шине данных....
Вывод: всегда надо оставлять 4-6 пинов и выводить их на иголки, чтобы было через чего отлаживаться и потом эти сигналы использовать вот в такой ситуации, как у Вас.
Удачи!
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.