Создаём ST-Link V2

Вариант «пойти и купить», конечно же, рассматривался. Но, поскольку «неспортивно», был оставлен в качестве «плана Б». Очень быстро были найдены фотографии внутренностей полноценного ST-Link, его «слизанная» схема, и всё хорошо, да только прошивки для полного счастья не хватало. Но на третьей странице гугля была найдена ссылочка на наш же форум, где пользователь Chinook выложил «слизанную» им прошивку от ST-Link V2.
Само собой разумеется, вариант «сделать самому» тут же перевесил «план Б». Ну и кроме того, возможность добавить некоторый функционал, отсутствующий в фирменном St-Link, весьма таки грела душу.
Тут надо заметить, что чаще я делаю мелкие девайсики, которые дополняют или расширяют функционал родительских устройств. Счётчики там всякие, интерфейсные платки, индикаторы и прочая тому подобная мелочёвка. И большинство этих штучек получают свои миллиамперы питания от родительского устройства, вживляясь в его схему. Поэтому отсутствие в штатном St-Link возможности запитывать таргет непосредственно от отладчика, и как следствие-отсутствие возможности выбора питания-5 или 3.3 вольта-меня нисколько не радовало. Да, конечно же, существует лабораторный источник питания и всё такое… Собственно говоря, первое включение после сборки всегда через лабораторный БП-мало ли что, даже новые деталюшки и то не всегда бывают исправными, ну а если уж где-то «соплю» проглядеть-так и подавно проблемы будут. Но когда всё проверено-зачем лабораторный БП гонять, если можно запитаться прямо от компа?
Вот примерно с такими мыслями я и приступил к компиляции входных данных. Были изучены доступные схемы отладчиков-из мануалов по разным версиям Discovery и найденные в сети, внесены изменения и доработки, в результате получилась вот такая

Поскольку на момент составления схемы всё ещё были некоторые нестыковки, в частности-разночтения в подключении ножек идентификации, разводка JTAG в одной из схем отличалась, и, кроме того, окончательно было непонятно: заработает этот компот как надо или же нет-то часть ножек контроллера была выведена на контактные площадки для удобства перекоммутации. А если бы эта компиляция не заработала-то эти дополнительные контактные площадки позволят использовать плату как отладочную для какого-нибудь простенького USB устройства. Как раз с целью возможности использовать эту плату как отладочную я и развёл на ней JTAG-интерфейс, ибо JTAG J-Link у меня имеется в виде отдельного устройства. А для облегчения программирования платы теми, кто будет повторять эту конструкцию, на отдельный разъём были выведены все контакты, необходимые при программировании микроконтроллера с использованием его собственного загрузчика. Забегая вперёд, замечу, что ошибки в выбранной мной для работы версии схемы всё же сделали своё чёрное дело, и готовую плату пришлось-таки немного почикать скальпелем и засопливить перемычками. В статью пошла уже исправленная версия схемы и разводки, ну а фотки-уж как есть…
Разводка разъёма SWIM выполнена в соответствии с распиновкой оригинального ST-Link'а, поскольку у меня есть уже очень много устройств, кабеля программирования которых используют именно эту распиновку. А вот распиновка SWD/JTAG разъёма моя собственная. Во-первых, применённый в оригинальном ST-Link разъём не вписывался в выбранный мной корпус, во-вторых, для штыревых разъёмов типа PLS-PLD я, по возможности, предпочитаю делать «диагональные» или «симметричные» разводки разъёмов, как минимум в той части, в которой разведена сила. При этом, если вдруг разъём случайно будет перевёрнут на 180 градусов, земля и питание всё равно попадут на свои места-меньше риска испустить magic smoke. Просто устройство не будет работать. Естественно, если в разъёме присутствуют сигналы выборки или включения, неплохо бы позаботиться, чтобы при перевороте разъёма они попали на пины, которые обеспечат этим сигналам неактивные уровни. Такая себе защита от дурака, хотя и давно известно, что хуже дурака-только инициативный дурак…

Плата разводилась с использованием компонентов типоразмера 0603 под корпус 20-13 фирмы Sanhe. Можно было, конечно, использовать и 0805-места на плате более чем достаточно. Но я уже давненько перешёл на 0603, и не стал изменять своим привычкам. Размещение компонентов выбрано таким, чтобы плату можно было как монтировать в корпус (при этом кварцевый резонатор и разъёмы отладчика запаиваются на обратной стороне платы и используются выводные светодиоды), так и без корпуса, при этом разъёмы и кварц запаиваются сверху, и используется двухцветный светодиод FYLS-1210. Поскольку мне до сих пор не понятно, как и для чего ST-Link использует контроль напряжения целевого устройства, предусмотрена возможность коммутации измерительного входа микроконтроллера с постоянно присутствующего напряжения питания на напряжение питания целевой платы. Для контроля напряжения питания целевой платы необходимо запаять резистор R14, для отключения возможности контроля должен быть запаян резистор R16, причём должен быть запаян либо один, либо второй, но никак не оба вместе. В моей плате запаян R14, всё отлично работает.


Печатная плата устройства во всех отношениях экспериментальная. Экспериментальное устройство, первая проба металлизации отверстий в домашних условиях, первый тентинг с использованием фоторезиста Riston, первая попытка вытравить зазоры 0.2мм на гальванически нарощенной и из-за этого толстой фольге, первое использование сухой плёночной маски… Что-то из всего этого получилось идеально, что-то не очень, но это уже тема для отдельной статьи.
После запаивания компонентов и пробной установки разъёмов плата приобретает следующий вид:

Делаем пробное подключение к лабораторному блоку питания, убеждаемся в отсутствии дыма и нагрева деталей, убеждаемся, что стабилизатор выдаёт свои 3.3 вольта. Потом подключаем платку к компьютеру, который должен бодро отрапортовать о неопознанном устройстве USB. Раз так-значит пока всё в порядке.
Идём на сайт ST Microelectronics и скачиваем оттуда Flash Loader Demostrator. «Повбывав би гадiв», которые ST сайт делали. Найти там что-либо… Впрочем, извините, отвлёкся. Скачиваем, распаковываем, устанавливаем. Прямо на разъём загрузчика одеваем перемычку, которая соединит вывод BOOT0 микроконтроллера с плюсом питания и введёт контроллер в режим загрузчика, туда же подключаем разъём от USB-RS232 преобразователя:

Подключаем это всё в USB следующем порядке: cначала подключаем USB-RS232, затем подключаем ST-Link, отключать потом будем в обратном порядке. Запускаем Flash Loader Demonstrator, и, если мы не поджарили микроконтроллер во время впаивания, не убили его статикой и не перепутали RX/TX при подключении интерфейса, то софтинка должна бодро отрапортовать, что Target is readable. А значит, ещё один шаг к созданию собственного отладчика пройден.
Из прикреплённого к статье архива извлекаем файлик STLinkV2.J16.S4.bin, натравливаем на него Flash Loader, ждём пару секунд. Готово! Отключаем сначала ST-link, затем интерфейс. Я не рассматриваю вариант прошивки через JTAG-у кого он есть, те и сами знают, как это сделать; у новичков же адаптер JTAG вряд ли будет. Собственно, его-то мы как раз и делаем… Итак, отключаем интерфейс программирования, снимаем перемычку, и торжественно подключаем наш свежеиспечённый ST-Link к компьютеру. Который должен найти новое устройство и запросить на него дровишки, которые мы уже успели заблаговременно скачать с сайта производителя. Торжественно подключаем целевое устройство, запускаем IAR (ну или кто там в чём программирует), нажимаем «записать» и… Нифига не работает! Can not communicate with tool. Вот же ж блин! Столько труда и всё впустую. Последующие три дня проходят в попытках понять что же не так. Попытки замыкания ножек идентификации на землю и на питание в разных комбинациях, изучение осциллограмм, курение логов USBLyzer'а… Пока в один вечер, а если точнее-уже давным-давно ночер, не промахнулся по менюшке и вместо STVP не запустил St-Link Upgrade Utility. Хотя и обновлять на ту же самую версию-нонсенс, палец автоматом кликнул «Upgrade». Апгрейд прошёл штатно, но что самое главное-девайс перестал отваливаться и наконец-то заработал! Когда радости немного поулеглись (я аж проснулся), вернул схему к первоначальному виду и повторил эксперимент. И таки да, дело не в перемычках, а в прошивке. Судя по всему, что поскольку Chinook скомпоновал прошивку из двух разных версий, что-то в ней не совсем срослось. И хотя устройство и определяется как полноценный дискавери, работать оно не может. Корректное обновление записывает полноценную прошивку и решает проблему.
Теперь, когда железяка работает, пора подумать и о корпусе. Не, я, конечно, понимаю, что «труЪ киберпанк» и всякое такое… Но пару выездов для работы на территорию заказчиков, когда приходилось располагаться с ноутбуком посреди торчащих прутьев арматуры, а провода и платы размещать между кучками стальной стружки, при этом бояться пошевелиться, чтобы случайно что-нибудь ни на таргет, ни на отладчик не уронить, и самому при этом с насеста не сверзиться-навели на стойкую уверенность, что корпус таки быть должен. Как минимум, одной зоной внимания меньше… Берём наш свежеприобретённый корпус, берём боевой «Дремель» и зубопротезный бор, и через пяток минут жужжания бормашинкой и ещё пяток-шуршания надфилем получаем вот такую красоту:

