Краткий обзор еще одного клона ST-LINK


С момента знакомства с контроллерами STM для прошивки и отладки я всегда пользовался программаторами с плат XXXX-Discovery. В принципе, единственным недостатком такого подхода для меня было то, что на моем небольшом столе, где и так ворох проводов и плат отлаживаемого устройства, Discovery, из которой торчит куча штырей, постоянно норовила перевернуться (кабель USB достаточной жесткий, чтобы перевернуть легкую платку) и что-то закоротить.
В общем приходилось постоянно следить что бы ничего нигде не сжечь. Поэтому начал присматриваться к полноценному программатору в отдельном корпусе.

С другой стороны, поскольку на форуме уже достаточно давно раскурили и повторили практически оригинальный ST-Link, как вариант рассматривалось создание программатора самостоятельно, но все как-то руки не доходили.

В итоге, после этого обзора, был заказан готовый клон в гламурном корпусе, который вчера балогполучно приехал.

Честно говоря, был уверен, что ничего хорошего из этой затеи не получится – слишком уж настораживала цена, но все обошлось. Девайс нормально распознается ST-Link Utility и обоими версиями IARa (для STM8 и ARM) и без проблем прошивает и отлаживает соответствующие контроллеры. По скорости вроде бы (на глаз) то же самое, что и дискаверные линки.

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

Как оказалось – внутри реализован он идентично клону из вышеупомянутого обзора на контроллере STM32F101CBT. Значит нужно будет перепроверить скорость еще раз с таймером — все-таки максимальная заявленная частота этого камня 36MHz, против 72-х у F103.

Несколько слов о недостатках. Во-первых — распиновка обоих интерфейсов не соответствует таковым на дискаверях. Это конечно мелочь, но все же.
А вот дальше немного хуже — че-то я протупил и, аж до момента пока не получил этот клон на руки, был уверен что реализация SWD соответствует таковой на discovery. Оказалось что это не совсем так. Отличий 2:

1. Отсутствует вход VTarget, с которого программатор меряет напряжение программируемого устройства (таргета).
2. Отсутствует линия управления Reset-ом таргета.

Первое, в принципе, лично мне пока не критично – никогда еще ничего не делал на STM32 с напряжением отличным от 3.3в. А вот отсутствие ресета является серьезным недостатком. Например, в последнем моем устройстве несколько десятков раз сталкивался с ситуацией, когда STM32VL-Discovery (в программаторе которого ресет тоже отсутствует) не могла прошить устройство, ругаясь “Can’t connect to target”. Переключился на STM32F4-Discovery. У нее разведен 6-ти пиновый разъем SWD с ресетом – проблемма ушла.

Лирическое отступление: в том же устройстве пару раз сталкивался с ситуацией, когда даже через STM32F4-Discovery IAR не мог приконнектится к устройству для прошивки. Лечилось следующим образом – запускал ST-LINK Utility, коннектился к устройству (у ST-LINK Utility с этим проблем еще ни разу не было) и стирал первый килобайт флэша. После этого все нормально шилось ИАРом.

В общем, как по мне, линия ресета очень нужная и полезная для программатора. Пересмотрев другие клоны на eBay, обнаружил что у них ресет тоже отсутствует как класс (для SWD, у SWIM с этим все в порядке). Поэтому все-таки планирую повторить правильный ST-LINK по статьям из форума и сообщества, добавив туда еще и буфер/преобразователь уровней – если уж заморачиваться и делать – то по максимуму.

Вот собственно и все что хотел сказать.
  • +2
  • 17 января 2014, 15:54
  • Victor

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

RSS свернуть / развернуть
отсутствие ресета является серьезным недостатком
… совсем без сброса вы не остались, есть же программный сброс (который сбрасывает всю периферию кроме системы отладки)
0
Есть то он есть, но в случае когда его не хватает (описывал в статье) — появляется большая проблема которую лично мне не совсем понятно как решать с этим программатором. Когда столкнулся впервые — пробовал вручную зажимать ресет таргета перед запуском программатора — результатов не дало. А вот с программатором от F4 Discovery, который сам управляет железным ресетом таргета, все прошилось без проблем.
0
Все добезумия просто — софтовый ресет не умеет «передавить» кондерчик, висящий на ресете (вы же правильно разводите платы, да?).
Если этот кондерчик убрать (пусть даже временно) — все будет окей, например, SWIM начинает нормально работать по двум проводочкам.

