Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: В чем разница между SWD и JTAG?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Salamander
Господа, работал с разными платами, везде выведен 20-пиновый разъем JTAG.
Сейчас разрабатываю плату, где хотелось бы соблюсти компактность. IDC 20 уж больно много места занимает. Да и число отверстий хочу свести к минимуму.

Что я потеряю, если буду прошивать чип через SWD?
Может я проиграю в скорости или в функционале?
Почему в подавляющем большинстве отладочных плат и стартовыхъ комплектов выведен именно 20пиновый JTAG ?
Aner
20пиновый JTAG - дань моде и стандартам. Давно как используем SWD и не мучаемся с дополнительным местом под 20пиновый JTAG. Как программируется так и оплаживается без проблем серии 103...417, так и младшие 15х. 20пиновый JTAG потребуется если у вас несколько чипов на плате, он позволит объединить программно-отладочный интерфейс для этой группы чипов. Или же, если вам потребуется на производстве программировать кучку плат, что может ускорить процесс программирования кучки.
Salamander
по скорости так же как и житаг?
плюсы и минусы у SWD есть?

ЧТо-то я и правда не могу найти конкретной схемы SWD - нужны ли на ногах резисторы, стоколько земель...
Подскажите плз.
dac
QUOTE (Salamander @ Jan 8 2013, 20:40) *
по скорости так же как и житаг?
плюсы и минусы у SWD есть?

ЧТо-то я и правда не могу найти конкретной схемы SWD - нужны ли на ногах резисторы, стоколько земель...
Подскажите плз.

swdio pullup, swclk pull-down 10k
1- vdd, 4- gnd
4 ноги всего
Salamander
NRST нужно на постоянку к плюсу?
А ресетится он как? Командой?
SWDIO и SWCLK как пины уже нельзя задействовать?
demiurg_spb
+1 за 4-ёх пиновый SWD.
Главное GND должно быть между SWDIO и SWCLK в шлейфе, а то возможны весёлые танцы с бубном.
Salamander
так все-таки - ресетится он по команде? Что нужно сделать ы NRST и можно ли задействовать для работы устройства те пины, на которых сядит SWDIO и SWCLK, или они "потеряны для общества"?
hd44780
STM32F4Discovery ресетит отдельной ногой проца ST-Link. Кнопка сброса на той же ноге F4-го висит с pull-up.
И на разъёме SWD на плате имеется вывод NRST.

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

По поводу SWDIO и его CLK - в доке на F40x написано, что они после сброса вроде на SWD работают. Но в проге вроде это "лечится". Так ли это, не уверен, т.к. ещё только начинаю с ними разбираться, до этих "глубин" пока не докопался.
demiurg_spb
Цитата(Salamander @ Jan 9 2013, 11:45) *
так все-таки - ресетится он по команде?

Цитата(hd44780 @ Jan 9 2013, 11:55) *
Из всего этого я делаю вывод, что ресетит он аппаратным сигналом.
Ресет для прошивки по SWD не нужен. Достаточно по SWD подать определённую последовательность.

Salamander
Ладно, пёс с ними, с ногами, у меня кстати F103 серия.
Мне с NRST что делать - к VCC через резистор и забыть про него?
demiurg_spb
Цитата(Salamander @ Jan 9 2013, 13:21) *
Ладно, пёс с ними, с ногами, у меня кстати F103 серия.
Мне с NRST что делать - к VCC через резистор и забыть про него?

AN2586 страницы 9-10.

Цитата
The STM32F1xx does not require an external reset circuit to power-up correctly. Only a pulldown
capacitor is recommended to improve EMS performance by protecting the device
against parasitic resets.


mdmitry
Цитата(Salamander @ Jan 8 2013, 16:45) *
Господа, работал с разными платами, везде выведен 20-пиновый разъем JTAG.
Сейчас разрабатываю плату, где хотелось бы соблюсти компактность. IDC 20 уж больно много места занимает. Да и число отверстий хочу свести к минимуму.

В JTAG используемых контактов существенно меньше. Можно поставить свой малогабаритный разъём и применить переходник на стандартный JTAG.
Были платы, где в 10 пинов упакованы JTAG и RX, TX от USART, работало с SAM7X. Программирование, отладка и работа с USART с одной переходной платы. "Неудобства" по разработке переходника окупились использованием в разных платах.
Salamander
Спасибо, разобрался. ПРотянул 4 проводка, прошивка шьется.

Только почему то если соединять VCC - не работает.
А если соединять между собой JVTREF - работает.
Вот - в цвете - разъем платы, черно-белое - разъем программатора


ВСЕ, ВОПРОС ИСЧЕРПАН,
dac
QUOTE (demiurg_spb @ Jan 9 2013, 12:08) *
+1 за 4-ёх пиновый SWD.
Главное GND должно быть между SWDIO и SWCLK в шлейфе, а то возможны весёлые танцы с бубном.

