Функция Probe как пользоваться?

  • Автор темы Автор темы Winsent
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
29/5/06
62
8
0
0
собственно весь вопрос в названии
инструкцию прочитал, но в аниглийском не силен потому прошу помощи

как сделать кабель для поиска контактов jtag ?
то что с rj45 6 контакт через 10кОм на иголку понятно, а дальнейшие действия?


есть пара мертвых модемов nowatel eu870 mini-pci-ex хотелось бы на них опробовать
 
Если есть возможность, то желательно переправить их в Крым к balu_dark
 
Всё-таки очень хочется узнать у специалистов как они работают с этой функцией. Не все могут отправить свой тлф в Крым... Кстати, проблемы с i9003, нет поддержки и не скоро будет.
 
Здравствуйте!
Напишу как искал пинаут на ZTE MF170 (инструкция в RIFF-е идет английском, поэтому может кому пригодится). Добавлю от себя что в MF170 dll напряжение стоит 2.6В хотя у этого проца - уровни 1.8В
Я использовал готовый RJ45 шнурок-папу в котором были проводки на 6м и 8м контактах. Не нужное - отрезал, а к "6му" проводку припаял иголку, и к 8му - корпус (хотя его даже не подключал так как земля шла общая через ЮСБ шнурок (RIFF и модем подключены к одному компу, значит и земля более-менее общая)
2. Разбираем модем - в нем видна группа контактов:
оооооооо
оооооооо
ооо
3. Пронумеровываем их и подготавливаем пустой текстовый файлик, подключаем модем к ЮСБ и предварительно тестером замеряем напряжения на каждой площадке, все это записываем в файлик. У меня получилось такое:
1 - 0В
2 - 0В
3 - 3.77В
4 - 3.77В
5 - 0В
6 - 0В
7 - 1.78В
8 - 0В
9 - 0В
10 - 1.70В
11 - корпус
12 - 1.71В
13 - 0В
14 - 1.71В
15 - 4.93В
16 - 0В
17 - 0В
18 - корпус
19 - корпус
Теперь все сомнения отпали - никакая тут не 2.6 логика а 1.8-товая. Плюс стало видно что 3,4 и 15 площадки никакого отношения к джитагу не имеют (по крайней мене - я таких уровней логики не знаю)
4. Теперь в софте бокса ставим Custom Target settings и выбираем Voltage = 1.8В и щелкаем на кнопку Start Probing
6. Ставим иголку на первую площадку - софт показывает probe0=0.75V, probe1=1.58V
7. Иголку на вторую площадку - софт пишет probe0=0.00 и probe1 = 1.68
8. 3,4 - вообще пропускаем. И так далее, короче меряем все 19 площадок. В результате у меня получилось:
1 - p0=0.75, p1=1.58
2 - p0=0.00, p1=1.68 - наверное trst
5 - p0=0.00, p1=1.78 - явно tdo
6 - p0=0.00, p1=0.00 - rtck
7 - p0=1.78, p1=1.80 -
8 - p0=0.00, p1=1.11 -
9 - p0=0.00, p1=1.68 - наверное trst
10 - p0=0.11,p1=1.78 - tdi,tms или tck
11 - корпус
12 - p0=0.11,p1=1.78 - tdi,tms или tck
13 - p0=0.00,p1=1.68 - наверное trst
14 - p0=0.11,p1=1.78 - tdi,tms или tck
16 - p0=0.00,p1=1.10
17 - p0=1.39,p1=1.38
18,19 - корпус
P.S. Функцю площадки я определял по аналогии с тем как написано в английской документации - trst ставят без подтяжек поэтому второе значение - probe1 обычно проседает слегка ниже заданного уровня (тут - 1.8В), tdi, tms и tck - c подтяжками, поэтому probe0 должен быть чуть выше нуля, rtck - выход поэтому он удерживает 0, tdo - откл. (high-impedance) поэтому когда иголкой дотрагиваемся - это никак не влияет на измерения (как будто площадка висит в воздухе)
9. Теперь можно припаять с большой вероятностью площадки 5,6 и корпус к соответствующим контактам на боксе. По инструкции чтобы найти tck надо проверить подозрительные площадки - здесь tck может быть на 10й, 12й или 14й площадке. Но в мануале еще надо знать наверняка trst - а здесь их целых 3 возможных - 2, 9 или 13-я площадка. Но это не очень страшно, просто надо в худшем случае 3 раза перепять trst.
Итак, в программе закрываем окошко probing и переходим на страницу JTAG read write, ставим частоту JTAG TCK Speed = RTCK, Custom Target Settings, Voltage = 1.8V
Припаиваем иголку к tck контакту на боксе, а trst сигнал с бокса - припаиваем к площадке 2 (предположим что trst это она).
Теперь ставим иголку на 10-ю площадку - и не отпуская - нажимаем в софте на Analize JTAG Chain - в ответ

Connecting to the target...ERROR
ERROR: The RTCK Signal does not respond.

иголку на 12-ю площадку - и не отпуская - нажимаем на Analize JTAG Chain - в ответ тоже самое
иголку на 14-ю площадку - и не отпуская - нажимаем на Analize JTAG Chain - в ответ тоже самое
Ни разу tck не прошло а значит trst это не 2я площадка. Пробуем 9ю площадку - перепаиваем trst от бокса на нее и снова 3 раза ищем tck дотрагиваясь иголкой на 10, 12 и 14 площадки. Снова неудача.
Осталось припаять trst на 13-ю площадку и снова повторить 3 раза поиск tck - и опа! с первой попытки когда иголка была на 10-й площадке получаем:

Connecting to the target...ERROR
None was found.

Значит tck проходит на rtck и джитаг работает - теперь наверняка известны trst,rtck и tck (плюс tdo - почти 99% это 5 площадка, по крайней мене других вариантов нет). Теперь можно отпаять иголку и припаять tck напрямую на площадку 12.

Остается определить 2 сигнала: tms и tck - это 12 и 14я площадки или наоборот, 14я и 12я. Для этого первой попыткой паяем tdi с бокса на 14ю, tms с бокса - на 12ю площадку, нажимаем Analize JTAG chain и получаем:

Connecting to the target...ERROR
None was found.

значит надо наоборот - tdi с бокса на 12ю, tms с бокса - на 14ю площадку. После этого снова жмем Analize JTAG chain и о чудо!

Connecting to the target...OK
Set I/O Voltage reads as 1.80V, TCK Frequency is RTCK

Following devices are found on the JTAG chain:
Device on TAP #0: ID = 0x4015E0E1, IR Length = 0x04 bits
Total IR length: 0x0004 bits

Все работает, осталось только найти оставшийся сигнал - NRST
Отметим на самой первой таблице с измеренными напряжениями уже известные сигналы:
1 - 0В
2 - 0В
3 - 3.77В
4 - 3.77В
5 - 0В - TDO
6 - 0В - RTCK
7 - 1.78В -
8 - 0В
9 - 0В
10 - 1.70В - TCK
11 - корпус
12 - 1.71В - TDI
13 - 0В
14 - 1.71В - TRST
15 - 4.93В
16 - 0В
17 - 0В
18 - корпус
19 - корпус

Сигнал сброса системы - активный при уровне 0, значит он должен быть в свободном состоянии равен уровню 1 (=1.8В). Здесь - это вообще исключает любые варианты, площадка которая удовлетворяет этому условию - только одна - 7я площадка. Паяем NRST с бокса на эту площадку. Дополнительно ставим в настройках софта - Target = ARM926 и TAP#=0 пробуем нажимать Reset the Target несколько раз подряд и действительно ресет работает, так как после каждого нажатия пишет что-то типа такого:

Resetting target...OK
STATUS: Target is halted.

R0 = 0x00000010 R6 = 0x00002020 R12 = 0x00004023
R1 = 0x60008000 R7 = 0x00000050 R13 = 0x78017D08
R2 = 0x00000024 R8 = 0x780004A4 R14 = 0x80002000
R3 = 0x000F4240 R9 = 0x00000000 R15 = 0xFFFF0020
R4 = 0x00000000 R10 = 0x00000004 CPSR = 0x000000D3
R5 = 0x00000000 R11 = 0x60008000
 
Спасибо за описание метода! Кстати, "специалисты" с похожего форума, советуют пользоваться мультиметром с высоким входным сопротивлением, каким пользуешься? Уменя на 1мОм, простенький, вот и думаю покупать или нет более серьёзный...
 
Последнее редактирование:
тестер здесь по большому счету нужен только лишь чтоб померять напряжения на площадках - чтоб просто "грубо" отбросить не нужные (как в случае с MF170 - 3.77В и 4.95В) поэтому думаю все что может мерять напряжения в пределах от 0 до 5в подойдет. Погрешность здесь роли не играет никакой (если она конечно не 200%-ная :) )
 
