STM32 SWD мистерия.....

Решил попробовать слабать что нито на STM32 купил пару процов STM32F100C8T6 учудил платку с дорогами по 0.3 лутом (честно сам не в восторге от результата) — развел под SWD два пенька на всякий случай c подтяжкой (как вычитал в описании jlink да и вообще не хорошо болтаться), ну и резет на всякий случай (ибо не доконца понятно было нужен он или нет) попытался запрограммировать… и опять лыжи… тыкаю щупом осциллографа в SWDCLK… опс пошел коннект…

убираю щуп все отвалилось. Что такое?.. короче ставил убирал подтяжки и к земле притягивал — не помогает. Но думаю в щупе есть емкость, поставил 100pf кондер на SWDCLK и все пошло как по маслу… Что бы это значило? Питал и от компа и от отдельного блока…

схема подключения дисковери все напрямую…


Резет кстати оказался ненужен. Достаточно SWDIO и SWDCLK
Само по себе устройство при питании от своего стабилизатора на 34063 работает нормально (правда ацп и pwm еще не завел)
p.s. это был звон
  • 0
  • 31 августа 2011, 11:31
  • GYUR22

Комментарии (58)

RSS свернуть / развернуть
У меня была такая же проблема но с STM32F205RE, я вообще не разводил подтягующих резисторов так как по даташиту они встроены в контролер. контролер прошивался только когда был контакт щупа осциллографа с линией SWDCLK, мне наоборот помогла подтяжка этой линии к +3.3в через резистор 51кОм. Кстати с STM32F100C4 таких проблем небыло, хотя тоже разведена без подтягующих резисторов, прошивается без проблем.
0
C STM не работал, но как и на авр ловил подобный глюк, когда шьется под влиянием луны.А трабла оказалась таки в дорогах 0.3, малюсенький перетрав дорожки не перекрылся даже после лужения и то контачил, то нет. Нашел тока с помощью микроскопа. По этому посмотрите внимательнее еще раз пайку, может поможет.
0
дороги адски залужены, ну и если бы был перетрав то конденсатор бы не помог…
с кондером шьется и отлаживается вне зависимости от лунных фаз т.е. без проблем
0
Имел похожий глюк с обрывом smd-резистора. Проверяешь его сопротивление щупами в местах пайки — все нормально, а схема не работает. Потом померил сопротивление на дорогах рядом с пайкой — обрыв. Когда «трогал» щупом пайку она немного поджималась к резюку и контакт восстанавливался. Помгла смена резюка.
Как говорят пьяные телефонисты: «электроника — наука о контактах» :))))
0
У меня была похожая проблема — хотел шить STM32 по 2-м проводам, сделал адаптор JTAG<>SWD, который target voltage для J-LINK сам делает.
Хоть убей, но не работало, когда target voltage брался не с МК.

Так что я бы посмотрел на как вы target voltage в JTAG-адаптор втыкаете.
0
Когда шил дисковерью питался от нее же, target voltage тут не причем как мне видится…
0
а может провода длинные и земля как попало. резкие фронты на клоках, без согласования вот и зазвенело. Там вон те 22 Ома должны этому мешать, но по схеме непонятно кто куда подключается.
0
  • avatar
  • _pv
  • 31 августа 2011, 17:22
