Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SWD программатор: зачем нужен контакт#1 (3.3V) на разъеме программирования
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Ruslan1
Здравствуйте.
Минимизирую место и коннекторы, дошел до разъема программирования-отладки.

Попробовал на разных семействах STM32 - везде программируется-отлаживается без первой ноги SWD (3.3V ).
Как это соединение используется и можно ли его не подключать, если программируемый МК питается от своего наплатного 3.3 V?

1) если для контроля питания на программируемом камне - так у меня и без него кейл и ST-Link Utility работают, никаких ошибок вроде "нет питания на таргете" не показывают
2) если для запитки программируемого МК напряжением 3.3 V - так у меня и так там стабилизированное 3.3В на плате есть. И подключение внешнего питания 3.3 без наличия остальных нужных платен напряжений- скорее зло чем помощь, так что не хочу я питать эту плату от программатора
3) запитка программатора от программируемой платы для случая не-3.3V питания ?
4) что-то еще?
AlexandrY
Цитата(Ruslan1 @ Mar 11 2016, 10:40) *
3) запитка программатора от программируемой платы для случая не-3.3V питания ?


Микросхема согласующего драйвера в адаптере питается от этого напряжения.
Самые умные самодельщики как видно в гугле игнорируют этот драйвер.
Из-за чего не могут пользоваться своими поделками для отладки схем с пониженным напряжением, скажем 1.85 V.
А такое напряжение теперь уже часто встречается в чипах с беспроводной связью.
ViKo
В STM32Discovery всех мастей эта цепь подключается ко входу микроконтроллера-отладчика для измерения через перемычку, которая не запаяна. А вместо измеряемого +3,3 В создается делителем (половина своего питания). Так что можно смело избавляться от этой цепи. Минимально можно иметь: SWCLK, SWDIO, GND. Дальше - больше: SWO, NRST. Для отладки все пригодится. Для программирования - нет.
Схемы Discovery, кстати, имеются в руководствах, там все видно.
AlexandrY
Цитата(ViKo @ Mar 11 2016, 11:46) *
Так что можно смело избавляться от этой цепи.


Прям таки смело. biggrin.gif
Боюсь ST-LINK/V2 ISOL уже не будет работать в такой конфигурации

Общей практикой является вместе с новым конструктивом отладочного канала разрабатывать и новый переходник к отдадочному адаптеру.

Например так:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
ViKo
Цитата(AlexandrY @ Mar 11 2016, 14:03) *
Прям таки смело. biggrin.gif
Боюсь ST-LINK/V2 ISOL уже не будет работать в такой конфигурации

Если ISOL, тогда не знаю. Он от компьютера изолирован, а надо ли ему Vtarget - не интересовался за неимением оного.
А если ST-Link/V2 от Discovery, тогда смело.
AlexandrY
Цитата(ViKo @ Mar 11 2016, 13:11) *
Если ISOL, тогда не знаю. Он от компьютера изолирован, а надо ли ему Vtarget - не интересовался за неимением оного.
А если ST-Link/V2 от Discovery, тогда смело.


J-Link и клоны тоже не будут работать.
Defin
Цитата(AlexandrY @ Mar 11 2016, 12:14) *
Микросхема согласующего драйвера в адаптере питается от этого напряжения.
Самые умные самодельщики как видно в гугле игнорируют этот драйвер.
Из-за чего не могут пользоваться своими поделками для отладки схем с пониженным напряжением, скажем 1.85 V.
А такое напряжение теперь уже часто встречается в чипах с беспроводной связью.


Если просто работать не будет не так страшно, а вот если напряжение программатора отличается более чем 0.3В, то можно спалить отлаживаемый процессор.
Видел китайские клоны J-Link, у них внутри есть перемычка - можно выбрать от чего питать согласователь уровней, удобно, но опасно.
Рекомендую всегда выводить питание отлаживаемой схемы.
ViKo
Цитата(Defin @ Mar 11 2016, 14:25) *
Если просто работать не будет не так страшно, а вот если напряжение программатора отличается более чем 0.3В, то можно спалить отлаживаемый процессор.

