Jump to content

    

MT-link, SWD , STM32F103 и Кейл :)

Обнаружил тут недавно, что у новых MT-link появился интерфейс SWD, и в меню настроек J-линка можно поставить интерфейс SWD или JTAG.

Сразу захотелось убрать из плат 8-ми пиновый разъем отладчика и заменить его 4-х пиновым.

 

И освободить 3 ноги JTRST, JTDO, JTDI.

 

Но гложут меня сомнения что для прошивки flash из Кейла нужны еще NRST...

 

Кто- нибудь исследовал ,

какие ноги (минимальное количество), нужны, чтобы прошивать, отлаживать, и сбрасывать , не выходя из отладчика?

 

 

Share this post


Link to post
Share on other sites
Кто- нибудь исследовал ,

какие ноги (минимальное количество), нужны, чтобы прошивать, отлаживать, и сбрасывать , не выходя из отладчика?

Я проверял на STM32F103RB+J-LINK (оффициальный, черный, т.е. без ограничений). Пробовал в KEIL и CrossWorks 1.x и 2.x

Действительно, достаточно 4-х контактного разъема, VTGT, SWCLK, SWDIO, GND. Что я теперь и делаю во всех своих устройствах.

По SWD ядро сбрасывается перед прошивкой, что дает безопасность в процессе прошивки на ходу в работающем устройстве (например, проц управляет силовыми ключами).

 

Share this post


Link to post
Share on other sites

Я ST-LINK из STM32VLDISKOVERY программировал в Keil другую платку. Обошелся тремя проводами: SWCLK, SWDIO, GND (четвертый VTGT в ST-LINK сидит через резистор на земле). Отлаживаться особо не получалось, но это беда ST-LINK в Keil. А с помощью автономной утилиты прошивался, читал регистры, ходил по шагам.

Share this post


Link to post
Share on other sites
Действительно, достаточно 4-х контактного разъема, VTGT, SWCLK, SWDIO, GND. Что я теперь и делаю во всех своих устройствах.

 

Спасибо, только вот что за нога VTGT?

это какой-то сброс?

Share this post


Link to post
Share on other sites
Спасибо, только вот что за нога VTGT?

это какой-то сброс?

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

Share this post


Link to post
Share on other sites

МК на STM32VLDISKOVERY (STM32F100RB) программировал, и дебажил успешно J-Link7 по SWD (4-мя проводами), отключив при етом установленим на плате ST-LINK. Кеил v4.14. Думаю с MT-link разницы не будет.

Edited by -JonnS-

Share this post


Link to post
Share on other sites
МК на STM32VLDISKOVERY (STM32F100RB) программировал, и дебажил успешно J-Link7 по SWD (4-мя проводами)
Подробнее пожалуйста. Какой провод был четвёртым вкупе с SWCLK, SWDIO и GND?

 

Я вот нашёл у первоисточника в документике system_design_reference.pdf в главе "3.4 SWD connections" типовую схему SWD. так в ней аж 6 линий.

Но в то же время на этом же сайте чёрным по белому написано что SWD - это двухпроводной интерфейс.

http://www.arm.com/products/system-ip/debu...-wire-debug.php

У меня что-то не сходится...

Share this post


Link to post
Share on other sites
Я вот нашёл у первоисточника в документике...

Вот часть схемы STM32VLDISCOVERY, можно найти на сайте ST, в одном из pdf.

1 - VT

2 - SWCLK

3 - GND

4 - SWDIO

От первой ноги - никакого толку. Я ее не заводил. Обошелся тремя оставшимися.

post-10362-1302974472_thumb.jpg

Share this post


Link to post
Share on other sites

Для ст-линка это работает, сам так использую. А вот на счет мт-линка не уверен. Он вроде бы проверяет питание (VTREF). Во всяком случае у меня ругается (мт-линк 5).

На счет RST тоже вопрос. В принципе, это не обязательно. Но может пригодиться, если отладчик умеет подключаться под резетом.

Собственно, это все доп. выводы в разъеме, не занимающие ног мк. Так что минимально от мк требует только SWDCLK и SWDIO.

 

А на счет SWO самому интересно. Кто-нибудь пользовался?

Edited by akimych

Share this post


Link to post
Share on other sites
у меня ругается (мт-линк 5).
Если у мт-линков нумерация их версий сходна с J-LINK, то по моим сведениям поддержка SWD появился лишь с 6-ой версии.

Share this post


Link to post
Share on other sites
Если у мт-линков нумерация их версий сходна с J-LINK, то по моим сведениям поддержка SWD появился лишь с 6-ой версии.

 

У меня последний J-LINK 8-й, он просит питание на VT, для питания самой схемы у J-LINK выведен 19 (или 17) вывод на 20-выводном JTAG - весьма удобно. В принципе, щас родилась идея - прямо на разъеме J-LINK соединить 1 и 19 (17) вывод вместе, тогда должно хватать трех проводов - проверю.

Share this post


Link to post
Share on other sites
У меня последний J-LINK 8-й, он просит питание на VT, для питания самой схемы у J-LINK выведен 19 (или 17) вывод на 20-выводном JTAG - весьма удобно. В принципе, щас родилась идея - прямо на разъеме J-LINK соединить 1 и 19 (17) вывод вместе, тогда должно хватать трех проводов - проверю.

 

Это не для питания J-Link сделано, а для оценки напряжения питания программируемого устройства. Конечно, будет и по 3-м проводам программироваться, но тогда как бы нет гарантии, что программируемый процессор запитан нормальным напряжением.

Share this post


Link to post
Share on other sites
Если у мт-линков нумерация их версий сходна с J-LINK, то по моим сведениям поддержка SWD появился лишь с 6-ой версии.

С помощью паяльника и в 5ой есть. Ругается не на SWD, а на отсутствие VTREF. Хотя можно конечно его обмануть и подать питание на vtref с самого жтага или еще как-то.

Share this post


Link to post
Share on other sites
Это не для питания J-Link сделано, а для оценки напряжения питания программируемого устройства. Конечно, будет и по 3-м проводам программироваться, но тогда как бы нет гарантии, что программируемый процессор запитан нормальным напряжением.

 

Выдержка из документации на J-Link:

post-2831-1303058371_thumb.png

 

Завтра попробую проверить соединить VTGT и этот вывод (конечно, через резистор на всякий случай).

Сам вывод 19 дает +5В, оказалась очень удобная фича (дает 300 мА), можно питать демоборд.

Это фишка работает и JTAG режиме.

 

Share this post


Link to post
Share on other sites
Выдержка из документации на J-Link:

......

 

Я про фирменный j-Link не спорю, может быть и так. Но разобрав MT-Link,

о котором идет речь, можно внутри в схеме обнаружить линейный стабилизатор

на 3,3V подцепленный к 5v USB, который собственно и питает процессор AT91SAM7.

По линии питания SWD, если на нее не подавать 3,3v от программируемого устройства, то загрузка не пойдет и вывалится ошибка.

 

Жаль пока схемы нет под ругой, но завтра еще уточню….

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this