Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Насколько нужен ресет при программировании AVR через JTAG?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Dikoy
Насколько нужен ресет при программировании AVR через JTAG? Точнее daisy chain из двух м640.
Все апноты и ДШ говорят, что не нужен. Что достаточно TMS, TCK, TDI, TDO.
Цитата
Source Reset (optional) Used to reset the target device. Connecting this pin is recommended since it allows the JTAGICE mkII to hold the target device in a reset state, which can be essential to debugging in certain scenarios - for example if the JTD bit is set by the application firmware, disabling the JTAG interface. The nSRST pin has an internal pullup resistor in the JTAGICE mkII.

Цитата
Programming through the JTAG interface requires control of the four JTAG specific pins: TCK, TMS, TDI and TDO. Control of the reset and clock pins is not required.

Насколько понимаю, ресет нужен только чтобы сбросить девайс в случае зависа или плохого старта. Что при наличии RC на ресете, по моему опыту, исключено. Но даже если такое происходит, можно тупо переткнуть питание (не удобно, конечно, но часто ли мы программируем девайс?).
Знатоки JTAG протокола, отзовитесь! Часто ли оный дёргается?
prottoss
Для программирования RESET не нужен совершенно, т.к. JTAG-инструкции AVR имеют команды устанавливать RESET-бит внутри чипа без использования внешнего вывода RESET. Читайте даташит: 28. IEEE 1149.1 (JTAG) Boundary-scan -> 28.3 Data Registers -> 28.3.3 Reset Register
Dikoy
Это я читал. Там даже где-то написано, что ресет достигается "комбинацией состояний линий TCK, TMS, TDI and TDO", только не могу найти где это было... Возможно, в хелпе студии...
Но тут промелькнула мысль, что он нужен для отладки. Не совсем понимаю, зачем (если есть команды), но вдруг?
Не хотелось бы налажать в топологии...
prottoss
нет ни каких комбинаций sm.gif есть последовательность бит которая устанавливает внутренний бит RESET и есть комбинация которая его сбрасывает.

На счет отладки не знаю, возможно и нужен... Возможно для принудительного сброса МК, если отладчик вдруг подумает что не получается сбросить МК софтово.

Но, думаю, что все таки лучше постараться вывести RESET на разъем программирования-отладки.
ILYAUL
Отладчик DRAGON , плата с Atmega128 - отключил от платы RESET JTAG . Dragon перестал видеть плату.
Dikoy
Цитата(prottoss @ Apr 15 2012, 19:46) *
нет ни каких комбинаций sm.gif есть последовательность бит которая устанавливает внутренний бит RESET и есть комбинация которая его сбрасывает.

Я знаю что такое последовательность бит wink.gif Но в доке было как раз про "комбинацию". Я тоже удивился.
Но не суть, главное что можно.

Цитата(ILYAUL @ Apr 15 2012, 20:02) *
Отладчик DRAGON , плата с Atmega128 - отключил от платы RESET JTAG . Dragon перестал видеть плату.

Это который nSRST?
Он её вообще перестал видеть, или только отладка отключилась?

Цитата(ILYAUL @ Apr 15 2012, 20:02) *
Отладчик DRAGON , плата с Atmega128 - отключил от платы RESET JTAG . Dragon перестал видеть плату.

И из под чего вы драгон заводили? Студии?
ArtemKAD
Цитата
Отладчик DRAGON , плата с Atmega128 - отключил от платы RESET JTAG . Dragon перестал видеть плату.

Аналогично с xMega256A3 с программированием. Reset понадобился ровно с того момента когда я начал в программе отключать JTAG и штатно использовать ноги которые отведены под программирование/отладку. И это не блокирование ног программатора - все четыре ноги там высокоомные (несколько кОм) входы АЦП.
Dikoy
Цитата(ILYAUL @ Apr 15 2012, 20:02) *
отключил от платы RESET JTAG .

Какой именно пин разъёма вы отключали?