а swdio чего тогда не звенит?
на второй картинке CN2 — это как раз разъем swd из дисковери
0
Звон на клоках гораздо хуже, потому что если на очень короткое время неправильный бит прилетит на IO то защелкнутся по фронту клоков он всё равно может правильно, а вот если короткий импульс из-за отражений прилетит на клоки то он вполне может быть воспринят как очередной клоковый фронт.
0
понятно…
0
STM32А100C8T6
Это новая какая-то серия или опечатка?
0
да нет value line low density вроде
www.st.com/internet/mcu/subclass/1169.jsp
0
Наверное, всё-таки STM32F100, а не STM32A100?
0
это да :)
не переключился язык
0
Ок, просто всё боюсь что-то упустить из новостей :)))
0
У меня похожая проблема возникла с чипом STM32F100RBT6B (такой чип же стоит на дискавери)
правда дискавери использую как программатор.
проводками длинной 20 см соединил с заводской платкой на которой стоит программируемый чип.
2 из 4 чипов шьються как попало.
Помогло подключение щупа от осциллографа…
ТО ЕСТЬ ЁМКОСТЬ порядка 30пф.
0
Словил туже самую проблему. Тоже с щупом шьется, без него нет. Выяснил, что если питание МК 3.3В то не шьется (шил дискавери, у него 3В). Если снизить до 3В питание МК то все ок.
0
Была такая проблема.Я тоже дискавери использую как программатор.Непомогло не короткие провода.
Повесил конденсатор 100пф между T-JTCK и GND (SWD pin2,pin3)и проблемы решилис, всё шилось как по маслу.
0
Я не столкнулся с этой проблемой, я с ней в обнимку наверно с самого начала активной деятельности.
На последнем проекте уже не знаю что вешать, пробовал все. Подтягивал SWCLK к VCC GND, пробовал ставить конденсаторы и т.д.
Через раз чип видится, а прошить успешно естественно не удается.
Уморила меня эта проблема, думаю попробовать другие контроллеры. Почему то у MSP430 такой проблемы нет, даже если провода проводами сложно назвать все шьется с первого раза.
0
Был в 1983-1984 отдаленно похожий случай с системой на КР580ВМ80А. При пошаговой отладке всё работало, а в рабочем режиме — нет. Когда смотрел сигналы осциллографом, то увидел, что при касании одной из ножек однократно прожигаемого ПЗУ (на перемычках) система оживала. Причина была в паразитной генерации ПЗУ по этому выводу. Вылечилось подпайкой конденсатора порядка 20 пФ между выводом и землей.
0
Использую дискавери как программатор. Обычно всякие траблы начинаются, если VDD_TARGET никуда не подключен. Поэтому либо соединяем его с питанием прошиваемого МК, либо замыкаем VDD_TARGET на +3V3 дискавери.
Никакие подтягивающие резисторы не нужны. RESET нужен только если переконфигурированы порты SWDIO/SWCLK, тогда прошить получится только дёрнув RESET.
+1
Испытывалось на дискаверях: VL, 407, 429
Прошивал микроконтроллеры: STM32F030F4P6, STM32F030K6T6, STM32F100RBT6, STM32F103C8T6, STM32F407VGT6, STM32F429ZIT6
0
с J-Link без target-а вообще ничего не заведется
+1
Если кондер в распор, или резюк 51 Ом в разрыв помогают, значит проблемы с разводкой земли. Ваш кэп
0
Не в бровь, так в глаз=) Дату публикации иногда и посмотреть не мешает… И да, КЭП все таки Ваш=)
0
дата особого значения не имеет, это же не новостной ресурс ))
+1
во первых, тема уже была поднята из небытия.
Во вторых, глядя на картинку неумно ручаться за отсутствие земляных петель и прочего. Видно земляной круг по периметру — раз, что есть польза от задержки по фронту/спаду (кондер) — два.
0
даже если и есть петля то тока там такого который способен на что то (кроме пары разрядов ацп) нет повлиять
0
Во вторых, глядя на картинку неумно ручаться за отсутствие земляных петель и прочего. Видно земляной круг по периметру
Какие «земляные петли» в данном случае, и на что они влияют (желательно описание конкретной физики сих процессов)?

Лично я вижу самый обычный земляной полигон, который весьма удобен в смысле хорошего уравнивания потенциалов земли, и как минимум мега-популярен в последние 10-15 лет за счет того, что он как минимум ничего обычно не ухудшает в большинстве схем, но очень сильно экономит химикаты при травлении PCB.

Все эти земляные полигоны «всплыли» на обе поверхности дизайна обычных 2-х сторонних PCB и аккуратно их залили из технологии конструирования многослойных(4/6/8-ми слойных) PCB, где они «почему-то» полезны и обязательны, кроме того, в большинстве случае — просто заливают всю площадь платы.
+1
Совершенно согласен, сейчас все платы заливаются полигоном. Исключение разве что составляют DC-DC преобразователи, где нужно деликатно подходить к разводке земель, ну или какая-то силовая нагрузка, для которой пускается отдельная земля. В остальных случаях — всегда льётся полигон на всю плату.
0
Есть конечно у ЗП минус — трудно понять как там реально ток течет и для АЦП и больших токов могут быть нюансы. А в многослойках там рекомендуется делать 2 полигона питания через тонкий слой текстолита чтобы была их емкость побольше, на двухслойках там расстояние между полигонами в разы больше и емкость конечно сильно меньше.
0
Сплошной полигон весьма хорош, особенно если имеется так же сплошной питалова, поскольку он увеличивает емкость и уменьшает индуктивность схемы. А это значит, что схема будет а) меньше влиятельна к помехам, б) более предсказуемый результат в случае поздних версий чипов (предположительно более скоростных). А ток течет таким образом, чтобы минимизировать индуктивность. В идеальном случае — строго под проводником, а там где это невозможно — таким образом, чтобы минимизировать площадь, описанную прямым и обратным током. как-то так.
0
помните из физики? Проводники с противоположным током притягиваются, и отталкиваются в одном направлении. Это значит, что ток, идущий по полигону будет плыть как можно ближе к проводнику.
0
вообще для понимания того, что творится с платой, если мы меняем разводку, ставим переходные и прочее — исходить из двух понятий.
1. Если мы увеличиваем площадь — мы увеличиваем емкость
2. Если мы увеличиваем емкость — индуктивность уменьшается.

