Salamander
Jan 8 2013, 13:45
Господа, работал с разными платами, везде выведен 20-пиновый разъем JTAG.
Сейчас разрабатываю плату, где хотелось бы соблюсти компактность. IDC 20 уж больно много места занимает. Да и число отверстий хочу свести к минимуму.
Что я потеряю, если буду прошивать чип через SWD?
Может я проиграю в скорости или в функционале?
Почему в подавляющем большинстве отладочных плат и стартовыхъ комплектов выведен именно 20пиновый JTAG ?
20пиновый JTAG - дань моде и стандартам. Давно как используем SWD и не мучаемся с дополнительным местом под 20пиновый JTAG. Как программируется так и оплаживается без проблем серии 103...417, так и младшие 15х. 20пиновый JTAG потребуется если у вас несколько чипов на плате, он позволит объединить программно-отладочный интерфейс для этой группы чипов. Или же, если вам потребуется на производстве программировать кучку плат, что может ускорить процесс программирования кучки.
Salamander
Jan 8 2013, 14:40
по скорости так же как и житаг?
плюсы и минусы у SWD есть?
ЧТо-то я и правда не могу найти конкретной схемы SWD - нужны ли на ногах резисторы, стоколько земель...
Подскажите плз.
QUOTE (Salamander @ Jan 8 2013, 20:40)

по скорости так же как и житаг?
плюсы и минусы у SWD есть?
ЧТо-то я и правда не могу найти конкретной схемы SWD - нужны ли на ногах резисторы, стоколько земель...
Подскажите плз.
swdio pullup, swclk pull-down 10k
1- vdd, 4- gnd
4 ноги всего
Salamander
Jan 9 2013, 02:27
NRST нужно на постоянку к плюсу?
А ресетится он как? Командой?
SWDIO и SWCLK как пины уже нельзя задействовать?
demiurg_spb
Jan 9 2013, 06:08
+1 за 4-ёх пиновый SWD.
Главное GND должно быть между SWDIO и SWCLK в шлейфе, а то возможны весёлые танцы с бубном.
Salamander
Jan 9 2013, 07:45
так все-таки - ресетится он по команде? Что нужно сделать ы NRST и можно ли задействовать для работы устройства те пины, на которых сядит SWDIO и SWCLK, или они "потеряны для общества"?
hd44780
Jan 9 2013, 07:55
STM32F4Discovery ресетит отдельной ногой проца ST-Link. Кнопка сброса на той же ноге F4-го висит с pull-up.
И на разъёме SWD на плате имеется вывод NRST.
Из всего этого я делаю вывод, что ресетит он аппаратным сигналом.
По поводу SWDIO и его CLK - в доке на F40x написано, что они после сброса вроде на SWD работают. Но в проге вроде это "лечится". Так ли это, не уверен, т.к. ещё только начинаю с ними разбираться, до этих "глубин" пока не докопался.
demiurg_spb
Jan 9 2013, 08:05
Цитата(Salamander @ Jan 9 2013, 11:45)

так все-таки - ресетится он по команде?
Цитата(hd44780 @ Jan 9 2013, 11:55)