сегодня опробывал этот метод на В2710 РАБОТАЕТ СПАСИБО
 
Хотел тоже воспользоваться данным методом чтобы оживить точку доступа D-Link G730AP на платформе ARM9 чипсет Marvell 88W8000-NNC. На плате есть непромаркированные площадки похожие на JTAG, но проведя контрольный замер на всех стоит 3.3В и на одной 2.5В. На плате есть микросхемы стабилизаторов питания этих напряжений. При включении горит только светодиод Power. Как в таком случае использовать Probe или пациент уже слишком мертв?
 
А с Marvela-ми все хуже - у них нету RTCK сигнала поэтому все усложняется. Тут разве что если площадок не так уж много - попробуйте все иголкой замерить и сопоставить с данными PXA312 Самсунга i900 (это единственное приведено в инструкции на Probing):

TRST = 1.92/3.30
TDI=0.34/3.30
TMS=0.34/3.30
TCK=0.05/1.65
TDO=0.00/3.28
NRST=0.44/3.26

Без RTCK никак не выявить со 100% гарантией TCK сигнала, а это в свою очередь усложняет все остальное.
Но вы попробуйте, сделайте измерения - может у вас совпадут показания как и в i900-м Самсунге и получится с минимумом телодвижений подобрать пинаут
 