в стандартном шлейфе gnd с краю, так делал, проблем ни разу не было
demiurg_spb
Цитата(dac @ Jan 10 2013, 19:18) *
в стандартном шлейфе gnd с краю, так делал, проблем ни разу не было
А у нас были. Поэтому и говорю. У нас длина шлейфа порядка 30 см.
dac
QUOTE (demiurg_spb @ Jan 11 2013, 11:18) *
А у нас были. Поэтому и говорю. У нас длина шлейфа порядка 30 см.

а, ну длинный шлейф - известная проблема
toweroff
А вот такой вопрос - SWO нужно для отладки? Или SWDCLK и SWDIO достаточно?
demiurg_spb
достаточно.
kolobok0
Цитата(toweroff @ Feb 26 2013, 16:38) *
..SWO нужно для отладки..


сначала так-же выкинул.
потом посмотрел как в дискавери. там есть.
оставил. благо по ногам не критично.
итого 5 проводков

SWDCLK
SWDIO
NRST
GND
SWO (без него отладка работает)
toweroff
Цитата(kolobok0 @ Feb 26 2013, 18:26) *
сначала так-же выкинул.
потом посмотрел как в дискавери. там есть.
оставил. благо по ногам не критично.
итого 5 проводков

SWDCLK
SWDIO
NRST
GND
SWO (без него отладка работает)

а +3.3, значит, не подключено?
Salamander
у меня без NRST работает
SWDCLK
SWDIO
+3.3
GND
Tahoe
Цитата(toweroff @ Feb 26 2013, 16:38) *
А вот такой вопрос - SWO нужно для отладки? Или SWDCLK и SWDIO достаточно?

Сигнал SWO не обязателен. Работать будет и без него. Но он весьма полезен.

Если на пальцах, то это нечто вроде DBG_UART, только стандартизованый ARM. Причем это и в самом деле обычный UART, расположеный непосредственно в ядре, т.е. он одинаков что у LPC, что у STM32, что у других. С его помощью, например, осуществляется профилирование. Т.е. когда в каком-нить IAR захочется использовать плагин, для оценки, какая функция сколько процессорного времени жрет, нужен будет SWO.
demiurg_spb
Цитата(Salamander @ Feb 26 2013, 20:43) *
у меня без NRST работает
SWDCLK
SWDIO
+3.3
GND
+1
Но это лишь при условии, что ноги СВД всегда ему остаются верными и не используются целевой прошивкой по своему усмотрению.
За всё приходится платить...
toweroff
Цитата(demiurg_spb @ Feb 27 2013, 09:25) *
Но это лишь при условии, что ноги СВД всегда ему остаются верными и не используются целевой прошивкой по своему усмотрению.

100500

в общем оставляю 4 ноги, pullup на SWDIO и pulldown на SWDCLK
всем спасибо!
demiurg_spb
Цитата(toweroff @ Feb 27 2013, 11:34) *
в общем оставляю 4 ноги, pullup на SWDIO и pulldown на SWDCLK
Там имеются встроенные растяжки, почитайте доку внимательнее (как минимум на землю точно есть если мы о stm32 говорим).
toweroff
Цитата(demiurg_spb @ Feb 27 2013, 11:37) *
Там имеются встроенные растяжки, почитайте доку внимательнее (как минимум на землю точно есть если мы о stm32 говорим).

спасибо, посмотрю еще раз по-внимательнее UM.
Нет, проц LPC175x
igorle
Цитата(Salamander @ Feb 26 2013, 19:43) *
у меня без NRST работает
SWDCLK
SWDIO
+3.3
GND

А куда идет +3.3? Соединяется питание двух устройств? Если "да" - то зачем?
toweroff
Цитата(igorle @ Mar 1 2013, 17:56) *
А куда идет +3.3? Соединяется питание двух устройств? Если "да" - то зачем?

вроде как этим напряжением питаются выходные буферы отладчика
Salamander
Цитата
вроде как этим напряжением питаются выходные буферы отладчика


Именно так.
В любом случае, в компьютере в окне показывается напряжение на target, отладчик ведь как-то узнает.
toweroff
Цитата(Salamander @ Mar 1 2013, 22:20) *
отладчик ведь как-то узнает.

ну он просто это напряжение через делитель (в J-Link v5 - 1.5/1.5kOhm) себе на ADC заводит sm.gif
Вот тут есть
kolobok0
Цитата(toweroff @ Mar 1 2013, 18:02) *
...питаются выходные буферы отладчика


что то не наблюдаю в схеме дискавэри(как пример) юзанье 3,3В как питания. на ножку подаётся. Судя по названиям AIN_1(PA0) через диодик и резистор в 100Ом. чисто ручками подключал без 3,3В - работает и отладка и загрузка.
Salamander
Следующее достижение будет подключить без SWDCLK.
ViKo
Питание не нужно. Я программировал и отлаживался по STM32VLDISCOVERY по трем проводам. Да оно там никуда и не заведено.

А на STM32F4DISCOVERY стоит отладчик ST-LINK/V2, и там разъем на 6 контактов. Использую 4 (добавил SWO), не использую сброс и питание. Обновил ST-LINK/V2. И теперь наблюдаю отладку CMSIS_RTOS-RTX в реальном времени, на графике Event Viewer в Keil.

