Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: JTAG для RM9200
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Demeny
Собрал отладочную плату для RM9200, подключил Wiggler (который точно работал у меня с SAM7S64 в среде CrossWorks). А теперь CrossWorks не видит мой RM9200, пишет, что "Target not defined". Запустил программку для тестирования LPT Analyzer, пощелкал всеми выходами порта, посмотрел вход (нога 11 на LPT) - вся логика работает правильно, сигналы доходят до ножек процессора.
Запускаю в CrossWorks - "Connect" - все выходы начинают мигать - и самое главное - процессор что-то отвечает по линии TDO, ибо в LPT Analyzer-e видно, что вход 11 "моргает". Ставил самый медленный режим обмена (Divider=255).
И тем не менее - "Target not defined!".
С чего начать отладку JTAG? Какую команду можно "заслать" в процессор по JTAG-у, что называется, вручную, щелкая портами на LPT, чтобы получить от него что-то вразумительное? Может, есть какая прога, чтобы посмотреть "сырой" обмен по JTAG ? Какие необходимые условия правильности сборки надо проверить (PLL, CLK ...) ?
etoja
1. Сигнал TDO подтянуть к питанию процессора резистором 2к...10к
2. От сигнала TDO к земле поставить чип-конденсатор 100pF...300pF
3. Убедиться, что оба сигнала сброса SRST и TRST поступают от Вигглера к процессору.
Demeny
Цитата(etoja @ Dec 26 2006, 10:13) *
1. Сигнал TDO подтянуть к питанию процессора резистором 2к...10к

Все сигналы JTAG подтянуты на 3.3 вольта резисторами 10к.
Цитата(etoja @ Dec 26 2006, 10:13) *
2. От сигнала TDO к земле поставить чип-конденсатор 100pF...300pF

Попробую.
Цитата(etoja @ Dec 26 2006, 10:13) *
3. Убедиться, что оба сигнала сброса SRST и TRST поступают от Вигглера к процессору.

Поступают. TRST от ноги 6 LPT, SRST от инвертированной ноги 2 LPT, через трехвольтовые буфера, естественно. SRST - это глобальный ресет процессора(нога 115). Всё верно ?
iosifk
Цитата(Demeny @ Dec 26 2006, 10:01) *
С чего начать отладку JTAG? Какую команду можно "заслать" в процессор по JTAG-у, что называется, вручную, щелкая портами на LPT, чтобы получить от него что-то вразумительное? Может, есть какая прога, чтобы посмотреть "сырой" обмен по JTAG ? Какие необходимые условия правильности сборки надо проверить (PLL, CLK ...) ?


Есть программа Universal Scan.
Правда она работает с адаптерами Альтера-Ксайлинкс.
Через эти адаптеры можно прочесть ID микросхемы.
Если стоит софт Ксайлинкса, то там есть режим проверки JTAG, но он тоже требует своих адаптеров.
У меня на сайте есть программка в разделе о JTAG. Там можно сделать настройку под аппаратный адаптер, но я еще с Вигглером ее не проверял.
Тем не менее, можно ее запустить, установить любой тип адаптера и посмотреть Лог. Ну а потом хоть и вручную выдать такие же воздействия.
Или если хотите, пришлите мне конкретное описание Вашего адаптера - что на каком бите порта сидит, а я отошлю Вам Лог. Присылать лучше в "Личку" или на iosifk@eltech.spb.ru
И еще надо Вам посмотреть BSDL-файл на данный микроконтроллер, чтобы знать код команды чтения ID.
И еще - сигналы сброса - STRST и TRST должны быть сняты. Я пробовал на BlackFin и до тех пор пока не поставил TRST в 1, те в неактивное состояние - ID не читалось.
Удачи.
SpiritDance
Что-то у меня в cw1.6 например нет файла XXX_target.js для rm9200, да собственно в таргетах такой не обозначен. В этом файлике как раз и описывается скрипт инициализации CPU при коннекте по jtag. Может я не прав но наверно он не должен совпадать с таковым от процессора 7s64. Наверно вам придется написать собственный скриптик для инициализации. Данные для него наверно можно взять из файлов проектов для jflash. Нужные вам данные в секции CPU, под InitStepX_Value0 понимаются адреса прописываемых регистров, InitStepX_Value1 понимаются значения прописывающиеся в эти регистры.

Если удастся запустить отладку обязательно поделитесь.
Старый Бабай
может я и чущь говорю но посмотри
Target - Debug Interface Type
иногда значения слетают
должно быть ARM9TDI
etoja
SRST - сброс процессора активным низким уровнем.
Dopler
Наверное, можно установить H-JTAG и попробовать определить чип им.
Demeny
Цитата(SpiritDance @ Dec 26 2006, 10:48) *
Что-то у меня в cw1.6 например нет файла XXX_target.js для rm9200, да собственно в таргетах такой не обозначен.

Странно, у меня cw1.5 - и там в таргетах есть RM9200. Но суть уже не в этом. Продолжил запускать JTAG...
Цитата(Dopler @ Dec 26 2006, 21:06) *
Наверное, можно установить H-JTAG и попробовать определить чип им.

Установил H-JTAG, он выдает сообщение "Unable to find target.....", однако интересная вещь - на картинке под надписью "Unknown" рисует число 0x008D5EB0, я так понимаю, что это ID Code процессора, верно ? Причем число считывается устойчиво от раза к разу, не меняясь (а то мало ли сбой...)
Однако даташит вещает "ID Code value is 0x15b0203f"
Удивился, ещё раз внимательно посмотрел, тот ли процессор запаял на плату blink.gif , тот -- AT91RM9200 QU-002.
iosifk
Вашу программу тоже пробовал запустить, попытался настроить там все маски - неудачно, не считывается даже ID Code, наверное, я ещё мало понимаю в JTAG, буду пробовать разобраться и напишу Вам в личку, м. б. после Нового Года.
Кстати, всех santa2.gif
Dainis
Embedded ICE mode is selected when JTAGSEL is low. It is not possible to switch directly
between ICE and JTAG operations. A chip reset must be performed (NRST and NTRST) after
JTAGSEL is changed. The test reset input to the embedded ICE (NTRST) is provided separately
to facilitate debug of the boot program.


http://electronix.ru/forum/index.php?showtopic=25279&hl=
Demeny
Цитата(Dainis @ Dec 27 2006, 17:04) *
Embedded ICE mode is selected when JTAGSEL is low. It is not possible to switch directly
between ICE and JTAG operations. A chip reset must be performed (NRST and NTRST) after
JTAGSEL is changed. The test reset input to the embedded ICE (NTRST) is provided separately
to facilitate debug of the boot program.


http://electronix.ru/forum/index.php?showtopic=25279&hl=

Спасибо, удалось правильно опознать AT91RM9200. Дело было именно в пине JTAGSEL, после перевода джампера в положение JTAGSEL=0 процессор стал правильно опознаваться и сервером H-JTAG, и средой CrossWorks 1.5
Читая даташит на RM9200, я не сомневался, что используя Wiggler, мы используем интерфейс JTAG, поэтому даже и подумать не мог, что требуется Embedded ICE.
Однако вопрос знатокам JTAGa остался открытым. Ведь в даташите указаны ID для обоих положений JTAGSEL
Цитата
ID Code value is 0x15b0203f (JTAGSEL is HIGH)
ID Code value is 0x05b0203f (JTAGSEL is LOW)

Различие всего в 1 бите. Почему же при JTAGSEL=1 H-JTAG считывает совершенно другое значение ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.