Ну что ж, теперь можно и разъёмы на их постоянное место впаять, и корпус закрыть. Всё получилось, железяка работает. Но… У нас получилась унылая белая (серая, чёрная-кому там какая попадётся) коробка с двумя разъёмами и перемычкой. Уберём её в ящик стола на месяц-другой, потом решим по


Ну вот, а теперь можно и попрограммировать. Равно как и попрошивать, поотлаживать…

Пару слов напоследок. Поскольку это моя первая статья в сообществе, просьба ногами не бить и гнилыми помидорами/тухлыми яйцами не кидать. Объективная критика, наоборот, очень даже приветствуется. Статью размещаю в личном блоге, можно ли/нужно ли её скопировать куда-то в профильный раздел-пусть решают общественность и Ди Хальт. Отладчик был сделан в январе 2013, и 95% этой статьи было написано тогда же, но дописал оставшиеся 5% и публикую я всё это только сейчас, потому что до сего момента не было случая проверить работу отладчика по SWD и JTAG. Собственно, до этого времени работал преимущественно с STM8. Сейчас появилась девборда с STM32, работоспособность SWD/JTAG проверил, даже прошивку в клоне уже успел обновить на крайнюю, всё в порядке. Так что публикую со спокойной душой. :)
UPD:Перезалил ST-Link V2 PCB.zip, так как в него по недосмотру попала старая версия разводки, та самая, которую пришлось скальпелем чикать. Файл CAMTASTIC-LUT.pdf был старый! С фоторезистным вариантом-CAMTASTIC.pdf всё было и есть в порядке. Если Вы будете пробовать изготавливать плату по ЛУТ-технологии-перекачайте, пожалуйста, архив снова. Извините, недосмотрел, сам я уже давно от ЛУТ ушёл…
UPD2:Коллективный разум в комментариях выявил недостаток этой версии отладчика-отсутствие преобразователя уровней. Собственно говоря, во время проэктирования этой платы я даже и не знал, что в оригинале этот самый преобразователь есть. Соответственно, его отсутствие не позволит работать с целевыми платами, МК в которых запитаны от напряжения существенно ниже 3.3в. С этим отладчиком работа с такими платами будет возможна только в случае временного повышения напряжения питания до 3.3в (если это не приведёт к повреждению каких-либо других компонентов платы, естественно). Ну что ж, появится свободное время-буду думать о второй версии этой платы, уже с преобразователем уровней, и, возможно, гальванической развязкой. А пока хочу отдельно и особо поблагодарить коллег dosikus , GYUR22 ,Katz и Vga за конструктивную критику и ценные комментарии…
- +20
- 15 октября 2013, 19:32
- Highlander
- 4
Файлы в топике:
STLinkV2_Firmware.zip, st-linkv2_upgrade.zip, ST-Link V2 PCB.zip, Altium ST-Link V2.zip
Ну, я ж собственно и говорю-на Ваш выбор. Если подходит-копируйте, я только за. :)
- Highlander
- 15 октября 2013, 20:29
- ↑
- ↓
Я лично не переходит на СТМ ибо АВР в общем то хватало, а прошивальщик покупать за 20$ как то не хотелось. После этой статьи я не просто на шаг, а на километр к СТМ ближе! Спасибо за статью!
Спасибо за статью!Да, собственно, не за что. Пользуйтесь на здоровье. :)
- Highlander
- 15 октября 2013, 21:27
- ↑
- ↓
Я себе заказал клон j-link. За все 11.80, из переходниками и диском… Без переходников… 9$ Брал на алли. Сейчас жду доставки.
Для ARM'ов хорошо, но с STM8 он не работает.
Плюс китайцев приходится перепрошивать каждые 24 часа работы.
Плюс китайцев приходится перепрошивать каждые 24 часа работы.
китайцев приходится перепрошивать каждые 24 часа работы.А можно чуть поподробнее или ссылочку? Как-то этот факт мимо меня проскользнул…
- Highlander
- 16 октября 2013, 08:35
- ↑
- ↓
Это из форума на electronix, где эти клоны обсуждаются. Лицензирование там видимо недоломано и клоны работают в режиме 24-часового триала. По истечении таймера «слетает прошивка» и J-LINK приходится перепрошивать.
По истечении таймера «слетает прошивка»Ясно, спасибо. Поищу, почитаю…
- Highlander
- 16 октября 2013, 10:05
- ↑
- ↓
Не все полгода конечно, но последние пару месяцев он почти всегда включен. Даже когда ухожу на выходные комп работает, проект открыт и стоит на трассировке.
Единственный косяк который был — это где то непропай около разъема. Разберу, пошевелю разъем, подавлю на плату — и все работает, все руки не доходят феном прогреть. Но это к прошивке не относится. Так что за свои 300р очень стойкая штука.
Единственный косяк который был — это где то непропай около разъема. Разберу, пошевелю разъем, подавлю на плату — и все работает, все руки не доходят феном прогреть. Но это к прошивке не относится. Так что за свои 300р очень стойкая штука.
Не пугай. Полгода назад был слет прошивка из за бана серийников.
Ни о каком счетчике наработки и речи не было.
Все прекрасно шуршит.
А по сабжу — сей клон не полноценный, необходим согласователь уровней…
Ни о каком счетчике наработки и речи не было.
Все прекрасно шуршит.
А по сабжу — сей клон не полноценный, необходим согласователь уровней…
Вот ссылка на то что я заказал. Вроде убрали те баги про которые вы говорите. Надеюсь оно заработает, я год назад заказал себе стмку и только сейчас пришла муза эго потрогать.
сей клон не полноценный, необходим согласователь уровнейЕсли честно, задачу «скопировать 1:1» я и не ставил, мне просто нужен был отладчик, покрывающий мои нужды. С чем он прекрасно и справляется. :) Но насчёт преобразователя уровней я обязательно подумаю. Если честно, то когда я проэктировал эту платку, я даже и не знал, что он там вообще есть.
Вот аврал на работе закончится-и можно будет подумать про вторую версию этой платы, тем более, что коллега Katz тут про гальваническую развязку упоминал…
- Highlander
- 17 октября 2013, 09:41
- ↑
- ↓
На том же форуме вроде читал, что все хорошо работает и SWD поправили… Не пугайте меня преждевременно, оно еще даже не приехало.
Ну может в свежих постах и есть инфа о рабочей лицензии, но когда я читал — приходилось периодически перешивать. Что, в принципе, не так уж и страшно, если не пользоваться им круглосуточно.
тоже брал j-link клон за 10 баксов, новый кейл на него при попытке прошить сразу заматерился, сказал мне грустную правду про клон и отключился, в иаре никаких проблем не было, чуть меньше года, пользуюсь редко, на устройстве с 20-ти пиновым jtag
Перешиваешь — дело 5 минут.
Пользуешься и в IAR и в Keil и в кактусе.
Дрова самые наисвежайшие — 4.78а.
JTAG в задницу, SWD юзать.
Плюсом JLink'у SWO выхлоп.
Если нужна инструкция как прошить JLink без танцев с бубном, пишите письма…
Пользуешься и в IAR и в Keil и в кактусе.
Дрова самые наисвежайшие — 4.78а.
JTAG в задницу, SWD юзать.
Плюсом JLink'у SWO выхлоп.
Если нужна инструкция как прошить JLink без танцев с бубном, пишите письма…
Продублирую.
Не люблю я писанину.
Кто хочет, используя мануал из архива, может настрочить.
Я лишь перевел мануал с китайского, да собрал все в кучу, естественно испытав на своем JLink…
Архив: rghost.ru/49417089
Дрова от Segger:
текущие www.segger.com/jlink-software.html
предыдущие www.segger.com/j-link-older-versions.html
При скачке дров вводите любой серийник.
Ругнется, но скачать даст…
Не люблю я писанину.
Кто хочет, используя мануал из архива, может настрочить.
Я лишь перевел мануал с китайского, да собрал все в кучу, естественно испытав на своем JLink…
Архив: rghost.ru/49417089
Дрова от Segger:
текущие www.segger.com/jlink-software.html
предыдущие www.segger.com/j-link-older-versions.html
При скачке дров вводите любой серийник.
Ругнется, но скачать даст…
Хмм… Со стороны, как известно, виднее… Вас не сильно затруднит пальцем ткнуть? Там местами ниточки в качестве экранов протянуты, чтобы импедансы подровнять. Вы об этом или нет?
- Highlander
- 15 октября 2013, 21:38
- ↑
- ↓
прямо по контроллером висячий полигон — хотя рядом есть земля и слева в районе разъема.
про имедансыи ниточки поясните
про имедансыи ниточки поясните
прямо по контроллером висячий полигонА! Это Вы про оставшиеся неподключёнными «островки» от заливки земляного полигона? Дык, нету его там уже, он только на фотках есть. А вот в районе разъёма-да, проглядел, в варианте разводки как на фото этот кусочек был подключён, теперь потерялся. Исправлю.
Что касается «ниточки»-это я так, словца красного ради… :) Слева-внизу в углу между двумя дорожками земля тонюсенькой такой дорожкой протянута. Альтиумовский анализатор целостности сигналов чего-то ругнулся на JTMS. Я сильно разбираться не стал, просто раздвинул дорожки друг от друга, пока между ними не появилась земля. Ругань прекратилась, на том я и успокоился…
- Highlander
- 16 октября 2013, 00:39
- ↑
- ↓
Пока в один вечер, а если точнее-уже давным-давно ночер, не промахнулся по менюшке и вместо STVP не запустил St-Link Upgrade Utility. Хотя и обновлять на ту же самую версию-нонсенс, палец автоматом кликнул «Upgrade». Апгрейд прошёл штатно, но что самое главное-девайс перестал отваливаться и наконец-то заработал!Ага! :) В форуме я по этому поводу отписывался.
Клоны уже вовсю трудятся на производстве.
А планы насчёт гальванической развязки есть? М.б. есть смысл объединить усилия?
Ага! :) В форуме я по этому поводу отписывался.:) Видать, мы с Вами разными путями пришли к одному и тому же решению…
А планы насчёт гальванической развязки есть? М.б. есть смысл объединить усилия?Идея, безусловно, хороша. Прямо сейчас и ещё недельки примерно две мне вряд ли будет до каких-либо изменений в этом проэкте. Давайте в личке пообщаемся по этому поводу, если чем буду полезен-по наличию свободного времени помогу с удовольствием…
- Highlander
- 15 октября 2013, 22:38
- ↑
- ↓
плюс один — нарядно и опрятно (хоть мне и не актуальны СТМ)
зы: на хер ст-линк, рассказывай ужЕ про маску и металлические дырки!!!
зы: на хер ст-линк, рассказывай ужЕ про маску и металлические дырки!!!
- podkassetnik
- 15 октября 2013, 21:56
- ↓
Плата и вправду класно выглядит. Я думал платы из завода, до прочтения вашего комента. Читам не внимательно.
Я думал платы из завода, до прочтения вашего комента.На заводские из-за маски не походит. Вон те желтые пятна выглядят как неравномерность слоя. Хотя меня, в свою очередь, удивило, что маска пленочная, а не жидкая. Видимо, пятна не из-за неравномерной толщины слоя, а из-за чего-то другого.
Ну и отсутствие лужения на падах выдает самодел.
Вон те желтые пятна выглядят как неравномерность слоя.Так и есть. Наносил и прикатывал вручную, грел феном от паяльной станции. Вот там, где слой
тоньше-я её чуть сильнее нагревал или же она чуть дольше находилась между валиками…
Ну и отсутствие лужения на падах выдает самодел.А это у меня тогда химлудилка поломалась… :) Реактив в осадок выпал, кстати, до сих пор не могу понять с какой радости…
- Highlander
- 16 октября 2013, 08:40
- ↑
- ↓
рассказывай ужЕ про маску и металлические дырки!!!Ну, про металлические дырки тут очень хорошо рассказал товарищ evsi в своём цикле статей про металлизацию печатных плат, я просто повторил методику. Да, с металлизацией всё получилось с первого раза, причём вроде как и хорошо, я для уверенности все переходные и прозвонил, и пропаял, причём по тому, как при пропайке припой «проваливался» внутрь отверстий (на этой плате все переходные отверстия-0.5мм)-видно, что металлизация внутри цельная, но… Почему-то эта методика показалась мне неудобной, хотя и полностью работоспособной. Я уже раздобыл хлорид палладия, так что в скором времени будет возможность поставить в домашних условиях промышленный процесс. Ставить процесс буду с фотоаппаратом в руках, результаты будут в «Технологиях..». :)
Что же касается сухой плёночной маски-это тема для отдельной статьи. Да, у меня получилось её нанести, но результатом я не очень доволен. На этой и ещё нескольких платах СППМ накатывалась вручную. Внешний вид-с пивом покатит, но есть нюансы. Если наносить маску только «для вида»-то пойдёт, а вот если её рассматривать в её прямом применении-то не очень. На данный момент я уже сделал самодельный горячий ламинатор, но ещё не пробовал наносить СППМ с его помошью. Как бы то ни было, СППМ и всё что с ней связано-тема для отдельной статьи. Напишу, честное слово, но чуть попозже. :)
- Highlander
- 15 октября 2013, 23:05
- ↑
- ↓
Или запекать, или жарить под ультрафиолетом до полного опупения (или и то и другое) надо. На этой плате запечённая и дополнительно экспонированная, на других пробовал только запекать или только доэкспонировать-держится одинаково хорошо. Запечённая более твёрдая, но и более хрупкая. Кто производитель конкретно моей маски, я не уверен, но, скорее всего, это DuPont. Заказывал на ebay, ссылка на тот лот уже недействительна, но вот похожая. Пока, по результатам опытов с сухой и с жидкой масками, могу сказать только, что жидкая даёт на порядок лучший по качеству результат, но и геморроя с ней в несколько раз больше. В случае с СППМ главная проблема-нанесение…
- Highlander
- 16 октября 2013, 00:01
- ↑
- ↓
нужен вакуумный ламинаторДа, я читал DuPont'овский SpecSheet. Даже пробовал изобразить нечто подобное, но… То ли материал вакуумного мешка был слишком жёсткий, то ли вакуумный насос слабоват, то ли греть надо было сильнее/дольше, но результат получился такой же, как и при ручной накатке, только в несколько раз более трудоёмкий. :) Больше экспериментов пока не производил, но это время уже не за горами…
- Highlander
- 16 октября 2013, 00:10
- ↑
- ↓
Серёж, да я бы тоже забил… :) Но отсутствие у меня двухкомпонентной маски, отсутствие оной также в пределах ближнего окружения(или FSR-8000, или аналогичную у нас уже можно купить не вагонными нормами?), наличие СППМ и однокомпонентной ПМ-побуждают к экспериментам. Ну и кроме того, шило в жопе свербит: у людей же получается её наносить, а я чем хуже? Надо нюансы выяснить, вот с этим пока загвоздка…
- Highlander
- 16 октября 2013, 03:52
- ↑
- ↓
заедешь в гости и я поделюсь двухкомпонентнойНуу… С меня причитается, в общем. Спасибо! :)
- Highlander
- 16 октября 2013, 19:01
- ↑
- ↓
не совсем понял, эту прошивку можно тупо залить в дискавери 32 и получить отладчик для стм32 и 8?
или надо городить плату с выходами на конкретные пины?
не проще ли тогда ж-линк купить, если он вообще уже 10 баксов стоит?
или надо городить плату с выходами на конкретные пины?
не проще ли тогда ж-линк купить, если он вообще уже 10 баксов стоит?
- kalobyte-ya
- 16 октября 2013, 02:33
- ↓
залить в дискавери 32 и получить отладчик для стм32 и 8?Не получится, потому что в discovery32 интерфейс SWIM не разведён(хотя контакты и обозначены на схеме. Ну а для STM32 оно и так работает. :)
не проще ли тогда ж-линк купитьМожет, и проще. Только вот насчёт поддержки J-Link'ом семейства STM8 я как-то не уверен…
- Highlander
- 16 октября 2013, 03:42
- ↑
- ↓
За статью спасибо огромное!
У меня пара тупых вопросов есть:
1. STM8 шьется по SWIM, а STM32 по JTAG?
2. По сути, мы получаем полноценный программатор для всех контроллеров STM + внутрисхемная отладка?
У меня пара тупых вопросов есть:
1. STM8 шьется по SWIM, а STM32 по JTAG?
2. По сути, мы получаем полноценный программатор для всех контроллеров STM + внутрисхемная отладка?
1. STM8 шьется по SWIM, а STM32 по JTAG?Да, плюс для STM32 возможен вариант прошивки и отладки по SWD. На бумажке сигналы SWD не подписаны, но там всё совпадает с оригинальным ST-Link/v2. Собственно, если не хотите лазить в описание оригинала, то вот: JTMS->SWDIO, JTCK->SWCLK, JTDO->SWO, /RST->угадайте сами :) Ну и питание, само собой.
мы получаем полноценный программатор для всех контроллеров STMДа.
- Highlander
- 16 октября 2013, 09:24
- ↑
- ↓
За плату плюсанул. А сколько скажем так времени ушло на изготовление платы? Имеется ввиду без впайки деталей, только плата. Ну то есть с момента отрезания куска платы до последнего штриха.
- Papandopala
- 16 октября 2013, 09:20
- ↓
сколько скажем так времени ушло на изготовление платы?Честно говоря, за давностью времени уже не помню точно, день или полтора. Сейчас бы уже сделал быстрее. :)
- Highlander
- 16 октября 2013, 09:27
- ↑
- ↓
Я вот думаю, предположим мне надо сделать 100 таких плат. Что дешевле/проще, самому их сделать или отдать на завод?
- Papandopala
- 16 октября 2013, 09:37
- ↑
- ↓
проще, самому их сделать или отдатьНу, тут уже всё зависит от… :) Во-первых, начиная с определённого количества (которое будет отличаться от города к городу) завод станет однозначно проще и дешевле. Будет некоторое количество, когда можно подумать, завод или самому. Ну и менее этого количества-либо на заводе за такую мелочь не возьмутся, либо быстрее будет сделать самостоятельно. Кроме того, у нас у всех весьма разный набор оборудования. У меня, к примеру, ЧПУ фрезер (он же роутер, гравер, лазер, 3D принтер) до сих пор в состоянии готовых чертежей механики и полусобранной электроники, и в таковом состоянии он будет ещё как минимум месяца полтора. А у товарища ЧПУ есть, но набора реактивов нет, и желания их мешать тоже. Так что тут каждый сам для себя решит, что и как. Если говорить про мои реалии-то я в своих условиях делал мелкую партию из 32 плат, чуток попроще и поменьше этих, тоже двухсторонние и с металлизацией. Заняло это два дня, причём большая часть одного дня ушла на съездить к товарищу с ЧПУ и посверлить заготовки. :) В остальном же панелизация рулит, когда 16 плат делаются как одна-то и проблем особых нет. Ну, разрезать только потом по готовности, но тоже не архисложно, алмазный диск в «дремель» и вперёд, только пыль летит. Если бы время не поджимало-отдал бы на завод, но надо было за пять дней успеть сделать партию устройств, с завода я как минимум недели полторы бы ждал. Наш местный киевский товарищ Антощенко-палочка-выручалочка тех, кто отлаживает и прототипирует-тоже быстрее чем за три дня не справляется обычно. Пришлось делать…
- Highlander
- 16 октября 2013, 09:57
- ↑
- ↓
Судя по схеме, согласователь уровней из SWIM-части ты выкинул. Почему?
Алсо, покажи бутылочку этого «жидкого скотча». Как я понял, после напыления и просушки остается невысыхающий липкий слой, как на скотче? И сколько он стоит, где взять?
Алсо, покажи бутылочку этого «жидкого скотча». Как я понял, после напыления и просушки остается невысыхающий липкий слой, как на скотче? И сколько он стоит, где взять?
согласователь уровней из SWIM-части ты выкинул. Почему?Ну, тут всё очень банально и просто: До Вашего комментария я и не подозревал о его наличии там. :)
В схемах Discovery он отсутствует, на фотографиях внутренностей первой версии St-Link есть один неопознанный мной восьминогий tssop, но качество фотографии не позволяет прочитать надписи на нём. Стоит он в той части платы, где находится ESD-защита, и естественно, я его посчитал этой самой защитой. Фотографий внутренностей St-Link v2 на момент, когда я занимался этим проэктом, я не нашёл, да и сейчас тоже как-то не очень их наблюдаю…
Кроме того, а так ли он там нужен? Все ноги, имеющие отношение к SWIM, являются 5v-tolerant, да и пятивольтных таргетов с января через этот отладчик уже штук семь разных прошло, полёт нормальный… :)
Но, если ты знаешь, как зовут оригинальную микросхемку-преобразователь уровней, буду премного благодарен за информацию.
покажи бутылочку этого «жидкого скотча»Мне досталась вот такая. По ссылке пишут, что для текстильной печати на flatbed-принтерах (собственно, та фирма этим и занимается), но на баллоне никаких особых примечаний нету, адгезивный спрей да и всё.
остается липкий слой, как на скотче?Да, совершенно верно. Даже пахнет аналогично скотчу, что наводит на размышления. :)
сколько он стоит, где взять?Касательно именно моего-прямо сейчас не скажу, т.к. человек, который на той фирме заведует заказами, сейчас слёг с гриппом. Как выздоровеет-спрошу, если надо. Сам я такой не покупал, мне как года полтора назад вручили «остатки» -чуть менее половины 600мл баллона-так и до сих пор пользуюсь. У них такой баллон за неделю уходит. :) А ближайшие аналоги можно глянуть тут.
- Highlander
- 16 октября 2013, 18:53
- ↑
- ↓
на фотографиях внутренностей первой версии St-Link есть один неопознанный мной восьминогий tssop, но качество фотографии не позволяет прочитать надписи на нёмЭто он и есть. На форуме есть схема самого ST-LINK'а, там указан и тип, и подключение согласователя. Нужен он потому, что STM8 (в отличие от STM32, которые вроде все на 3.3В) работают в диапазоне 1.8-5.5В (разные семейства).
STM32L, так же, как и STM8L — от 1,8(1,65)В до 3,6В, а остальные — от 2...2,2 до 3,6. Так что при питании существенно ниже 3,3 В, преобразователь уровней и им понадобится.
Хрен их знает, но в оригинальном ST-LINK преобразователь стоит только на SWIM, на JTAG/SWD только резисторы и 5.1В стабилитроны. В дискавери даже на SWIM'е нет, но с другой стороны — там питание отладчика и таргета от одного источника, да и заявлена почему-то совместимость только с тем семейством, которое на плате (т.е. по заявлениям ST, отладчик из STM8S DISCOVERY работает только с STM8S).
по заявлениям ST, отладчик из STM8S DISCOVERY работает только с STM8SКогда я пользовался Discovery'вским отладчиком, мне как-то однажды довелось поработать с STM8L. Всё шилось и отлаживалось. L-ка была запитана от 3.3в, да.
- Highlander
- 17 октября 2013, 09:29
- ↑
- ↓
Ага. Но сама ST пишет в мануале на STM8S-DISCOVERY (UM0817, §2.2.2):
Note: This ST-LINK only supports the STM8S family. Do not use it with other STM8 families.ЕМНИП, аналогичные примечания есть и в других STM8 DISCOVERY.
Представления не имею, от какого схема. На одной написано STLINK, на другой STLINK2, на третьей STLINK3. Буфер-согласователь только на последней, SN74LVC2T45. Плюс есть фотки платы от v1 (судя по ее виду). Может, если поискать, то и от ST-LINK/V2 уже где-то схема лежит. Но вроде как и железо от V1 работает с прошивкой от V2, насколько я помню обсуждение на форуме.
а почему бы в программатор не поставить какой нибудь STM32L и не запитаться от устройства а не от USB? тогда исчезнет необходимость в преобразователе уровней.
а вобще как более бюджетный вариант можно попробовать запустить программатор от платы устройства и посмотреть ее реальное минимальное напряжение при котором программатор еще может работать.
с просьбой поэкспериментировать мы пожалуй обратимся к автору Highlander думаю ему тоже будет интересно :-)
а вобще как более бюджетный вариант можно попробовать запустить программатор от платы устройства и посмотреть ее реальное минимальное напряжение при котором программатор еще может работать.
с просьбой поэкспериментировать мы пожалуй обратимся к автору Highlander думаю ему тоже будет интересно :-)
Во первых, конкретно этот программатор можно построить только на двух чипах — STM32F103C8 и STM32F101C8 (которые на самом деле один и тот же кристалл, только второй не прошел какие-то тесты или просто перемаркирован).
Во вторых — обычно преобразователь уровней имеет более широкий рабочий диапазон, чем МК (например, полный диапазон 1.8-5.5В) плюс служит некоторой защитой более ценного МК от различных неприятностей, прилетающих по интерфейсу.
Во вторых — обычно преобразователь уровней имеет более широкий рабочий диапазон, чем МК (например, полный диапазон 1.8-5.5В) плюс служит некоторой защитой более ценного МК от различных неприятностей, прилетающих по интерфейсу.
Позволит ли этот программатор прошивать и другие ARM Cortex? На данный момент для прошивки и отладки NXP LPC1754 по SWD использую обрезанный ST-Link из STM32Discovery. Все манипуляции произвожу из CooCox CoIDE. Это особенность самой CoIDE, которая позволяет ST-Link'у прошивать «не родные» камни или в IAR и KEIL тоже так можно?
- andreykorol
- 16 октября 2013, 11:29
- ↓
Так прошивка там родная от СТ, он будет делать всё точно то же самое, что и другие программаторы-отладчики ст-линк.
- teplofizik
- 16 октября 2013, 12:08
- ↑
- ↓
Где то в это же время собрал себе клон stlink с прошивкой из указанной ветки местного форума, правда не стал заморачиваться JTAG, оставил только SWD, схему собирал из дискавери для 8 и 32 битных мк + использовал фотки оригинала ст линка с того же форума (касательно установки конфигурационных резисторов), запустил, обновил, все заработало отлично, но, хочется большего, давно хочется, да руки никак не доходят:
1) Развести коммутацию для интерфейсов.
Поскольку иногда приходится отлаживать связанные по одному интерфейсу устройства, напрягает дергать шнурки для прошивки от одного у другому (дискавери с шилдами тоже весело, нельзя выбрать по какому именно прошивать, приходится один из них выключать).
Планирую на аналоговых ключах (в основном из-за SWIM интерфейса) сделать коммутацию по принципу переключения между 1-м из 4-х (2 SWD и 2 SWIM), (1 из 2 SWD + 1 из 2 SWIM не вариант, поскольку нельзя в данном случае отлаживать одно устройство на SWD — второе на SWIM).
2) Сделать отдельный ресет для каждого устройства (итого 4 ресета)
3) Сделать регулируемый блок DC-DC с переключением между 1.8 В (мало потребляющие устройства(да-да есть модули GPS работающие только от 1.8 В)), 2.8 В (есть и такие модули, где 2.8 предел), 3 В (под вопросом), 3.3 В (думаю всем понятно), 4 В (для GSM модулей, для многих 3.3 В нижний порог работы и на нем без кондеров, да и с ними, происходит просадка и модуль перезагружается). Регулировку сделать каким нибудь простым stm8s103f3 (на DC-DC преобразователе, в цепи обратной связи в параллель нижнему плечу делителя воткнуть резючков через поливики типа 2N7002, с помощью которых будем менять общее сопротивление нижнего плеча на то, которое нужно). На этот же мк можно посадить коммутацию интерфейсов.
4) Согласование уровней для SWD (тут я думаю пояснять не нужно).
Может кому идея понравится и он ее реализует до того как мои руки до этого дойдут =)
1) Развести коммутацию для интерфейсов.
Поскольку иногда приходится отлаживать связанные по одному интерфейсу устройства, напрягает дергать шнурки для прошивки от одного у другому (дискавери с шилдами тоже весело, нельзя выбрать по какому именно прошивать, приходится один из них выключать).
Планирую на аналоговых ключах (в основном из-за SWIM интерфейса) сделать коммутацию по принципу переключения между 1-м из 4-х (2 SWD и 2 SWIM), (1 из 2 SWD + 1 из 2 SWIM не вариант, поскольку нельзя в данном случае отлаживать одно устройство на SWD — второе на SWIM).
2) Сделать отдельный ресет для каждого устройства (итого 4 ресета)
3) Сделать регулируемый блок DC-DC с переключением между 1.8 В (мало потребляющие устройства(да-да есть модули GPS работающие только от 1.8 В)), 2.8 В (есть и такие модули, где 2.8 предел), 3 В (под вопросом), 3.3 В (думаю всем понятно), 4 В (для GSM модулей, для многих 3.3 В нижний порог работы и на нем без кондеров, да и с ними, происходит просадка и модуль перезагружается). Регулировку сделать каким нибудь простым stm8s103f3 (на DC-DC преобразователе, в цепи обратной связи в параллель нижнему плечу делителя воткнуть резючков через поливики типа 2N7002, с помощью которых будем менять общее сопротивление нижнего плеча на то, которое нужно). На этот же мк можно посадить коммутацию интерфейсов.
4) Согласование уровней для SWD (тут я думаю пояснять не нужно).
Может кому идея понравится и он ее реализует до того как мои руки до этого дойдут =)
4 В (для GSM модулей,От USB GSM-модуль проблематично запитать. Средний потребляемый ток может превысить 500 мА (2 тайм-слота GPRS на передачу), а пиковый — полтора-два ампера. Как минимум два USB порта понадобятся, от одного из них — только питание.
для нормальной работы достаточно 2-х танталов low ESR 470мкФ 6.3В, пики они на себя берут, а средний ток, у меня, не превышал 500 мА при работе с BGS2, SIM900D…
Так там же не только этот модуль будет, а ещё на остальных каналах (1,8В, 2,8В и т.п.) какая-то нагрузка.
я планировал только один канал, максимум два, это ведь отладчик для 2-х устройств, а не для 4-х. Запитывать много каналов не вариант, как раз по причине малой нагрузочной способности USB (про 3.0 я не говорю, не так сильно еще распространен), да и превращать отладчик в лабораторный блок питания, по моему, неправильно…
этот преобразователь нужен только как бонус к отладчику, для отладки небольших, мало потребляющих устройств (давайте только не будем раздувать тему что есть мало потребляющие, что нет, в данном контексте — для устройств с потребляемой мощностью до 2.5 Вт), дабы не городить огород из блоков питания, а запитать все от одного шнурка.
этот преобразователь нужен только как бонус к отладчику, для отладки небольших, мало потребляющих устройств (давайте только не будем раздувать тему что есть мало потребляющие, что нет, в данном контексте — для устройств с потребляемой мощностью до 2.5 Вт), дабы не городить огород из блоков питания, а запитать все от одного шнурка.
алсо, есть на ебее за 10$ SWD+SWIM,
пишут, что аналог V2, только без JTAG
пишут, что аналог V2, только без JTAG
и да, совсем забыл — с почином тебя!:) теперь, видимо, можно будет голосовать за другие топики:) (хер его знает, как на конкретный каммент сцылку дать, но в прошлом году ты сетовал, что за мой топик проголосовать не можешь (по-моему, про зазор между дорожками заметка была:))
- podkassetnik
- 18 октября 2013, 23:27
- ↓
совсем забыл — с почином тебя!:)Спасибо огромное! :)
ты сетовал, что за мой топик проголосовать не можешьАга, было такое дело, верно. :)
За топики я уже давненько благодарности ставлю, а теперь у меня наконец-то появилась возможность ставить плюсики в карму тем людям, которые, с моей точки зрения, пишут интересные и полезные статьи, так что я уже пробежался и благодарностей нараздавал. Вам, кстати, тоже досталось. ;)
- Highlander
- 19 октября 2013, 00:15
- ↑
- ↓
Вам, кстати, тоже досталось. ;)
ну, спасибо!:) [бормочет] лучше б сала выслал:)
- podkassetnik
- 19 октября 2013, 00:25
- ↑
- ↓
[бормочет] лучше б сала выслал:)[тоже бормочет] Та сало як сало, шо його пробовать… (С)
:)
- Highlander
- 19 октября 2013, 00:38
- ↑
- ↓
Большое спасибо за работу! У меня вопрос по поводу светодиодов: какие у вас номиналы резисторов R10, и R11 (они у вас обозначены *). И на схеме у вас указано «запаивать либо R10 либо R12!» На что это влияет? Насколько я понял, если не запаивать R12, то Green будет светится постоянно. А Red будет повторять сигнал от TX, но зачем в этой схеме R10 мне не понятно. Подстройка яркости что-ли=) Если запаять R12 то по идее при включении Red-а Green должен вырубаться. Но не пойму почему тут нельзя запаять R10, и почему R11 остается запаяным всегда? Кстати в вашем устройстве у вас стоит два выводных одноцветных диода?
номиналы резисторов… И на схеме у вас указаноУпс! Ещё один недосмотр… Сначала писалась аннотация, а потом ещё были изменения, а потом переномеровались компоненты, а аннотацию забыл исправить…
Запаивать надо либо R14, либо R16. Это контроль напряжения таргета. Схема компилировалась из схем дискавери, а в них есть разночтения, и в этой части в том числе. Я запаял R14, и всё в порядке. С другой стороны, я не работаю с контроллерами с питающим напряжением ниже 3.3в (и эта схема на них не рассчитана), как оно будет там-х.з. Скорее всего, из-за отсутствия преобразователя уровней-вообще никак.
будет повторять сигнал от TXА это тоже последствия исправления разночтений, но тут всё правильно. :) Дело в том, что в St-Link v2 применено не так часто встречающийся вариант каскадирования светодиодов (кстати, именно этот вариант не позволяет использовать стандартные выводные трёхлапые светодиоды-у них внутреннее подключение другое). Два светодиода со своими гасящими резисторами подключены последовательно от +3.3в на землю, а их средняя точка выведена на ногу контроллера, вот так:

Суммарное напряжение пробоя обоих светодиодов выше, чем 3.3в, поэтому когда вывод контроллера находится в высокоимпедансном состоянии, не светится ни один из светодиодов. Когда вывод устанавливается в «1»-светится один из них, в «0»-другой, если подать импульсы-то вроде как и оба. :) Ножка называется TX, потому что там Tx бутлоадера, а приштатной работе там светодиоды. Что же касается резисторов со знаком (*) — я забыл черкануть аннотацию. При использовании двухцветного SMD-светодиода запаиваются R6 & R12, а при использовании выводных светодиодов-R10 и R11, того же номинала. Там просто ноги у планарного светодиода так расставлены, что пришлось два лишних места на плату положить. :)
- Highlander
- 01 ноября 2013, 21:11
- ↑
- ↓
спасибо за подробные поясненияДа не за что. И да, в моём варианте сборки стоят два одноцветных светодиода. :)
- Highlander
- 02 ноября 2013, 02:51
- ↑
- ↓
Запаивать надо либо R14, либо R16. Это контроль напряжения таргета.я себе вот так буду делать:

вдруг захочется странного.
ну и утаптывать в размеры 30*45мм.
Не буду даже пытаться. Ибо уже получил за пятерку с фришипом в размере 16*40 — просто не интересно.
И ты туда же)
Как оно работает с различными STM8? Проблем из-за отсутствия буфера не возникает?
МК — 101С8? Прошивку считать не пытался?
Как оно работает с различными STM8? Проблем из-за отсутствия буфера не возникает?
МК — 101С8? Прошивку считать не пытался?
Тада. И я тудаже. Просто смысла корячиться за пятерку… Я больше пропиваю каждую пятницу… ;)
камень — да, 101C8, но обновился штатным обновлялщиком с 17 до 19 версии без проблем. Что неиллюзорно намекает на СТМовую политику — у меня все (два десятка) стм32ф100с4 определяются как 32КВ… ;)
Что есть в наличии — 8L152, 8S003, 32S103, 32F100, 32F103 — OK/OB.
Просто играться с разводкой и… Смысла не вижу.
камень — да, 101C8, но обновился штатным обновлялщиком с 17 до 19 версии без проблем. Что неиллюзорно намекает на СТМовую политику — у меня все (два десятка) стм32ф100с4 определяются как 32КВ… ;)
Что есть в наличии — 8L152, 8S003, 32S103, 32F100, 32F103 — OK/OB.
Просто играться с разводкой и… Смысла не вижу.
Ааа дошло) про «запаивать либо R10 либо R12!» наверное имелось ввиду R14, R16. Наверное перенумеровка была сделана после внесения примечания=)
перенумеровка была сделана после внесения примечания
Ага, совершенно верно. Вообще, мне надо себя либо приучить перепроверять аннотации (которые мне лично не надо, а для других я их частенько забываю писать) перед публикацией, либо же покурить таки альтиумовские макросы, вроде там что-то на эту тему было…
- Highlander
- 01 ноября 2013, 21:19
- ↑
- ↓
Я таки очень извиняюсь, а можете сделать сборочный чертеж. А то я тут пытаюсь быстро перерисовать плату под 0805, но непонятно размещение некоторых элементов.
а можете сделать сборочный чертежМнээ… Да я-то как бы и могу, но… Работы сейчас просто навалили выше крыши. Плата не предназначалась для производства, потому сборочный и не делался, равно как и шелкография. Я тут по просьбе treasure добавил к статье проэкт альтиумовский, если после его просмотра у Вас останутся вопросы-спрашивайте… А делать сборочный у меня пока времени нет, так что извините, коли чего не так…
- Highlander
- 05 ноября 2013, 00:37
- ↑
- ↓
Сделал свою плату для стлинка, но не работает. Ткнул осциллом, на светодиоде меандр, то есть горит и зеленый и красный, конекта в ст-линк утилите нет, пишет ошибка коммуникации. В девайсах вижу ст линк донгл. Что может быть?
ПС. Таки в отладках для стм8 МВ867 с завода залита прошивка что позволяет по SWD тоже шить. (Хотя и в системе определяет не как донгл а запоминающее устройство.)
ПС. Таки в отладках для стм8 МВ867 с завода залита прошивка что позволяет по SWD тоже шить. (Хотя и в системе определяет не как донгл а запоминающее устройство.)