Например, что представляет собой переходное отверстие? Это LC контур. емкостью в данном случае являются контуры, вытравленные на плате, а индуктивностью — металлизированное отверстие — трубка. Чем больше переходное отверстие, тем больше его емкость, поскольку площадь общая его увеличивается, а так же утолщается трубка. и наоборот. Если от сюда плясать — то довольно легко становится в понимании переходных процессов на плате
0
Сей букварь общих водянистых понятий все читали и знают. Но обычно всем нужна конкретика, т.е. что конкретно по этой плате? В смысле цитат: «Если кондер в распор, или резюк 51 Ом в разрыв помогают, значит проблемы с разводкой земли» и «неумно ручаться за отсутствие земляных петель и прочего. Видно земляной круг по периметру»
0
на фото сплошной полигон, к нему рандомно припаяны детали. Разводкой земли типа «звезда» такое трудно назвать.

Да, питашки и земли надо лить как можно больше, но топологию соблюдать стоит, и замкнутых контуров без надобности не делать.
Случай «поздних более скоростных версий чипов», ну это не про ЛУТ Толщина всех дорог на фото разная, значит сопротивление и индуктивность — тоже. Ставить камень под 45 градусов смысла чуть менее, чем никакого.
0
Я все понимаю, но не надо притягивать за уши того чего там нет, в полигоне в принципе нет тока который может вызвать какие то побочные эффекты, а вот что могло вызвать так это неудачное расположение DC/DC.
0
Я так и не понял, откуда автор заимствовал такую схему…
вот для примера, часть JTAG-SWD, платы от ST
0
и SWCLK на ней подтянут к GND, а автора почему то к 3V3…
0
Думаю что непринципиально куда тянуть, там должен быть PP и я писал, что в приципе эти ноги свободно используются как дискретный вход который у меня как раз был PU.
0
спасибо, в принципе думаю так же. Но вот посмотрел осциллографом и SWCLK похоже уже притянут к низу еще на плате отладчика, а DIO к верху, получается небольшая но бессмысленная потеря если на конечной плате тянуть его к верху. Но думаю все эти подтяжки последнее дело, все решает топология и разводка земляного полигона
0
вы случайно не пробовали отлаживать с JTAG? Бывают ли подобные проблемы?
0
Уже наверное более десятка плат делал с stm32 с SWD больше (тфу тфу тфу :)) такого не получал, везде делал PU, причем и была страшная земля на скору руку и нормальная — думаю дело в чем то другом было.
Jtag-ом не пользовался сорри.
0
Даташит тоже иногда полезно читать. При старте камня, все подтяжки уже настроены внутри камня!!! Не надо никаких внешних пулапов!!!
0
ну как бэ внутренние подтяжки — непрочно да и сопротивление их несколько выше(на порядок наверное) чем 10к. Затем же зачем и епромка вместо использования флэша.
0
Согласен. Например, на кнопки или на RESET я всегда ставлю внешние подтяжки, потому что они используются на протяжении всего рабочего цикла устройства.
НО
SWD интерфейс после отладки более не нужен, а отладка выполняется в лабораторных условиях, где в принципе нет помех, и встроенных подтяжек хватает. Ну а в дальнейшей судьбе устройства SWD не нужен.
0
тут я бы не согласился т.к. в любом случае эти ножки активные и что там на них наведется — кто знает.
0
Ну так после отладки настройте их в режим выхода и всё. Ничего там не будет болтаться.
0
Спасибо кэп!
только они у меня как входы использовались ;)
0
думаю проблема не столько в SWD и помехах, сколько в несовершенстве алгоритмов прошиваторов и gdb серверов
0
один пропущенный ack приостанавливает всю отладочную сессию, причем запрос никто не мешает повторить…
0
Схема автора взята из документации к плате STM32VLDISCOVERY, которая с чипом STM32F100
0
Тоже бывают проблемы как у автора: не всегда прошивается по SWD, поэтому если плата позволяет обычно еще UART развожу, через него всегда работает как ни странно.
0
  • avatar
  • esp
  • 31 июля 2015, 14:04
бывало чипы из китая приходят залоченные, хоть и в ленте. Приходится разлочивать по UART.
По SWD лично у меня самый дешевый китайский программатор, шлейф 55см (далеко не 10) — без проблем.
0
Не надо никаких UART-ов. Давим RESET на землю, запускаем процесс прошивки, программа ждёт коннекта SWD, отпускаем RESET, прога коннектится. Стираем прошивку и вуаля — теперь можно спокойно шить по SWD без всяких шаманств.
+1
Ой, везло Вам. Я, в силу нищебродства, частый клиент на алиэкспрессе. А там то что дешево либо подделка, либо остатки от проектов.
Connection under reset пользую всегда, в двух партиях чипов с али он не помогал даже близко.
Плюс однажды собрал проект сделанный под 103 на 051 и прошил. После запуска залочился 051 наглухо (ноги SWD не тронуты, connetction under reset как слону дробина).
0
Попробую. Надо будет тогда ресет разводить обязательно.
0
Я только в Терре беру + снятые с дискавери.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.