Спалить из-за отличия на 0,3 В напряжения на входах, толерантных к 5 В? blink.gif А как же Discovery, почему ничего не палит? rolleyes.gif
Это не PIС, где 12 В жарит непосредственно с программатора. В STM32 напряжения для программирования flash формируется внутре.
AlexandrY
Цитата(Defin @ Mar 11 2016, 13:25) *
Рекомендую всегда выводить питание отлаживаемой схемы.

Согласен, и общесистемный RESET.
Ооочень нужная вещь для быстрого процесса отладки.
Цитата(Defin @ Mar 11 2016, 13:25) *
Если просто работать не будет не так страшно, а вот если напряжение программатора отличается более чем 0.3В, то можно спалить отлаживаемый процессор.

Скорее отладчик.
Как некоторые любят гасить обратными диодами на питание всплески на входных линиях, то на целевой плате напряжение может скакать до 6..7 вольт.
ViKo
Цитата(AlexandrY @ Mar 11 2016, 14:35) *
Согласен, и общесистемный RESET.
Ооочень нужная вещь для быстрого процесса отладки.

Reset нужен, если перепрограммировали ноги SWCLK, SWDIO, так, что уже не подобраться в процессе работы. А под сбросом можно. Т.е. для отладки пригодится, если творить. А если только программировать в потоке производства, тогда лучше сэкономить 2 цента. rolleyes.gif
AlexandrY
Цитата(ViKo @ Mar 11 2016, 13:39) *
Reset нужен, если перепрограммировали ноги SWCLK, SWDIO, так, что уже не подобраться в процессе работы. А под сбросом можно. Т.е. для отладки пригодится, если творить. А если только программировать в потоке производства, тогда лучше сэкономить 2 цента. rolleyes.gif



Кто экономит центы молча приобретает во такое решение - http://www.tag-connect.com/JLINK

А здесь, так понимаю, нужно обсуждение юзкейсов.
ViKo
Цитата(AlexandrY @ Mar 11 2016, 14:45) *
Кто экономит центы молча приобретает во такое решение - http://www.tag-connect.com/JLINK

Да, хороший контактёр. А можно и на прищепку штырьков прицепить.
Defin
Цитата(ViKo @ Mar 11 2016, 14:32) *
Спалить из-за отличия на 0,3 В напряжения на входах, толерантных к 5 В? blink.gif А как же Discovery, почему ничего не палит? rolleyes.gif
Это не PIС, где 12 В жарит непосредственно с программатора. В STM32 напряжения для программирования flash формируется внутре.


Не все STM32 толерантны к 5 Вольтам. Нужно читать документацию на конкретную модель, бывает, что только несколько пинов или портов толерантны.
А остальные пины рады только напряжению питания +0,3В(в среднем). Выше уже начинает течь ток через верхний защитный диод, который слабый и быстро помирает.
Boriska
Цитата(Ruslan1 @ Mar 11 2016, 11:40) *
Попробовал на разных семействах STM32 - везде программируется-отлаживается без первой ноги SWD (3.3V ).

Это скорее зависит от программатора. ST-LINK Discovery и китайский J-link работают без 3.3V. А вот китайский ST-LINK - отказывается.
Ruslan1
всем большое спасибо!
1. ясно, для чего может использоваться.
2. ясно, что для универсального применения лучше оставить.
3. ясно что в конкретно моем случае (питание 3.3 вольта и использование в тепличных условиях, без галваноразвязки) можно и убрать (но, опять же, лучше оставить)