- VasiliyBorisenok
- 11 ноября 2013, 22:14
- ↓
Да, прошивал свой кастомный ст-линк с помощью дискавери ф4 и ст-линк утилити.
- VasiliyBorisenok
- 11 ноября 2013, 23:43
- ↑
- ↓
Спасибо, как бы Ваш намек понят… И уже все заработало!!!!:)
Скачал и проапдейтил файлы у себя ST-LinkUpgrade.exe и STLinkUSBDriver.dll после этого телега поехала.
Скачал и проапдейтил файлы у себя ST-LinkUpgrade.exe и STLinkUSBDriver.dll после этого телега поехала.
- VasiliyBorisenok
- 12 ноября 2013, 00:27
- ↑
- ↓
Ткнул осциллом, на светодиоде меандр,Я так понимаю, ваш-это переделка из дискавери? тогда так и должно быть, потому что в дискавери-v.1, а у меня-v.2, они отличаются. Там, где у v1 пин на светодиоды, у v2- выход тактирования целевого проца (8МГц, ЕМНИП). Светодиод у v2 сидит на Tx бутлоадера. Если St-Link utility проца не видит-либо не вошли в режим программирования (BOOT0), либо напутали что-то с подключением uart…
- Highlander
- 12 ноября 2013, 00:22
- ↑
- ↓
Если St-Link utility проца не видитМнда. Я имел в виду Flash Loader demonstrator. :)
Так таки речь шла про Flash Loader Demonstrator или про St-Link upgrade utility? если про апгрейдилку, то она ваш компот и не должна увидеть, опять же, потому что там v1. Попробуйте запустить апгрейдилку для первых версий, если увидит и предложит обновить-то это таки оно…
- Highlander
- 12 ноября 2013, 00:27
- ↑
- ↓
Получается, Вы описали способ — как залить в камень родную прошивку от стм.
- VasiliyBorisenok
- 12 ноября 2013, 00:31
- ↑
- ↓
Получается, Вы описали способЕсли после прочтения статьи у Вас сложилось такое мнение-что ж, не буду Вас в нём разубеждать…
- Highlander
- 12 ноября 2013, 00:38
- ↑
- ↓
Не могу разобрать тон Вашего ответа. Ну и ладно.
Теперь, после внимательного прочтения форума и Вашей статьи могу сказать следующее:
1. В соответствующей ветке форума «правильная » информация прячется, и беглого просмотра может быть не достаточно для понимания 42. (Правильной последовательности прошивки ст-линк.)
2. Вы не внимательно читали форум.(Просто факт.)
2.1. Я тоже, не внимательно читал форум.(Тоже факт.)
3. То, что после прошивки контроллера, нужно обновить прошивку стандартной программой обновления ST-LinkUpgrade.exe, не баг а фича. (Так изначально задумано человеком, который первоначальной опубликовал бинарник прошивки.)
Народ обитает всякий, есть люди, которые не могут тратить много времени, для того что бы докопаться до сути. Из Вашей статьи не однозначно можно интерпретировать Ваше ли авторство шаманства с ST-LinkUpgrade.exe, необходимо ли эта процедура во всех случаях.
Может стоит на информацию из пункта 3 опубликовать в статье в явном виде?
Теперь, после внимательного прочтения форума и Вашей статьи могу сказать следующее:
1. В соответствующей ветке форума «правильная » информация прячется, и беглого просмотра может быть не достаточно для понимания 42. (Правильной последовательности прошивки ст-линк.)
2. Вы не внимательно читали форум.(Просто факт.)
2.1. Я тоже, не внимательно читал форум.(Тоже факт.)
3. То, что после прошивки контроллера, нужно обновить прошивку стандартной программой обновления ST-LinkUpgrade.exe, не баг а фича. (Так изначально задумано человеком, который первоначальной опубликовал бинарник прошивки.)
Народ обитает всякий, есть люди, которые не могут тратить много времени, для того что бы докопаться до сути. Из Вашей статьи не однозначно можно интерпретировать Ваше ли авторство шаманства с ST-LinkUpgrade.exe, необходимо ли эта процедура во всех случаях.
Может стоит на информацию из пункта 3 опубликовать в статье в явном виде?
- VasiliyBorisenok
- 14 ноября 2013, 00:47
- ↑
- ↓
Не могу разобрать тон Вашего ответа. Ну и ладно.Если Вы ищете в моём ответе какую-либо гадость, можете прекращать: её там нет и изначально не было. Если Вы желаете более развёрнутого толкования, то извольте: психологи давно установили, что из одного и того же увиденного события 10 разных человек в общем случае вынесут 10 разных мнений. И если из всего мной написанного Вы для себя лично вынесли только «способ как залить прошивку»-я не смею Вас убеждать в чём-либо другом. Хотя, если честно, только ради «способа» тратить своё-на написание и чужое-на прочтение время я бы не стал. И мне лично жаль, что Вы увидели лишь способ, но я уважаю Ваше мнение.
Вы не внимательно читали форумВсё же, Вы невнимательно читали статью. Мой вариант St-Link был завершён в конце января 2013, о чём в статье написано; а на тот момент, когда я собирал материалы и крайний раз читал форум, топик заканчивался, насколько я помню, на этом сообщении.
Поэтому о
Так изначально задумано человеком, который первоначальной опубликовал бинарник прошивкия судить не берусь. Может и фича, а может и нет.
не однозначно можно интерпретировать Ваше ли авторствоВообще-то, я претендую только на одно авторство: данная статья написана лично мной, плата разведена, сделана, собрана и помещена в корпус тоже лично мной.
Как у меня получилось оживить устройство, я описал в статье. В теперешнее время, по прочтении форума, я знаю, что об обновлении также писали strr и Katz . Поскольку во всей статье Вы усмотрели лишь «способ»-то специально для Вас озвучиваю: ни на «способ», ни на «шаманство» я не претендую, все торговые марки принадлежат их зарегистрированным владельцам, устройство воссоздано мной в общеобразовательных целях для личного использования.
информацию из пункта 3 опубликовать в статьеЭта информация присутствует в явном виде в статье, начиная с ключевых слов:
Can not communicate with tool.и заканчивая словами:
Корректное обновление записывает полноценную прошивку и решает проблему.Более внимательное чтение этого абзаца, по-моему, даёт вполне однозначный ответ на вопрос
необходимо ли эта процедура во всех случаяхХотя, конечно же, я могу и ошибаться…
И, кстати, нужная для корректного обновления St-Link Upgrade utility правильной версии изначально была приложена к статье, как раз рядом с файлом прошивки.
- Highlander
- 14 ноября 2013, 02:17
- ↑
- ↓
Процитирую статью:
Размещение компонентов выбрано таким, чтобы плату можно было как монтировать в корпус (при этом кварцевый резонатор и разъёмы отладчика запаиваются на обратной стороне платы и используются выводные светодиоды), так и без корпуса, при этом разъёмы и кварц запаиваются сверху, и используется двухцветный светодиод FYLS-1210.
- Highlander
- 12 ноября 2013, 17:26
- ↑
- ↓
я по первому варианту в 30*45 поместил:Да вообще, если постараться, то можно прямо в корпус флешки поместить, пожалуй. Разъём для таргета только мелкий какой-нибудь взять.
У Вас классно получилось!
- Highlander
- 14 ноября 2013, 02:20
- ↑
- ↓
ну, этот вариант с огромным количеством оговорок.
1) как несложно заметить, виашки проклепаны. (НЕ металлизация)
2) разъем переиначен.
3) см. п.1 земля под контроллером выведена на топовый полигон, чтобы одной виашкой увести на бот.
4) как видно, выходной разъем переразвел в PLS. (хорошо, не успел попилить корпус)
5) дарю хинт: 0805 (да и 0603 тоже) можно упирать прямо в ногу PLS. а если получается резистор/кондер между ногами PLS/PLD, получается что на схеме он есть, а на плате он почти не показан…
(и еще много соображений забыл. сорри.)
1) как несложно заметить, виашки проклепаны. (НЕ металлизация)
2) разъем переиначен.
3) см. п.1 земля под контроллером выведена на топовый полигон, чтобы одной виашкой увести на бот.
4) как видно, выходной разъем переразвел в PLS. (хорошо, не успел попилить корпус)
5) дарю хинт: 0805 (да и 0603 тоже) можно упирать прямо в ногу PLS. а если получается резистор/кондер между ногами PLS/PLD, получается что на схеме он есть, а на плате он почти не показан…
(и еще много соображений забыл. сорри.)
Да уже описывал не один раз… И секрета в этом нет.
Отжигаем жилу витой пары. Только надо брать медную, а не китайский непонятный сплав. Я в свое время взял десяток метров нашей от одесса-кабель. Подбираем сверло такого диаметра, чтобы жила с небольшим трением входила, тогда при расклепывании не будет сминаться. Отрезаем бокорезами так, чтобы по обе стороны платы выступало по 0,5-0,7мм. В начале стоит использовать прокладку подходящей толщины, потом с опытом будет получаться «на глаз». Ну и аккуратно расклепываем.
По маске. Это однокомпонентная УФ-отверждаемая маска с ибея. По нанесению evsi все очень подробно описал, смотри его самые первые статьи. Берется, как ни странно, на ибее. ;) ну или в личке.
Отжигаем жилу витой пары. Только надо брать медную, а не китайский непонятный сплав. Я в свое время взял десяток метров нашей от одесса-кабель. Подбираем сверло такого диаметра, чтобы жила с небольшим трением входила, тогда при расклепывании не будет сминаться. Отрезаем бокорезами так, чтобы по обе стороны платы выступало по 0,5-0,7мм. В начале стоит использовать прокладку подходящей толщины, потом с опытом будет получаться «на глаз». Ну и аккуратно расклепываем.
По маске. Это однокомпонентная УФ-отверждаемая маска с ибея. По нанесению evsi все очень подробно описал, смотри его самые первые статьи. Берется, как ни странно, на ибее. ;) ну или в личке.
Расклепываете чем?У меня-стальной кубик (да-да, тяжёлое детство и т.п.) весом килограмма полтора в качестве наковальни, керном сделано по центру маленькое углубление, примерно 0.5мм глубиной. Продеваем проволоку сквозь отверстие, упираем кончик в накернённую лунку, опускаем плату на плоскость наковальни, откусываем проволоку сверху с припуском 0.5мм, и проставочкой пристукиваем молотком-сверху проволока расплющивается, снизу чуть «присаживается». Переворачиваем плату-расклёпанная часть ложится на плоскость наковальни, и опять пристукиваем. Проставка у меня сделана из угробленной фрезы-стержень из инструментальной стали диаметром 3 мм, плоский кончик с маленькой фаской. Переходные сделаны по «золотому правилу +0.6мм»: внешний диаметр=диаметр отверстия + 0.6мм. Отверстия у меня 0.5 мм.
- Highlander
- 14 ноября 2013, 18:17
- ↑
- ↓
Попробовал сегодня заклепать платку. Короче мне понравилось)). Клепал проводком от витой пары 0,5мм предварительно залудив.
Лицевая часть со стороны удара молотка.