Интересуюсь по тому, что есть доступ к дракону и именно его я хотел использовать для отладки на первых порах.

Цитата(ArtemKAD @ Apr 15 2012, 22:02) *
Аналогично с xMega256A3 с программированием. Reset понадобился ровно с того момента когда я начал в программе отключать JTAG и штатно использовать ноги которые отведены под программирование/отладку. И это не блокирование ног программатора - все четыре ноги там высокоомные (несколько кОм) входы АЦП.

Стоп стоп стоп... Вы, господа, меня окончательно запутали.
Повторю условия задачи.
Имею два МК atmega640 соединённых в гирлянду:

Ноги JTAG интерфейса ни к чему более не идут - только чипы и разъём. Отключать их программно не планирую (тем более что в меге, насколько знаю, из программы их и не отключишь).
Программировать планирую сначала драконом, тем более что он ещё и отладчик, потом - годзилой, если там появится поддержка гирлянд.

Нужен ли мне ресет?
Если да, то к какому пину разъёма подключать? nSRST или nTRST?
ArtemKAD
Цитата
Ноги JTAG интерфейса ни к чему более не идут - только чипы и разъём. Отключать их программно не планирую

Хм... Не могу точно сказать как себя поведет гирлянда, а вот с одним чипом на JTAG-е в таком варианте ни для отладки ни для прошивки Reset не обязателен.
_Артём_
Цитата(ArtemKAD @ Apr 15 2012, 22:48) *
Хм... Не могу точно сказать как себя поведет гирлянда, а вот с одним чипом на JTAG-е в таком варианте ни для отладки ни для прошивки Reset не обязателен.

Запросите в суппорте атмела.
Dikoy
Ну, в принципе, ресет на разъём я вывел... Правда, через 100500 переходов, ну да фиг с ним. Подключил на nSRST (сюда надо хоть?).
Спрошу еще в сапорте, как только ILYAUL ответит какой именно ресет отключал и каким софтом пользовался.
Dikoy
И ещё вопрос знатокам. С какой стороны ключ на разъёме JTAG? Земли или информационных линий?
ILYAUL
Цитата(Dikoy @ Apr 15 2012, 23:12) *
Какой именно пин разъёма вы отключали?


У драгона один RST. Studio - не сразу заметил этот вопрос. DEBUG не обнаружил плату , ну и стандартно запросил проверить питания и подключение кабеля
Shivers
Если у микросхемы есть вход TRST, его надо заводить на разьем житага и пуллапить. Если такого входа нет, значит на разъеме TRST можно бросить.

Немного информации:
TRST является сбросом машины состояний jtag. Внутри он обычно связан с блоком power_on_reset (который, подразумевается, есть в каждой микросхеме), а также может управляться извне (если есть соотв. вывод), или же сбрасываться по инструкции (используются входы TDI,TMS,TCK). Последнее время этот вывод на корпусах отсутствует, видимо из-за экономии. Но лично я сталкивался как минимум с одним случаем, когда он был нужен: некий интелловский процессор при заморозке ниже -50С переставал стартовать. Как я выяснил в ходе исследований, у процессора начинала сбоить машина состояний житага при включении питания, после чего проц переводил все IO в тристейт. Но после "вздрючки" по житагу процессор работал отлично, до следующего выключения питания. По счастью, на плате имелся внешний монитор питания. Завел от него сброс на TRST процессора, и плата начала стартовать и работать вплоть до -85С.
Dikoy
Цитата(Shivers @ Apr 16 2012, 12:56) *
Если такого входа нет, значит на разъеме TRST можно бросить.

Вот этой фразы вообще не понял sm.gif
У атмеги есть только RESET. Других ресетов не замечал. Судя по разъёму драгона, к nSRST его надо.

Цитата(ILYAUL @ Apr 16 2012, 12:49) *
У драгона один RST.

