Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: JTAG + STM32
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Connor
Есть разведённая плата с STM32 с интерфейсом JTAG (10 pin), запаял разъём, запаял обвязку питания, пытаюсь прошить с помощью keil через J-Link, пишет что не видит устройство с CORTEX-M, в чём может быть проблема? Питание в норме, JTAG разведён правильно, уже несколько дней бьюсь, без результата, может кто-нибудь сталкивался с чем-то подобным? Спасибо
scifi
STM32 разные бывают. У меня на одном (STM32F051K) даже SWD не работает, если включить заводской загрузчик. Он задействует эти ноги для UART.
Connor
Интересное в том, что когда я подсоединяюсь проводками к JTAG и использую SW всё работает
vlad_new
Для начала запустите STM32-STLINK utility. Он должен увидеть ваш stm. А уже потом переходите к кейлу.
Убедитесь, что в кейле в debug -> utility установлен ваш Jlink и внутри выбран нужный тип роцесора из таблицы.
jcxz
Цитата(Connor @ Feb 7 2018, 09:17) *
Есть разведённая плата с STM32 с интерфейсом JTAG (10 pin), запаял разъём, запаял обвязку питания, пытаюсь прошить с помощью keil через J-Link, пишет что не видит устройство с CORTEX-M, в чём может быть проблема?

Взять любую dev board на подобном МК, научиться работать с ней, сравнить её схемотехнику со своей платой - что может быть проще?
scifi
Цитата(jcxz @ Feb 8 2018, 10:33) *
Взять любую dev board на подобном МК, научиться работать с ней, сравнить её схемотехнику со своей платой - что может быть проще?

