Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MT-link, SWD , STM32F103 и Кейл :)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > Keil
Serj78
Обнаружил тут недавно, что у новых MT-link появился интерфейс SWD, и в меню настроек J-линка можно поставить интерфейс SWD или JTAG.
Сразу захотелось убрать из плат 8-ми пиновый разъем отладчика и заменить его 4-х пиновым.

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

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

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

Forger
Цитата(Serj78 @ Apr 14 2011, 12:08) *
Кто- нибудь исследовал ,
какие ноги (минимальное количество), нужны, чтобы прошивать, отлаживать, и сбрасывать , не выходя из отладчика?

Я проверял на STM32F103RB+J-LINK (оффициальный, черный, т.е. без ограничений). Пробовал в KEIL и CrossWorks 1.x и 2.x
Действительно, достаточно 4-х контактного разъема, VTGT, SWCLK, SWDIO, GND. Что я теперь и делаю во всех своих устройствах.
По SWD ядро сбрасывается перед прошивкой, что дает безопасность в процессе прошивки на ходу в работающем устройстве (например, проц управляет силовыми ключами).
ViKo
Я ST-LINK из STM32VLDISKOVERY программировал в Keil другую платку. Обошелся тремя проводами: SWCLK, SWDIO, GND (четвертый VTGT в ST-LINK сидит через резистор на земле). Отлаживаться особо не получалось, но это беда ST-LINK в Keil. А с помощью автономной утилиты прошивался, читал регистры, ходил по шагам.
Serj78
Цитата(Forger @ Apr 15 2011, 08:32) *
Действительно, достаточно 4-х контактного разъема, VTGT, SWCLK, SWDIO, GND. Что я теперь и делаю во всех своих устройствах.


Спасибо, только вот что за нога VTGT?
это какой-то сброс?
ViKo
Цитата(Serj78 @ Apr 15 2011, 14:55) *
Спасибо, только вот что за нога VTGT?
это какой-то сброс?

Напряжение питания целевого устройства. Видимо, чтобы запитать процессор при программировании. Если у него есть питание и так, то и не нужно. У меня же работало.
-JonnS-
МК на STM32VLDISKOVERY (STM32F100RB) программировал, и дебажил успешно J-Link7 по SWD (4-мя проводами), отключив при етом установленим на плате ST-LINK. Кеил v4.14. Думаю с MT-link разницы не будет.
demiurg_spb
Цитата(-JonnS- @ Apr 15 2011, 16:43) *
МК на 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
У меня что-то не сходится...
ViKo
Цитата(demiurg_spb @ Apr 16 2011, 19:38) *
Я вот нашёл у первоисточника в документике...

Вот часть схемы STM32VLDISCOVERY, можно найти на сайте ST, в одном из pdf.
1 - VT
2 - SWCLK
3 - GND
4 - SWDIO
От первой ноги - никакого толку. Я ее не заводил. Обошелся тремя оставшимися.
akimych
Для ст-линка это работает, сам так использую. А вот на счет мт-линка не уверен. Он вроде бы проверяет питание (VTREF). Во всяком случае у меня ругается (мт-линк 5).
На счет RST тоже вопрос. В принципе, это не обязательно. Но может пригодиться, если отладчик умеет подключаться под резетом.
Собственно, это все доп. выводы в разъеме, не занимающие ног мк. Так что минимально от мк требует только SWDCLK и SWDIO.

А на счет SWO самому интересно. Кто-нибудь пользовался?
demiurg_spb
Цитата(akimych @ Apr 16 2011, 22:35) *
у меня ругается (мт-линк 5).
Если у мт-линков нумерация их версий сходна с J-LINK, то по моим сведениям поддержка SWD появился лишь с 6-ой версии.
Forger
Цитата(demiurg_spb @ Apr 16 2011, 21:45) *
Если у мт-линков нумерация их версий сходна с J-LINK, то по моим сведениям поддержка SWD появился лишь с 6-ой версии.


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


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

С помощью паяльника и в 5ой есть. Ругается не на SWD, а на отсутствие VTREF. Хотя можно конечно его обмануть и подать питание на vtref с самого жтага или еще как-то.
Forger
Цитата(Danis @ Apr 17 2011, 11:48) *
Это не для питания J-Link сделано, а для оценки напряжения питания программируемого устройства. Конечно, будет и по 3-м проводам программироваться, но тогда как бы нет гарантии, что программируемый процессор запитан нормальным напряжением.


Выдержка из документации на J-Link:
Нажмите для просмотра прикрепленного файла