Из всего этого я делаю вывод, что ресетит он аппаратным сигналом.
Ресет для прошивки по SWD не нужен. Достаточно по SWD подать определённую последовательность.
Salamander
Jan 9 2013, 09:21
Ладно, пёс с ними, с ногами, у меня кстати F103 серия.
Мне с NRST что делать - к VCC через резистор и забыть про него?
demiurg_spb
Jan 9 2013, 09:27
Цитата(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
Jan 9 2013, 12:32
Цитата(Salamander @ Jan 8 2013, 16:45)

Господа, работал с разными платами, везде выведен 20-пиновый разъем JTAG.
Сейчас разрабатываю плату, где хотелось бы соблюсти компактность. IDC 20 уж больно много места занимает. Да и число отверстий хочу свести к минимуму.
В JTAG используемых контактов существенно меньше. Можно поставить свой малогабаритный разъём и применить переходник на стандартный JTAG.
Были платы, где в 10 пинов упакованы JTAG и RX, TX от USART, работало с SAM7X. Программирование, отладка и работа с USART с одной переходной платы. "Неудобства" по разработке переходника окупились использованием в разных платах.
Salamander
Jan 9 2013, 16:56
Спасибо, разобрался. ПРотянул 4 проводка, прошивка шьется.
Только почему то если соединять VCC - не работает.
А если соединять между собой JVTREF - работает.
Вот - в цвете - разъем платы, черно-белое - разъем программатора
ВСЕ, ВОПРОС ИСЧЕРПАН,
QUOTE (demiurg_spb @ Jan 9 2013, 12:08)

+1 за 4-ёх пиновый SWD.
Главное GND должно быть между SWDIO и SWCLK в шлейфе, а то возможны весёлые танцы с бубном.
в стандартном шлейфе gnd с краю, так делал, проблем ни разу не было
demiurg_spb
Jan 11 2013, 05:18
Цитата(dac @ Jan 10 2013, 19:18)

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

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

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

сначала так-же выкинул.
потом посмотрел как в дискавери. там есть.
оставил. благо по ногам не критично.
итого 5 проводков
SWDCLK
SWDIO
NRST
GND
SWO (без него отладка работает)
а +3.3, значит, не подключено?
Salamander
Feb 26 2013, 16:43
у меня без NRST работает
SWDCLK
SWDIO
+3.3
GND
Цитата(toweroff @ Feb 26 2013, 16:38)

А вот такой вопрос - SWO нужно для отладки? Или SWDCLK и SWDIO достаточно?
Сигнал SWO не обязателен. Работать будет и без него. Но он весьма полезен.
Если на пальцах, то это нечто вроде DBG_UART, только стандартизованый ARM. Причем это и в самом деле обычный UART, расположеный непосредственно в ядре, т.е. он одинаков что у LPC, что у STM32, что у других. С его помощью, например, осуществляется профилирование. Т.е. когда в каком-нить IAR захочется использовать плагин, для оценки, какая функция сколько процессорного времени жрет, нужен будет SWO.
demiurg_spb
Feb 27 2013, 05:25
Цитата(Salamander @ Feb 26 2013, 20:43)

у меня без NRST работает
SWDCLK
SWDIO
+3.3
GND
+1
Но это лишь при условии, что ноги СВД всегда ему остаются верными и не используются целевой прошивкой по своему усмотрению.
За всё приходится платить...
toweroff
Feb 27 2013, 07:34
Цитата(demiurg_spb @ Feb 27 2013, 09:25)

Но это лишь при условии, что ноги СВД всегда ему остаются верными и не используются целевой прошивкой по своему усмотрению.
100500
в общем оставляю 4 ноги, pullup на SWDIO и pulldown на SWDCLK
всем спасибо!
demiurg_spb
Feb 27 2013, 07:37
Цитата(toweroff @ Feb 27 2013, 11:34)

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

Там имеются встроенные растяжки, почитайте доку внимательнее (как минимум на землю точно есть если мы о stm32 говорим).
спасибо, посмотрю еще раз по-внимательнее UM.
Нет, проц LPC175x
Цитата(Salamander @ Feb 26 2013, 19:43)

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

А куда идет +3.3? Соединяется питание двух устройств? Если "да" - то зачем?
вроде как этим напряжением питаются выходные буферы отладчика
Salamander
Mar 1 2013, 18:20
Цитата
вроде как этим напряжением питаются выходные буферы отладчика
Именно так.
В любом случае, в компьютере в окне показывается напряжение на target, отладчик ведь как-то узнает.
toweroff
Mar 1 2013, 19:47
Цитата(Salamander @ Mar 1 2013, 22:20)

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

...питаются выходные буферы отладчика
что то не наблюдаю в схеме дискавэри(как пример) юзанье 3,3В как питания. на ножку подаётся. Судя по названиям AIN_1(PA0) через диодик и резистор в 100Ом. чисто ручками подключал без 3,3В - работает и отладка и загрузка.
Salamander
Mar 2 2013, 05:54
Следующее достижение будет подключить без SWDCLK.
Питание не нужно. Я программировал и отлаживался по STM32VLDISCOVERY по трем проводам. Да оно там никуда и не заведено.
А на STM32F4DISCOVERY стоит отладчик ST-LINK/V2, и там разъем на 6 контактов. Использую 4 (добавил SWO), не использую сброс и питание. Обновил ST-LINK/V2. И теперь наблюдаю отладку CMSIS_RTOS-RTX в реальном времени, на графике Event Viewer в Keil.
Сброс пригодился бы, если бы в своей программе переназначил выводы микроконтроллера, отвечающие за SW. Тогда только сброс помог бы, или BOOT перемычки (если бы они были).
Ну, и питание, чего уж жалеть... 6-ногий разъем на плате 2 x 3 контакта...
Цитата(ViKo @ Mar 2 2013, 10:18)

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

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

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

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

...Питание чего? Куда? На J-Link вместо Vtarget подано какое-то левое VCC? И в чем тут цимис? И зачем нужен NRST, если без него все прекрасно работает?
какое питание? зачем туда? почему не левое? что за девайс "цимис"? работает где, у кого?
чуствуете? куча вопросов и типа крутых даже...
я написал как есть. Если читать по теме - то понятно о чём речь. А вопросы задавать - то много ума не надо.
возвращаясь к баранам.
практика = критерий истины.
проверьте всё сами ручками. И поймёте зачем ресет нужен. я повторюсь - смотрел на практике. наблюдения свои изложил. ресет вам потребуется для нормальной работы из под иара(из под него дебажился-заливал). без ресета виснит. если вам эта инфа не нужна - значит не нужна. и как говаривал Казьма Прутков - "у каждого портного свой взгляд на искусство".
Цитата(kolobok0 @ Mar 6 2013, 09:34)

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

возвращаясь к баранам.
практика = критерий истины
Навеяло:
"- Или ты думаешь, что один раз, не п***рас? Ошибаешься. Это сами п***расы и придумали." (с) Карпов
Если у кого-то что-то раком-боком заработало "на практике", это ещё отнюдь не критерий истины. Это просто криоврукие "практики" взяли себе на вооружение такую отмазку.
Повторить, что ли, еще раз, для пряморуких и криворуких.

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

Повторить, что ли, еще раз, для пряморуких и криворуких.

Обхожусь тремя цепями: SWCLK, SWDIO, GND,
при работе с ST-LINK.
На ST-LINK свет клином не сошелся. Я привел _необходимый_ и _достаточный_ набор пинов, работоспособный не только с ST-Link, но и с наиболее популярным среди ARM отладчиком - J-Link.
Опционально, сугубо для отладки - да, SWO весьма полезен, о чем я выше тоже упоминал.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.