Лично для себя я решил разводить SWIM полноценно и не экономить — даже если кондерчик на ресет разводить через перемычку (резюк 0ом 0603) — все равно неудобно бывает туда-сюда его колбасить.
0
кондерчик, висящий на ресете
А он вообще нужен на современных МК? Тот же атмел для AVR не рекомендует его применять, а что на этот счет говорят доки ST?
0
М-да, это не оригинал. Первое неудобство это папа-юсб тип А — требуется удлиннитель типа папа-мама, а они более редки чем кабеля на микро или мини юсб. Второе это резет и распайка. Я бы лучше отломил отладчик от дискавери 8 и запихал бы в коробку, перепрошив в versaloon. Дешевле и универсальнее. Или купил бы оригинал, стоит каких-то 15 евро, а выглядит красивенько и диодик разноцветный радует.
0
требуется удлиннитель типа папа-мама, а они более редки чем кабеля на микро или мини юсб

[падает] ты это серьезно? без подъебов, просто интересно — где (по географии) такое актуально
0
Ну у меня например есть дома пара кабелей от телефонов с microUSB, один miniUSB и не одного удлинителя… Просто потому что нафик не нужно… А заимев такую хрень пришлось бы шнур покупать… Так что актуально не по географии, а по пользователям…
0
а, ну если с такой точки зрения смотреть, то да — в наше время микро/мини юсб среди большинства людей больше распространены (обычно в виде памятных сувениров от издохших телефонов и т.д.)

я-то думал, что удлинитель с «обычными» usb-a принципиально сложней достать, чем микро/мини:)
0
редки чем кабеля на микро

тем более — насчет микроюсб
0
Честно говоря — долго тупил почему папа-юсб тип А неудобен. Тем более что специально искал именно такой вариант…
А потом до меня дошло — все дело в том что с 2002 года все мои рабочие машины — исключительно ноутбуки. Поэтому для меня такой разъем — большой жирный плюс — сунул в ноут и подключил шлефом к таргету. В случае варианта с юсб мамой (не важно мини/микро/etc) — необходим еще один usb шнурок между ноутом и программатором.

В случае же со стационарной машиной — да, это минус. Хотя лично у меня с соответствующими usb удлиннителями проблем нет — когда-то в компании закупили мышки, а они все шли с такими удлиннителями, но оказались не востребованными так как длины и штатного провода мыши хватает с головой.
0
Тоже работаю на ноутбуке. Но имхо тонкий юсб шнурок меньше мешается чем плоский шлейф от жтага.
0
Хм, возможно действительно так. Посмотрим.
Пока опробовать в боевых условиях не пришлось…
0
Я отсутствие ресета обнаружил во время отладки. Там ресет происходит по железной линии. В принципе, во время отладки можно и кнопку физическую нажать.
0
Я себе другой приобрел, у него аж два резета.
Никак не доходят руки протестить, загружен на работе. Кстати если положить рядом клон Saleae Logic, отличить можно только по наклейке. А ваш больше на игрушку похож.
0
А где ты его купил?
0
Алиекспресс, где же ещё)))
0
И я там же.
0
Посмотрел ради интереса, камень внутри STM32F101CBT6.
0
А прошивку выковырнуть не пробовал?
0
Сейчас нет времени даже протестить его, про download вообще.
0
у 32F101 нет аппаратного USB. как работает? программно?
0
Ага, я точно также в прошлый раз удивился :)

Похоже в 101 серии USB стек в кристалле оставили, но то ли не документировали (что ИМХО врядли), то ли он обрезанный какой-то (что ИМХО тоже вряд ли), то ли просто ST не может гарантировать что в любом 101-м он будет корректно работать, а потому и не говорит что он там вообще есть (что больше похоже на правду).
Кстати, шальная идея — возможно 101-е это просто «не получившиеся» при производстве 103-е — типа как когда-то было с пентиумами и целеронами.

Оригинальное обсуждение тут.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.