Потом дополнительно сошлифовал рельефные шляпки, чтоб потом припаять Мегу32 без зависания ног в воздухе.
Фото стороны которая была на наковальне.

Тут получилось сразу хорошо, в следующий раз надо учесть что ответственную сторону (там где намечаются микросхемы) нужно класть на наковальню так как переходное отверстие тут получается менее рельефным. Ну и в конце чтобы развеять свои сомнения по поводу прочности непаянного соединения, я точечно понамазывал клепанные переходные флюсом и прогнал через печку для SMD монтажа, можно было продуть феном но это был бы слишком простой путь для Ембеддед Джедая)))). Как результат на фото видно что припой с луженого провода и с дорожки частично запаял клепаную часть переходного
Лицевая часть со стороны удара молотка.

Потом дополнительно сошлифовал рельефные шляпки, чтоб потом припаять Мегу32 без зависания ног в воздухе.
Фото стороны которая была на наковальне.

Тут получилось сразу хорошо, в следующий раз надо учесть что ответственную сторону (там где намечаются микросхемы) нужно класть на наковальню так как переходное отверстие тут получается менее рельефным. Ну и в конце чтобы развеять свои сомнения по поводу прочности непаянного соединения, я точечно понамазывал клепанные переходные флюсом и прогнал через печку для SMD монтажа, можно было продуть феном но это был бы слишком простой путь для Ембеддед Джедая)))). Как результат на фото видно что припой с луженого провода и с дорожки частично запаял клепаную часть переходного
виашки проклепаны. (НЕ металлизация)Да я в простых прототипах тоже клепаю. Так намного быстрее получается, потому что на мою теперешнюю технологию металлизации уходит почти день, надо гальванику до ума довести, приходится сейчас малым током работать. Только я для расклёпки не отжигаю проволоку, клепаю как есть.
можно упирать прямо в ногу PLSДа, я в курсе. :) Ещё стабилитроны и диоды в SOD-80 хорошо в разъёмы с шагом 2.54 мм упираются. Но при сборке на заводе с таким вариантом расположения иногда бывают проблемы при автоматической пайке, так что так делать лучше только для ручного монтажа. В моём варианте разводки выносить резисторы к разъёмам я не стал, так как мне хотелось сохранить возможность паять разъёмы с разной стороны платы.
- Highlander
- 14 ноября 2013, 17:37
- ↑
- ↓
паста с элемента в отверстие убегаетНу дык вот и я о том же. :)
- Highlander
- 14 ноября 2013, 18:05
- ↑
- ↓
Да вообще, если постараться, то можно прямо в корпус флешки поместить, пожалуй.у меня просто такой корпус уже был. (КА06, кажется, в космодроме)
А формат флешки — это еще больше компромиссов.
У Вас классно получилось!Честно говоря, мне эта плата ОЧЕНЬ НЕ нравится. Показанные платы — две из двух. Как видно, обе не запаяны.
Сейчас упаковываю в этот корпус вариант из статьи… Собственно, зачем я и просил проект.
мне эта плата ОЧЕНЬ НЕ нравитсяХа. Это мне тут просто давеча знакомец-нуб свой нубский дЫвайс на запустить принёс, типа сделал-собрал-не работает, дык я до сих пор под впечатлением ещё. Как там это-«не дай бог увидеть нубский ЛУТ, бессмысленный и беспощадный»… Так что поверьте, у Вас ОЧЕНЬ ХОРОШО получилось… ;)
- Highlander
- 14 ноября 2013, 17:43
- ↑
- ↓
«Стадионисто»- надо запомнить этот термин))). В следующей версии вытравлю на плате логотип «Sochi 2014» чтобы все стало логично))). Вообще программатор делался на скорую руку и целью было максимально повторить оригинал из этой статьи, я тут еще использовал детали которые были под рукой стабилитроны в корпусе SOD80, некоторые резюки напаяны параллельно «бутербродом» чтобы набрать экзотичные номиналы. Плата самодельная мин. дорожка 0.2 мм переходное 1.2 мм но если бы еще немного поиграться можно было бы сократить длину на 7-10мм.
У мну тут мистика случилась. Ко дню выпуска вашей статьи как раз истекали сроки прихода посылки с ебай, должен был китайский st-link придти(тот что в виде флешки). Я уже разочаровался с китайцами поскандалил они в итоге деньги вернули, думаю попандос щас перезаказывать опять месяц жди. И тут статейка ваша, сплошные плюсы короче денег сэкономил раз, руку по платам набил два, да и китайский ST-link мне сразу не понравился тем что у него стабилизатор на борту махонький в SOT23-5 хрен че запитаешь от него. Так что я доволен)))))))))
Спасибо огромное! Недавно умер огрызок от дискавери. Ваши труды здорово сэкономили мне время и деньги!
Хочу сказать, что в данной схеме номиналы резисторов допускают расхождение в 20% кроме R14-R16, диоды на SWIM я не ставил, как и доп. резисторы по 22 Ом. Все работает.
Хочу сказать, что в данной схеме номиналы резисторов допускают расхождение в 20% кроме R14-R16, диоды на SWIM я не ставил, как и доп. резисторы по 22 Ом. Все работает.