Сброс пригодился бы, если бы в своей программе переназначил выводы микроконтроллера, отвечающие за SW. Тогда только сброс помог бы, или BOOT перемычки (если бы они были).

Ну, и питание, чего уж жалеть... 6-ногий разъем на плате 2 x 3 контакта... laughing.gif
Tahoe
Цитата(ViKo @ Mar 2 2013, 10:18) *
Питание не нужно. Я программировал и отлаживался по STM32VLDISCOVERY по трем проводам. Да оно там никуда и не заведено.

А это и не питание, это Vtarget.
Кроме того, если использовать J-Link, то без этого провода он скажет, что таргет обесточен и отладка не стартует.
ViKo
Цитата(Tahoe @ Mar 2 2013, 09:37) *
А это и не питание, это Vtarget.
Кроме того, если использовать J-Link, то без этого провода он скажет, что таргет обесточен и отладка не стартует.

Согласен. Это - для обнаружения наличия питания.
А J-Link можно обмануть, также, как и ST-LINK. sm.gif
kolobok0
Цитата(Tahoe @ Mar 2 2013, 10:37) *
...если использовать J-Link, то без этого провода...


я вот пробовал J-Link flash который. _без_проблем_ работает(отладка/заливка) _только_(в смысле достаточно) с 4 проводками (под дискавери. питание отдельно заведено):

SWDCLK
SWDIO
NRST
GND

ругань и иже не наблюдал.
это как бы дэ-факто...
Tahoe
Цитата(kolobok0 @ Mar 4 2013, 15:32) *
я вот пробовал J-Link flash который. _без_проблем_ работает(отладка/заливка) _только_(в смысле достаточно) с 4 проводками (под дискавери. питание отдельно заведено)

С трудом "асилил" этот набор слов. Особенно "питание отдельно заведено". Питание чего? Куда? На J-Link вместо Vtarget подано какое-то левое VCC? И в чем тут цимис?
И зачем нужен NRST, если без него все прекрасно работает?
kolobok0
Цитата(Tahoe @ Mar 4 2013, 16:10) *
...Питание чего? Куда? На J-Link вместо Vtarget подано какое-то левое VCC? И в чем тут цимис? И зачем нужен NRST, если без него все прекрасно работает?


какое питание? зачем туда? почему не левое? что за девайс "цимис"? работает где, у кого?

чуствуете? куча вопросов и типа крутых даже...
я написал как есть. Если читать по теме - то понятно о чём речь. А вопросы задавать - то много ума не надо.

возвращаясь к баранам.
практика = критерий истины.
проверьте всё сами ручками. И поймёте зачем ресет нужен. я повторюсь - смотрел на практике. наблюдения свои изложил. ресет вам потребуется для нормальной работы из под иара(из под него дебажился-заливал). без ресета виснит. если вам эта инфа не нужна - значит не нужна. и как говаривал Казьма Прутков - "у каждого портного свой взгляд на искусство".

Tahoe
Цитата(kolobok0 @ Mar 6 2013, 09:34) *
потребуется для нормальной работы из под иара(из под него дебажился-заливал). без ресета виснит

Уже не первый год работаю с STM32 из-под IAR, вот с таким коннектором:
Нажмите для просмотра прикрепленного файла
Без всяких ресетов и ничего не "виснит"(с). Может все-таки не велосипеды изобретать ресет заводить, а руки выпрямить? И уж тем более, бесполезные советы не раздавать.


Цитата(kolobok0 @ Mar 6 2013, 09:34) *
возвращаясь к баранам.
практика = критерий истины

Навеяло:
"- Или ты думаешь, что один раз, не п***рас? Ошибаешься. Это сами п***расы и придумали." (с) Карпов

Если у кого-то что-то раком-боком заработало "на практике", это ещё отнюдь не критерий истины. Это просто криоврукие "практики" взяли себе на вооружение такую отмазку.
ViKo
Повторить, что ли, еще раз, для пряморуких и криворуких. sm.gif
Обхожусь тремя цепями: SWCLK, SWDIO, GND, при работе с ST-LINK.
Чтобы задействовать трассировку (если отладчик ее обеспечивает, в частности, ST-LINK/V2 обеспечивает), нужна еще цепь SWO.
Если хотите обращаться к микроконтроллеру во время сброса, нужна цепь NRST.
Если отладчик контролирует питание микроконтроллера, то нужно его ему передать.
Tahoe
Цитата(ViKo @ Mar 6 2013, 12:42) *
Повторить, что ли, еще раз, для пряморуких и криворуких. sm.gif
Обхожусь тремя цепями: SWCLK, SWDIO, GND, при работе с ST-LINK.

На ST-LINK свет клином не сошелся. Я привел _необходимый_ и _достаточный_ набор пинов, работоспособный не только с ST-Link, но и с наиболее популярным среди ARM отладчиком - J-Link.
Опционально, сугубо для отладки - да, SWO весьма полезен, о чем я выше тоже упоминал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.