Кстати, да.
Вопрос на самом деле на про JTAG, а про то, работает ли там что-либо вообще.
Обычно на STM32 достаточно подать питание (правильным образом, ибо и здесь можно накосячить), и он начинает дышать. Факт дыхания можно установить при помощи SWD (всего 2 сигнала) и ST-LINK. В общем, начинать нужно с этого.
Obam
У ТС есть JLINK - это круче, (; но это не для STM32-STLINK utility. ТС, надеюсь, установил Segger-овские драйвера и утилиты - там есть всё для диагностики.
golf2109
Цитата(Obam @ Feb 8 2018, 12:21) *
У ТС есть JLINK - это круче, (; но это не для STM32-STLINK utility. ТС, надеюсь, установил Segger-овские драйвера и утилиты - там есть всё для диагностики.

стесняясь, но спрашиваю, а что такое ТС?
ViKo
Цитата(golf2109 @ Feb 10 2018, 03:52) *
стесняясь, но спрашиваю, а что такое ТС?

Том Круз. biggrin.gif
пусть пока так повисит, потом исправлюсь rolleyes.gif
Наступило потом. ТопикСтартер. Зачинщик темы.
DmitryM
Цитата(ViKo @ Feb 10 2018, 08:14) *
Том Круз. biggrin.gif
пусть пока так повисит, потом исправлюсь rolleyes.gif
Наступило потом. ТопикСтартер. Зачинщик темы.


Тогда уж Topic Creator (TC not TS)
Pat
А вас какой STM32 и что с выводами BOOT0 и BOOT1?
Obam
TS, TC... по инструментам к JTAG-у возражений нет. Я так и полагал (: Очень хорошо (;
Pat
Цитата(Connor @ Feb 7 2018, 09:32) *
Интересное в том, что когда я подсоединяюсь проводками к JTAG и использую SW всё работает


Не увидел сразу.
Так а не используете ли Вы какие порты JTAG, в программе.
Может микроконтроллер уже где использовался и там чисто программно порты JTAG задействованы.
scifi
Цитата(ViKo @ Feb 10 2018, 08:14) *
Наступило потом. ТопикСтартер. Зачинщик темы.

Я бы даже сказал застрельщик biggrin.gif
Forger
Цитата(Connor @ Feb 7 2018, 10:17) *
...может кто-нибудь сталкивался с чем-то подобным

Ну, полагаю, что каждый когда-нибудь с сталкивался с тем, что "камень" не видится отладчиком sm.gif

Но в таком сочетании:
Цитата
Питание в норме, JTAG разведён правильно...
и
Цитата
...уже несколько дней бьюсь, без результата
судя по всему, вы будете первым santa2.gif



Обычно причина определяется очень быстро. Чаще всего дело в стиле "сам дурак": не подал питание, не подключил отладчик и т. п.
Тут главное, чтобы коллеги не узнали, где облажался, иначе еще долго будут "припоминать" biggrin.gif
Connor
Цитата(Pat @ Feb 10 2018, 09:22) *
А вас какой STM32 и что с выводами BOOT0 и BOOT1?


У меня STM32F303VE, boot0 подтянут к земле (запись во flash), boot1 просто висит в воздухе

Цитата(Pat @ Feb 10 2018, 09:43) *
Не увидел сразу.
Так а не используете ли Вы какие порты JTAG, в программе.
Может микроконтроллер уже где использовался и там чисто программно порты JTAG задействованы.


нет, в том то и дело что через jtag я программу никакую зашить не могу, (а в самой программе на портах jtag ничего не используется, кроме jtag 4pin)получается только через SWD , с помощью ST-LINK например, J-LINK вообще отказывается работать с этим STM ccылаясь на устaревшее firmware, при попытках увидеть stm с помощью jtag через ST-LINK пишет unknow device, ещё интересный факт, что даже через SWD не всегда видит микроконтроллер, питание на всех ножках выставлено как и положено 3.3V

Вот тут пишут про (подсмотреть dev board'ы) все development платы с stm, что я знаю (nucleo, discovery) идут с SWD, c JTAG я ещё не встречал, ни с 10pin ни с 20pin

В общем за эти дни удалось только добиться более менее устойчивой работы с ST-LINK через SWD, через JTAG, как я писал выше видит как UNKNOWN DEVICE, J-LINK вообще никак не хочет видеть

Насчёт keil'a, когда пытаюсь открыть проект, сгенерированный кубом, keil начинает искать библиотеки, устанавливает их для семейства stm32f3x и в итоге пишет, что устройство не найден, приходится выбирать вручную, keil использую последней версии, грешил я и на это, но потом установил себе truestudio, кто не знает, теперь для разработчиков на stm он стал бесплатным, собрал проект для него, соединение через SWD стало стабильнее, но через JTAG так и не увидел, ответ был unknown MCU
Forger
Цитата(Connor @ Feb 10 2018, 20:01) *
У меня STM32F303VE, boot0 подтянут к земле (запись во flash), boot1 просто висит в воздухе

Пора выкладывать схему.
Connor
Схема довольно большая, поэтому разделил её на две части, если какие-то вещи будут плохо видны, я могу сделать скрины в более укрупнённом виде
на части 1 изображён слева сам JTAG c подтяжками, которые я выпаял, часть 2 содержит схему питания.
Все парные сборки на схеме используются для каналов АЦП.

Часть1


Часть2


Что я запаял, я запаял полностью обвязку питания + токоограничивающие сборки для АЦП, после долгих игр с pull-up/pull-down для JTAG я выпаял их полностью + выпаял подтягивающий резистор R480 для ресет (RESET), не запаивал я также и кварцевый резонатор с генератором, работаю от внутреннего HSE.
Forger
Цитата(Connor @ Feb 10 2018, 20:56) *
Схема довольно большая, поэтому разделил её на две части

Если верить схеме, то на BOOT0 напряжение 1.65В. В реальности так же?

ps. Не понимаю, зачем такой простой камень подключать к отладчику через JTAG? Неужели SWD не достаточно?
Connor
Цитата(Forger @ Feb 10 2018, 13:38) *
Если верить схеме, то на BOOT0 напряжение 1.65В. В реальности так же?


нет, R485 не запаян, по этому BOOT0 подтянут к земле
Forger
Цитата(Connor @ Feb 10 2018, 21:42) *
нет, R485 не запаян, по этому BOOT0 подтянут к земле

Тогда нужно проверять распиновку камня по даташиту и стоит проверить распиновку разъема jtag.
Также есть вероятность, что существует где-то обрыв.
Питание 3.3В нормальное? Не просаженое? Потребление по цепям 3.3В входят в норму?
Connor
Цитата(Forger @ Feb 10 2018, 13:47) *
Тогда нужно проверять распиновку камня по даташиту и стоит проверить распиновку разъема jtag.
Также есть вероятность, что существует где-то обрыв.
Питание 3.3В нормальное? Не просаженое? Потребление по цепям 3.3В входят в норму?



распиновку jtag я проверил, всё совпадает, камень по даташиту не проверял, но смотрел в кубе, всё идентично, питание 3.3 в норме, на всех ножках, к которым подведено питание висит 3.29В
Forger
Цитата(Connor @ Feb 10 2018, 21:54) *
распиновку jtag я проверил, всё совпадает, камень по даташиту не проверял, но смотрел в кубе, всё идентично, питание 3.3 в норме, на всех ножках, к которым подведено питание висит 3.29В

Раз SWD работает, JTAG нет, то искать проблему нужно где-то в электрике.
Вы так и не ответили: зачем к такому простому камню сувать JTAG?
jcxz
Цитата(Connor @ Feb 10 2018, 19:01) *
Вот тут пишут про (подсмотреть dev board'ы) все development платы с stm, что я знаю (nucleo, discovery) идут с SWD, c JTAG я ещё не встречал, ни с 10pin ни с 20pin

Странно, у меня почему-то с первой попытки получилось найти сразу несколько и за совсем смешные деньги... wacko.gif
https://ru.aliexpress.com/item/1PCS-ARM-Cor...iceBeautifyAB=0
https://ru.aliexpress.com/item/1PCS-ARM-Cor...iceBeautifyAB=0
http://starterkit.ru/html/index.php?name=s...view&id=127

Цитата(Connor @ Feb 10 2018, 19:01) *
но через JTAG так и не увидел, ответ был unknown MCU

Так если Вам сам J-Link пишет про устаревшую прошивку, то с чего Вы вообще решили что он будет работать с Вашим МК?
Возможно он вообще про Cortex-M-ядра не знает, а только про старые ARM7. Обновите прошивку или купите современный.

Цитата(Forger @ Feb 10 2018, 21:08) *
Раз SWD работает, JTAG нет, то искать проблему нужно где-то в электрике.

Вы внимательнее прочитайте, что пишет ТС. Хотя это и трудно сделать из-за бардака со знаками препинания в его постах.
По JTAG он J-Link-ом пытается подключаться. А ST-Link - по SWD. Из этого он делает вывод, что виноват интерфейс подключения. Хотя при этом сам пишет, что J-Link ругается на старую прошивку.
Проблема вероятно в эмуляторе - заменить его.
Кстати - на заметку ТСу: J-Link тоже прекрасно умеет работать по SWD. Естественно те версии J-Link, которые понимают Cortex-M.

Проблема решается просто: покупаем любую отладку + J-Link, заведомо знающий про Cortex-ы. Спариваем их, учимся. Сравниваем свою схемотехнику со схемой EVB.
Я покупал отладки и со стартеркита и с али с JTAG (вот как раз ту, что на первой ссылке) - и всё работало с полпинка.
Connor
Цитата(jcxz @ Feb 10 2018, 14:33) *
Так если Вам сам J-Link пишет про устаревшую прошивку, то с чего Вы вообще решили что он будет работать с Вашим МК?
Возможно он вообще про Cortex-M-ядра не знает, а только про старые ARM7. Обновите прошивку или купите современный.

Он не знает конкретно Сortex M4, но с J-LINK понятно, но почему его тогда не видит ST-LINK, хотя через него шьют и более новые Сortex-M7

Цитата(jcxz @ Feb 10 2018, 14:33) *
По JTAG он J-Link-ом пытается подключаться. А ST-Link - по SWD. Из этого он делает вывод, что виноват интерфейс подключения. Хотя при этом сам пишет, что J-Link ругается на старую прошивку.
Проблема вероятно в эмуляторе - заменить его.
Кстати - на заметку ТСу: J-Link тоже прекрасно умеет работать по SWD. Естественно те версии J-Link, которые понимают Cortex-M.

Это давно известно, именно когда подключаешься по SWD через J-LINK он и пишет об устаревшей версии firmware

Кстати, на счёт ссылок что Вы кинули, здоров разбираться в китайских платах, которые даже не снабжены какой-либо документацией, спасибо что хоть для одной платы они прикрепили электрическую схему
Цитата(Forger @ Feb 10 2018, 14:08) *
Раз SWD работает, JTAG нет, то искать проблему нужно где-то в электрике.
Вы так и не ответили: зачем к такому простому камню сувать JTAG?


это не моя прихоть, эта схема, что я скинул, часть большого проекта над которым работает много людей, и когда-то давным давно было решено впихнуть сюда JTAG, тем более мне лично уже самому интересно почему эта простая казалось бы вещь не хочет работать
jcxz
Цитата(Connor @ Feb 10 2018, 22:44) *
Это давно известно, именно когда подключаешься по SWD через J-LINK он и пишет об устаревшей версии firmware
...
это не моя прихоть, эта схема, что я скинул, часть большого проекта над которым работает много людей

Проект серьёзный, но при этом денег на новый J-Link нету. Даже не самый новый. Как-то это не стыкуется... laughing.gif
ViKo
Что там за ножка 27? Куда запаяна?
Connor
Цитата(jcxz @ Feb 10 2018, 15:49) *
Проект серьёзный, но при этом денег на новый J-Link нету. Даже не самый новый. Как-то это не стыкуется... laughing.gif


все деньги на стулья ушли, что поделать

Цитата(ViKo @ Feb 10 2018, 15:56) *
Что там за ножка 27? Куда запаяна?

никуда, там просто земляной пин
ViKo
Цитата(Connor @ Feb 11 2018, 00:25) *
никуда, там просто земляной пин

Так никуда или на землю? rolleyes.gif А то по схеме, действительно, никуда.
Все остальные земляные на схеме показаны как Vss.
AVI-crak
Насчёт JTAG.
Если чип посредник в программаторе не имеет полноценной аппаратной поддержки usb2 - то у вас программный эмулятор JTAG, с чем вас и поздравляю.
Connor
Цитата(AVI-crak @ Feb 11 2018, 05:38) *
Насчёт JTAG.
Если чип посредник в программаторе не имеет полноценной аппаратной поддержки usb2 - то у вас программный эмулятор JTAG, с чем вас и поздравляю.


Спасибо за поздравления, не знаю как в J-LINK, что я использовал, но аппаратная поддержка usb 2.0 в ST-LINK присутствует точно

Цитата
Так никуда или на землю? А то по схеме, действительно, никуда.
Все остальные земляные на схеме показаны как Vss.




Ну да, так и есть, это земляной пин, на схеме подключение его к земле не показано, надо будет проверить, спасибо sm.gif
AVI-crak
Я тоже так думал, пока не открыл доки на используемые чипы в программаторе. Подозрения подтвердились, когда захотелось полной скорости usb на собственной отладочной плате. Без внешнего трансивера - исключительно программная поддержка usb2. Вроде бы как подключение usb2 - а скорости нет...

Интерфейс JTAG (на качественном программаторе) способен работать на частотах внешнего клока в 60 МГц, что в сочетании с шестнадцатью линиями трассы - даёт скорость опроса чипа в 80 мбайт/сек. Такой поток не имеет смысла гнать напрямую, по этой причине в программаторе есть собственная память для триггеров - в комп сливаются данные которые успели измениться.
Хочу сделать акцент - JTAG предназначен для очень быстрого опроса чипа в режиме отладки, скорости программирования не являются приоритетом. Нормальный JTAG - подключается почти ко всему что шевелится, он достаточно простой по протоколу, фактически стандарт. Чего нельзя сказать о программаторе на единственном чипе st - там буквально всё программное.

На всех чипах st выше 100 ног - JTAG включен по умолчанию, и он таки работает. Но только не с китайскими программаторами.
Connor
Решил проблему, пропаял пины TDI, TDO + начал играть опять с pull-up/pull-down. Итоговое решение при котором stm определяется с ST-LINK и по SWD и по JTAG:
1. TMS pull-up
2. TCK pull-down
3. TDO pull-up
4. TDI без подтягивающего резистора
5. RTCK pull-down

пробовал что-то отсоединять из вышеперечисленного, опять вылетала ошибка UNKNOWN MCU
Все это работает для девайса STM32F303VE (CORTEX-M4)
Тему можно закрывать, всем спасибо!:)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.