Завтра попробую проверить соединить VTGT и этот вывод (конечно, через резистор на всякий случай).
Сам вывод 19 дает +5В, оказалась очень удобная фича (дает 300 мА), можно питать демоборд.
Это фишка работает и JTAG режиме.
Danis
Цитата(Forger @ Apr 17 2011, 20:40) *
Выдержка из документации на J-Link:
......


Я про фирменный j-Link не спорю, может быть и так. Но разобрав MT-Link,
о котором идет речь, можно внутри в схеме обнаружить линейный стабилизатор
на 3,3V подцепленный к 5v USB, который собственно и питает процессор AT91SAM7.
По линии питания SWD, если на нее не подавать 3,3v от программируемого устройства, то загрузка не пойдет и вывалится ошибка.

Жаль пока схемы нет под ругой, но завтра еще уточню….
Danis
Вот схема MT-Link v6. Так гляньте как запитан пин VCC у буфера 74LVC244. Т.е. этот буфер питается от пина №1 JTAG. Если использовать SWD без линии питания, нужно этот пин закоротить на 3,3V от внутреннего стабилизатора TPS76333.
Serj78
Цитата(Danis @ Apr 18 2011, 10:32) *
Вот схема MT-Link v6. Так гляньте как запитан пин VCC у буфера 74LVC244.


Очень похоже, Данис, что это схема 5-й версии, у меня такая. sm.gif
Сегодня как раз искал информацию..
Для 6-ой ей не хватает 2-х перемычек между PA4 и PA27 и резисторами R12 и R13. ( TMS и TCK ) то есть в SWD режиме буферы не используются, хотя и питание на них подается.
(хотя вот интересно- это не мешает процессору как-то измерять это питание- напряжение-то таргета отладчик показывает)

Такая же схема у J-линка 7-й версии, но там защитные резисторы немного другая схема управления сбросом- отдельный транзистор используется.
akimych
Цитата
хотя вот интересно- это не мешает процессору как-то измерять это питание- напряжение-то таргета отладчик показывает

На той схеме VTREF еще подается через делитель на 3-ий пин (AD4).
Serj78
Попробовал сегодня подать питание на VTREF с 3.3 в стабилизатора самого программатора.

НЕ РАБОТАЕТ!!! Я в шоке. Сломал весь мозгsm.gif

Если соединить оба питания параллельно- работает.
ЕСЛИ СНЯТЬ С УСТРОЙСТВА ВНЕШНЕЕ ПИТАНИЕ -РАБОТАЕТ!! (устройство питается от программатора)

Потребляемый ток по этой ноге не превышает 1.1ма. при программировании - не меняется.

Пишет:

* JLink Info: Found SWD-DP with ID 0x1BA01477
* JLink Info: TPIU fitted.
* JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots
**JLink Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.
ROMTableAddr = 0xE00FF003


Так вот, дело было в.. разводке платы программатора. слишком большая индуктивность земляных дорожек, наверное.
Стоило подать "землю" не на край разъема (20 нога), а на середину- (12 нога)- все заработало.
При этом все четные ноги разъема на плате программатора соединены, но тонкими дорожками.
Angle
Следующая проблема с SWD в Keil.
Имеется : MT-Link v7.0, keil uvision 4.10, segger j-link driver v4.20p, отладочная плата с STM32F103RBT6.
Подключены линии VT, SWDIO, SWCLK, GND.

J-Link Commander пишет:

No devices found on JTAG chain. Trying to find device on SWD.
Info: Found SWD-DP with ID 0x1BA01477
Info: TPIU fitted.
Info: FPUnit: 6 code (BP) slots and 2 literal slots
Cortex-M3 identified.
JTAG speed: 100 kHz

В интерфейсе keil использую для настройки дебага окно "Cortex Jlink/JTrace Target Driver Setup"
Выбираю Debug>Port>SW, пишет No SW-DP found.
Полный JTAG работает норм.
Косяк кейла или драйвера segger? Как можно решить данную проблему?
KnightIgor
Цитата(Angle @ Jul 28 2011, 07:39) *
...


Поиграйтесь в KEIL с установкой Connect&Reset Options -> выпадающий список Reset в закладке Debug в настройках JTAG-адаптера.
AndreyKar
Интересную закономерность заметил..
Если флеш память прошита и хочется запустить отладчик (в рам-памяти), то для первого запуска надо нажать кнопку RESET, затем запустить отладчик и только потом отпустить кнопку. Последующие запуски отладчика запускаются без кнопки и так до след. включения питания на отлаживаемой плате.

Для чего вешают подтягивающий резистор 10k на ногу RESET для STM32?

ЗЫ: отладчик МТ-линк.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.