Спасибо огромное!Пользуйтесь на здоровье, рад, что статья оказалась полезной. :) Не забудьте также отправить порцию благодарности в адрес коллеги Chinook , который придумал, как выцарапать прошивку… :)
номиналы резисторов допускают расхождение в 20%Да, но тут надо выбирать-либо возможность работать с длинными кабелями, либо опасаться выбить пины интерфейса в случае замыкания на землю или питание. Случаи-то всякие бывают…
диоды на SWIM я не ставил, как и доп. резисторы по 22 Ом. Все работает.Как говорится-хозяин-барин. :) Мне лично с защитами спокойнее. У меня тоже всё работает, скоро уже год будет как. :)
- Highlander
- 16 декабря 2013, 13:12
- ↑
- ↓
Эх раз пошла такая пьянка то вот мой вариант платы в Eagle

ST-Link Eagle
Ссылка где больше картинок моего программатора

ST-Link Eagle
Ссылка где больше картинок моего программатора


Я тоже собрал ))
Пока не шил им, но в системе все видится нормально, думаю проблем не будет.
Спасибо большое )
а я вчера заказал за 200руб. и уверен, что будет работать нормально Your text to link...
Ну если оно не апгредится из V2 стандартным апдейтером прошивки — значит опять нужно переть бутлоадер. За этим стоит обратиться к тому человеку, кто на форуме его из V2 вынул. По идее вытаскивается так же — пишем подсадную прошивку, дампящую флеш МК в UART или еще куда, заталкиваем в апдейтер (тут нужно его ковырять, т.е. прошивка шифрованная) и прошиваем. Хотя если ST сделали выводы и улучшили защиту апдейтера (скажем, перенесли расшифровку прошивки в бутлоадер и добавили подпись) — то будет сложнее.
Еще там кажется есть какие-то баги, за счет которых можно затолкать в ОЗУ МК отладчиком доверенный код даже если МК залочен, но подробности надо гуглить.
Еще там кажется есть какие-то баги, за счет которых можно затолкать в ОЗУ МК отладчиком доверенный код даже если МК залочен, но подробности надо гуглить.
Стоить отметить что на платформе реализован STLink версии 2.1 который как и в версии 2.0 помимо порта программирования отладки SWD(CN4), виртуального COM -> Usart (CN3) имеет особенность работы определяться по умолчанию как сменный Flash носитель, что является весьма полезной опцией для новичков, которые могут программировать микроконтроллер, отправляя на этот носитель бинарный файл прошивки (в данной версии прошивки, не более 20Kb) сгенерированный, например в онлайн среде разработки такой как Mbed. Так же программатор имеет незаслуженно пропущенный из вида общественности отдельно выведенный разъем Usart (разъем CN3 пины RX и TX) реализующий обмен данными с ПК через виртуальный COM
- well-man2000
- 19 октября 2014, 15:35
- ↑
- ↓
Недавно наткнулся случайно на вот такую «доску развития» с рассейским ARM Cortex-M4F из Воронежа K1921BK01T. Туда какой-то энтузиаст, видимо активно почитывающий EE, тоже запихал ST-Link v.2 на STM32F103C8T6 ЖDDD
Интересно, а кто им разрешил это делать, т.е. устанавливать набортный ST-Link, прошитый злодыйски пизженной прошивкой, без разрешения ST Micro?
Гы-ы, видимо следующая версия сей платки выйдет уже с последним писком моды на EE — пизженным J-Link OB :DDD
Интересно, а кто им разрешил это делать, т.е. устанавливать набортный ST-Link, прошитый злодыйски пизженной прошивкой, без разрешения ST Micro?
Гы-ы, видимо следующая версия сей платки выйдет уже с последним писком моды на EE — пизженным J-Link OB :DDD
- well-man2000
- 01 декабря 2016, 01:58
- ↓
С.Лавров: зачем вы лезете к нам из-за яйценюховской канавы? Дебилы, б** ©
Это как критиковать Первые Жигули… мол их тоже у итальянцев спёрли?
ST имеет соглашение с ООО на поставку собственно самих кристаллов и лицензию на использование встраиваемого ПО, также как на производство множества других изделий, о чём они и сообщают на своей странице

Другое дело если данная разработка в золотом корпусе имеет двойное назначение, то абсурдно давать в качестве надёжного источника прямую ссылку на потенциально закладочный непроверенный зарубежный ресурс, а не на свой сайт.
Это как критиковать Первые Жигули… мол их тоже у итальянцев спёрли?
ST имеет соглашение с ООО на поставку собственно самих кристаллов и лицензию на использование встраиваемого ПО, также как на производство множества других изделий, о чём они и сообщают на своей странице

Другое дело если данная разработка в золотом корпусе имеет двойное назначение, то абсурдно давать в качестве надёжного источника прямую ссылку на потенциально закладочный непроверенный зарубежный ресурс, а не на свой сайт.
Комментарии (180)
RSS свернуть / развернуть