А с какой стороны ключ у разъёма драгона можете глянуть?
А то на плате контур разъёма нарисован будет, не хочется перепутать.
ILYAUL
Цитата(Dikoy @ Apr 16 2012, 18:15) *
А с какой стороны ключ у разъёма драгона можете глянуть?
А то на плате контур разъёма нарисован будет, не хочется перепутать.

Плиз
Dikoy
ну, тут ключа не нарисовано...
Полагаю, что он со стороны первого вывода, но видел вариации на эту тему...
Когда кабель надевается, в какую сторону смотрит ключ у вас? В сторону дырочкофф?
ILYAUL
Цитата(Dikoy @ Apr 16 2012, 21:42) *
ну, тут ключа не нарисовано...
Полагаю, что он со стороны первого вывода, но видел вариации на эту тему...
Когда кабель надевается, в какую сторону смотрит ключ у вас? В сторону дырочкофф?


Справой стороны разъёма JTAG есть цифры 1 JTAG 9 . В таком случае 1 - означает первый контакт разъёма JTAG/ Далее в строгом соответствии с приведёнными выше контактами (фото) можно расчитать какой контакт разъема чему соответствует.

Обычно никто этим не заморачивается. Достаточно на Вашей плате соединить контакты разъёма JTAG в соответствии с фото из поста 13 с ножками MCU и с соединить оба устройства шлейфом соблюдая соответствие контакта 1
Dikoy
Цитата(ILYAUL @ Apr 16 2012, 22:18) *
Справой стороны разъёма JTAG есть цифры 1 JTAG 9 .

Ещё раз. Ключ штекера (наплыв, пупырка и т.д.) со стороны 1-9 вывода при установке, или нет?

Понимаю, вопрос глупый и метка 1 вывода всегда на стороне ключа у IDC, но не раз встречал платы с разъёмом наоборот. от того и спрашиваю.
На вашем фото не видно ключей ни одного штекера.
У меня же условие - все разъёмы на плате под ключ, чтоб штекер наоборот нельзя было вставить.

А ноги считатья умею wink.gif
ILYAUL
Цитата(Dikoy @ Apr 17 2012, 02:37) *
Ещё раз. Ключ штекера (наплыв, пупырка и т.д.) со стороны 1-9 вывода при установке, или нет?

Да . И на драгоне и на плате защиты и на выходе на макетную плату
Dikoy
Ну и хорошо. Спасибо!
IgorKossak
На будущее. Чтобы не пытаться определить цоколёвку по левым китайским разъёмам и не позориться отсутствием умения найти нужную информацию, иногда полезно скачать каталог или описание у какой-нибудь уважающей себя фирмы, например Harting
Dikoy
Цитата(IgorKossak @ Apr 18 2012, 10:31) *
На будущее.

На будущее. Я три раза объяснил причину своего вопроса про ключ.
Если вы так свято верите в стандарты - поздравляю, розовый мир даётся не всем... Когда я работал в Германии, приходилось видеть и зеркальные ISP, и JTAG с разводкой "как удобней" и всё это в продукции именитых производителей и со стандартной маркировкой. У меня был целый пучок переходников на такие разъёмы. Если у драгона горит ИБП, почему не может быть перепутана разводка жтага или его маркировка? В первых программаторах, времён S1200, у них ресет был к земле притянут. Вместе с подтяжкой на плате создавались чудеса. Потом пофиксили, но я из такого программатора резюк выпаивал, да...
Китайские клоны STK-500 имели баг в ISP-6, при этом внешне не отличались от фирменных. Баг смешной - всего то земля с питанием перепутана. Открытие стоило трёх плат - две спалил техник, одну я.
Так что, сеньор, если вы не понимаете вопроса, это не означает, что он глупый.



Цитата(ILYAUL @ Apr 15 2012, 20:02) *
Отладчик DRAGON , плата с Atmega128 - отключил от платы RESET JTAG . Dragon перестал видеть плату.

Из сапорта атмела запросили допинформацию:

This issue seems some strange. I would like you to provide us some more details below:
- Target voltage read in AVR Studio using your AVR Dragon without nSRST connected.
- Picture to show the hardware connection of your test platform.
- Simple schematic surrounding ATmega128