Деваться некуда, попробую в инете поискать и через probing.
А какие установки в софте RiffBox выставлять для работы с моим трупом на Marvell?

---------- Сообщение добавлено в 20:42 ---------- Предыдущее сообщение было от в 12:08 ----------

И еще вопрос в самом начале pdf-ки RIFF BOX JTAG:Probe показан резистор 10кОм. Если делать самому шнур для поиска неизвестной разводки сигналов JTAG его надо ставить или он уже присутствует на 6 ноге разъема RJ-45 ?
 
Насколько я понимаю то функция Probe заложена в софт RiffBox и он показывает напряжение на неизвестной площадке при подаче на него логического 0 или 1.
Глядя опять же на pdf-ку RIFF BOX JTAG:Probe там нарисовано два контакта уходят налево, верхний PRB_LEVEL "0" or "1" через резистор 10к должен уйти на 6 ногу RJ-45, правый на иголку которой тыкать в неизвестные площадки, а левый нижний "To voltage measurer (ADC)" куда? Еще мультиметр что ли подключать?

И вообще чтобы не мучить никого подобными вопросами ткните в страницу мануала где написано как распаять щуп для Probe.

---------- Сообщение добавлено в 22:26 ---------- Предыдущее сообщение было от в 22:09 ----------

и желательно с чтобы была ссылка на ноги разъема RJ-45, он как то незаслуженно опущен в доке а точнее написано, цитирую FAQ "Вопрос: на лицевой части есть разъёмы под названием RJ45 и USB. Зачем они? Ответ: Эти разъёмы в настоящее время не используются по прямому назначению. Зарезервированы для использования в будущем. "

Похоже будущее наступило, пора бы привести его распиновку и подправить ответ в FAQе
 

Прочитайте внимательно пост #4 - там подробно описано как что куда подключать и как этим пользоваться на конкретном примере. Иголка напрямую подключается к 6 пину разъема RJ-45 (схема с резисторами которая у них в PDF - она встроена внутри бокса)

А по поводу распиновки RJ-45 - так ведь на странице Resurrection есть кнопка RIFF JTAG Pinout - там все расписано отлично

Вам надо поставить напряжение JTAG I/O Voltage = 3.3V
 
Спасибо, вот теперь ясно. Да это все я читал, только вот попался мне альтернативный источник "http://forum.**************/vbb/f634/riff-probe-test-1-2-3-a-1142378/", там резюк выносной smd-шный и мультиметр снаружи - вот и получилась путаница. Да и в доке описано как это работает в принципе, но ни слова нет - есть ли резюк в самом боксе или нет, а экспериментировать нет никакого желания, можно так и не успеть найти распиновку, а только вход пожечь.

---------- Сообщение добавлено 12.04.2011 в 22:27 ---------- Предыдущее сообщение было от 11.04.2011 в 19:23 ----------

Померил в режиме Probe с установками в RiffBox:
Target Core: PXA312
Reset Method: PreCFG0,nRST,wait 0 ms
JTAG I/O Voltage 3.3V
TAP#0

Получилось:
1 p0=2.83 p1=3.13
3 p0=1.63 p1=3.20
5 p0=1.63 p1=3.20
7 p0=1.63 p1=3.20
9 p0=1.63 p1=3.20
11 p0=3.09 p1=3.11
13 p0=0.03 p1=3.28
15 p0=2.86 p1=2.86
+3.3 p0=3.11 p1=3.11

Последние два питание, на остальных уровень меняется, 3-9 какие то странно одинаковые, с i-900 не сходится
 
Последнее редактирование:
а как быть с устройствами, к которым не подходит данный алгоритм поиска???
 
Тут два варианта :cool::
1. Найти распиновку на процессор,
2. отпаять процессор,
3. прозвонить и найти куда выходят нужные сигналы,
4. запаять процессор на место,
5. наслаждаться результатом :cool:

или использовать JTAG pin finder стороннего производителя
 
А "JTAG pin finder стороннего производителя" -это что ? Можно немного подробнее, как это работает или где об этом можно почитать? Или это просто шутка?
 

Нет, почему же, вовсе не шутка.
Имеется в виду устройство с большим количетсвом контактов - 10-20-30 штук к примеру. Вы подпаиваете всю группу контактов на "подозрительные" площадки на плате, дальше запускаете соответствующий софт который идет в комплекте с пин файндером и оно перебирает кучу возможных комбинаций пытаясь определить где в той группе контаков, куда вы подпаялись, находятся настоящие выводы джитага. Естественно, чем больше контактов вы задействуюте для поиска, тем больше комбинаций и перестановок (простейшая комбинаторика) софт будет вынужден сделать чтобы перебрать все возможные варианты. А принцип работы очень простой - перебор идет до тех пор пока не считается нормальный ID.
Несколько раз я натыкался на готовые коммерческие решения, сейчас правда не вспомню адреса. Думаю кто-то из участников форума подскажет если вам интересно.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх Низ