Перейти к содержанию
    

Если у вас отладочная плата и дебагер поддерживает и то и то. То в общем пофиг!

Но у SWD слегка побольше возможностей - если ими правильно пользоваться.

Например - по SWD можно законнектится к чипу когда он в ресете и будут доступны некоторые регистры, можно точку останова сразу влепить... Но тут все зависит от реализации отладчика...

И в режиме SWD ногу TDO можно использовать как SWO (трассировку и отладочная печать).

 

А если делать свою плату то можно минимизировать отладочный разъем - RESET, SWDIO, SWCLK

 

Заметная разница между SWD и JTAG будет при большом объеме данных и больших частотах. SWD может работать на гораздо больше частоте нежели JTAG.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заметная разница между SWD и JTAG будет при большом объеме данных и больших частотах. SWD может работать на гораздо больше частоте нежели JTAG.

То есть, SWD будет быстрее, чем JTAG? При заливке во флеш и при отладке?

Слышал вроде, что наоборот...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, SWD будет быстрее, чем JTAG? При заливке во флеш и при отладке?

Слышал вроде, что наоборот...

не, на STM32 разница не должна быть заметна.

Хотя все зависит от отладчика. SWD протокол позволяет многие вещи делать быстрее, например ошибки потом обрабатывать... Вопрос в том как отладичк сделан. Я просто прикручивал к OpenOCD FT232R в синхро бит банг моде и поигрался с реализацией SWD. C точки зрения железа и софта он гораздо удобнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если у вас отладочная плата и дебагер поддерживает и то и то. То в общем пофиг!

Но у SWD слегка побольше возможностей - если ими правильно пользоваться.

Например - по SWD можно законнектится к чипу когда он в ресете и будут доступны некоторые регистры, можно точку останова сразу влепить... Но тут все зависит от реализации отладчика...

И в режиме SWD ногу TDO можно использовать как SWO (трассировку и отладочная печать).

 

А если делать свою плату то можно минимизировать отладочный разъем - RESET, SWDIO, SWCLK

 

Заметная разница между SWD и JTAG будет при большом объеме данных и больших частотах. SWD может работать на гораздо больше частоте нежели JTAG.

 

 

А если не минимизировать? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если не минимизировать? :)

то можно будет и тот и тот протокол использовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

SWO удобно использовать (IAR).

Все printf(...) идут через SWO на экран.

4 провода + земля.

post-41226-1283001799_thumb.jpg

post-41226-1283002540_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

подскажите, поалуйста, схему распайки шлейфа-переходника от st link jtag к swd. соединила след. образом:

jtag swd

1.vcc 1.vcc

5.tdi 8.tdi

7.tms 2. tms_swdio

9.tclk 4.tck_swclk

13.tdo 6.tdo_swo

15.reset 10.reset

Это моя распайка шлейфа. при таком соединении не работает. При попытке записи программы из кейла или при попытке соединения через ст линк утилиту пишет нет соединения. в шлейфе что-то нужно делать с землями, соединять их или можно оставить не используемыми? где ошибка? что лишнее/чего не хватает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Абсолютный минимум для SWD - это два сигнала SWCLK(pin9) и SWDIO(pin7), ну и, разумеется, земля, хотя бы один провод, чем больше земель тем лучше.

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

 

Конкретно для ST-LINK нужен ещё один провод VAPP (pin 1), он-же Target Vcc - напряжение питания отлаживаемого процессора.

Это питание ST-LINK-у нужно для выходных буферов и он его наличие проверяет.

Если пользуете ST-LINK Utility, то в ней нужно выбрать Target->Settings и установить там что используется SWD а не JTAG.

 

Я использовал SWD с STM32_VL_DISCOVERY и с JLINK, плоский шлейф длиной ~25см, 4 жилы. Три из них накалываются на контакты 7,8,9, четвёртая на контакт 1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, отчего stlink из stm32fvldiscovery может не хотеть шить stm32f4? Думалось, там проблем нету... :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто использовал JTAG и SWD под STM32F10x поделитесь мнением

Все зависит от того, где процессор стоит. Если в гордом одиночестве, то SWD - проводов мало, разницы в скорости с JTAG нет (запись во флэш является тормозом). Если на плате в связке с STM32 еще парочка FPGA или даже еще один проц с JTAG, то лучше все нанизать на одну цепочку JTAG (в этом-то и есть его суть!), вывести на единственный разъем для всего и - вперед! Кстати, никто не напрягает использовать 20-ти ножечный монстр для разъема JTAG, т.к. нужно всего-то 5 сигналов:TDI, TDO, TCK, TMS и земля; TRST можно подтянуть внутри резистором на +VCC, поставив конденсатор 0.1uF на землю для сброса при подаче питания. "И - вперед, давай, давай..." © Лолита.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На моей плате под swd 10 пиновый разъем со след сигналами:

1.Vcc +3 V

2.tms_swdio

3. gnd

4.tck_swclk

5.gnd

6.tdo_swo

7.gnd

8.tdi

9.gnd

10.rst

 

 

Я соединяю след образом

JTAG SWD

7 TMS_SWDIO 2

8 GND 3

9 TCK_SWCLK 4

1 VCC 1

Пишет no st link detected, и keil, и st link utlity

Изменено пользователем batisto4ka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

подключила следующим образом:

20 jtag к 3 swd (земля)

9 jtag к 4 swd (swclk)

7 jtag к 2 swd (swdio)

 

Пробовала подключать еще и питание 1 к 1,тоже работает, но и без питания работает.

Подлючала через st-link и через keil. Вроде все было нормально, а потом начала отлаживать программу и тут какой-то глюк. После чего вылезло can't halt the core. И эта беда ничем не леччится, ни отключением питания ничем. И через keil пробую прошить и через st-link. Что бы это значило и как оно лечится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

После чего вылезло can't halt the core. И эта беда ничем не леччится, ни отключением питания ничем. И через keil пробую прошить и через st-link. Что бы это значило и как оно лечится?

А что с ногой ресета у контроллера?

Если используете внешний супервизор с пуш-пульным выходом то так и будет.

Ресет у STM32 устроен так (см. референс мануал), что его нужно или открытым коллектором дёргать или через резистор (~1кОм примерно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что с ногой ресета у контроллера?

Если используете внешний супервизор с пуш-пульным выходом то так и будет.

Ресет у STM32 устроен так (см. референс мануал), что его нужно или открытым коллектором дёргать или через резистор (~1кОм примерно).

Не совсем понятно, зачем здесь внешний супервизор. Внутренний работает нормально. Производитель рекомендует только ставить небольшой (0,1мкФ примерно) конденсатор с ноги сброса на землю, но не для начального сброса, а чтобы нога не ловила иголок. Этот конденсатор никому не мешает, ни отладчику, ни собственно сбросу. Резисторы не нужны, внешний супервизор обычно тоже

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...