These will be helpful for us to analyze.
ILYAUL
Цитата(Dikoy @ Apr 18 2012, 23:14) *
Из сапорта атмела запросили допинформацию:


Ок. В выходные постараюсь подготовить.
Dikoy
Спасибо, жду.
IgorKossak
Цитата(Dikoy @ Apr 18 2012, 22:14) *
На будущее. Я три раза объяснил причину своего вопроса про ключ.
Если вы так свято верите в стандарты - поздравляю, розовый мир даётся не всем... Когда я работал в Германии, приходилось видеть и зеркальные ISP, и JTAG с разводкой "как удобней" и всё это в продукции именитых производителей и со стандартной маркировкой. У меня был целый пучок переходников на такие разъёмы. Если у драгона горит ИБП, почему не может быть перепутана разводка жтага или его маркировка? В первых программаторах, времён S1200, у них ресет был к земле притянут. Вместе с подтяжкой на плате создавались чудеса. Потом пофиксили, но я из такого программатора резюк выпаивал, да...
Китайские клоны STK-500 имели баг в ISP-6, при этом внешне не отличались от фирменных. Баг смешной - всего то земля с питанием перепутана. Открытие стоило трёх плат - две спалил техник, одну я.
Так что, сеньор, если вы не понимаете вопроса, это не означает, что он глупый.

Какой богатый опыт! И Ваш вопрос вовсе не глупый, он злободневный. Цоколёвку и назначение компьютерных разъёмов тоже проверяйте, бывают казусы. Цоколёвку и маркировку микросхем - особенно! И ещё много на что можно напороться с Вашим то счастьем.
Будьте бдительны.
Dikoy
В том то и дело, что я не напарываюсь.
А вот людей, перепаивающих вручную серию, в которую попал фальшак или перемаркир, ибо "Цоколёвку и маркировку микросхем" не проверили, вижу регулярно. Паяло вам в руки rolleyes.gif

ILYAUL Ну шо тама?
ILYAUL
Цитата(Dikoy @ Apr 22 2012, 06:31) *
ILYAUL Ну шо тама?

Не знаю , как у Вас , у меня выходные начались снгодня с 14 часов. Но про Вас я не забыл. Так что думаю сегодня ещё получите.
ILYAUL
Извиняюсь! Сейчас начал готовить Вам материал и обнаружил свою ошибку - отлючил не RESET . Вообщем отключил RESET ( сто раз проверил , что именно его) - прогнал debug . Прошил отдельно Flash отдельно EEPROM , Fuses . И всё вместе - полёт нормальный. Так, что у меня получается , что не нужен JTAG сигнал RESET. Ещё раз извините, плиз.
Dikoy
Ну и хорошо что так sm.gif
На самом деле переыв гору документации сделал вывод, что ресет нужен лишь тогда, когда один или несколько чипов в цепочке завис/не стартанул/встал раком. Тогда программатор или юзер может сбросить всю цепь лёгким движением мыши. Ну или переткнуть питание, если ресет не выведен. Если же глюков не предвидится, то и ресет можно не вести.
Были опасения, что ваш глюк есть наследие "битых житагов" http://electronix.ru/forum/index.php?showtopic=77728 но раз ошибка не в кремнии sm.gif , то и хорошо.
defunct
Цитата(ILYAUL @ Apr 15 2012, 19:02) *
Отладчик DRAGON , плата с Atmega128 - отключил от платы RESET JTAG . Dragon перестал видеть плату.

С JtagICE и JtagICE-MKII резет точно не нужен. (на своих платах reset не развожу, JTAG вывожу на 6 штырьковую колодку для экономии места)
С драгоном так и не пробовал JTAG... пользовал его только для debugWire девайсов..
seltec
Я уже и сам понял, что "оффтопнул ножкой" wub.gif . Проблема не вышла за рамки железа. Получилоь: Пришел-Увидел-Наследил rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.