Кстати, про Reset:
буквально неделю назад бодался с китайским маленьким ST-Link V2 и STM32F070: как только я разрешил ноги SWD как GPIO, он перестал видеть мой МК. Разумеется, испробовал и апгрейд прошивки, и "подключение под Ресетом" и прочие опции и в Кейле и в СТ-Утилите - ничего не помогло. Помогло только использование встроенного в плату NUCLEO программатора (там тоже ST-Link V2). Нога Reset физически подключена к МК программатора, попробовал несколько экземпляров программатора.
Разница между ними (китайский мелкий) и Nucleo - и в распределении ног, и в типе МК: у китайца STM32F101, а у Nucleo: STM32F103. Но прошивка у китайца обновилась без проблем, но вот подключаться не хочет. Как только стер свой МК через ST-Link на плате Nucleo - сразу и китайский начал нормально программировать и отлаживать. НО! не работает ресет в кейле, то есть что-то китайцы недоделали.
Повторяю: пробовал несколько китайцев от разных продавцов, все одинаково себя ведут, очень маловероятно что просто сдохший пин Reset на всех. Через недельку жду новых китайских ST-Link, может просто все-таки все три имеющиеся у меня штуки "не гуд".
skripach
Цитата(AlexandrY @ Mar 11 2016, 14:03) *
Прям таки смело. biggrin.gif
Боюсь ST-LINK/V2 ISOL уже не будет работать в такой конфигурации

Общей практикой является вместе с новым конструктивом отладочного канала разрабатывать и новый переходник к отдадочному адаптеру.

Например так:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

Вот такой ещё видел, похожий.


ViKo
Цитата(Defin @ Mar 11 2016, 15:15) *
Не все STM32 толерантны к 5 Вольтам. Нужно читать документацию на конкретную модель...

Я специально посмотрел еще раз в документ. Эти выводы толерантны. Думаю, неспроста. Если найдете иное, сообщите.
Defin
Цитата(ViKo @ Mar 11 2016, 18:25) *
Я специально посмотрел еще раз в документ. Эти выводы толерантны. Думаю, неспроста. Если найдете иное, сообщите.

Тоже пересмотрел.
Как минимум у серии STM32W пины не толерантны, страница 245 даташита STM32W108.
Остальные серии надо смотреть. А у ARM'ов других производителей нетолерантность к 5 Вольтам часто встречается, особенно у малопотребляющих чипов.
HardEgor
Цитата(Ruslan1 @ Mar 11 2016, 14:40) *
Минимизирую место и коннекторы, дошел до разъема программирования-отладки.

Для программирования и отладки через SWD достаточно трех контактов SWDIO, SWCLK и GND, на своих платах только их оставляю.
Может быть для каких-то специальных программаторов и надо полный 20-ти контактный разъём, но ни разу не возникло необходимости.
Baser
На всех демо-платах NUCLEO применяется SWD разъем из 6-и ножек с шагом 2.54 типа как стандартный вариант от STM
6-я ножка резервная (под сигнал SWO), ее можно не ставить. А пять контактов - не много, я их и применяю в такой конфигурации:
Код
Table 4. Debug connector CN4 (SWD)
Pin       CN4                   Designation
1      VDD_TARGET           VDD from application
2      SWCLK                SWD clock
3      GND                  Ground
4      SWDIO                SWD data input/output
5      NRST                 RESET of target MCU
6      SWO                  Reserved
ViKo
По SWO передаются дополнительные данные. Например, чтобы видеть в Кейле график переключения задач, или сигналы в логическом анализаторе. Но в младших семействах STM32 этого сигнала нет. Я оставил только 4 средних контакта из 6 "стандартных", описанных выше, на плате с таким МК. А на плате с мощным МК оставил все 6. Однорядную линейку штырей.
HardEgor
Цитата(HardEgor @ Mar 12 2016, 00:23) *
Для программирования и отладки через SWD достаточно трех контактов SWDIO, SWCLK и GND, на своих платах только их оставляю.
Может быть для каких-то специальных программаторов и надо полный 20-ти контактный разъём, но ни разу не возникло необходимости.

Хе-хе, был неправ. всегда пользовался ST-LINK и проблем не было.
Сейчас принесли ST-LINK/V2, так он не заработал в схеме с 3 контактами. Но, когда подключил напряжение питания 3.3V на pin 1(VCC) 20-ти контактного разьема программатора, всё заработало.
В утилите "STM32 ST-LINK Utility" видно что если VCC не подключен, то программатор не может определить напряжение и не подключается.
Хоть выводи ему джампер на 3.3V....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.