Прошить st link v2 китайский через usb
Привет, Хабр!
В данной статье расскажу как модифицировать ST-Link V2 до ST-Link V2.1.
Возможно для кого-то это не будет новостью, но особой инфы по данной теме в инете не нашел.
Кому интересно — прошу под кат.
Предисловие
Так уж случилось, что мне надоели лишние провода.
Немного подумав я вспомнил что на платах Nucleo и Discovery — ST-Link совмещает в себе SWD и VCP (Virtual Com Port).
Первое что пришло в голову — купить самую дешевую из подобных плат, попытаться сдампить прошивку в обход защиты и залить в программатор из китая, либо же развести новую плату.
Однако мне подсказали ссылку на GitHub с уже вытянутым загрузчиком, в итоге получилось то что получилось.
Приступаем к работе
Модификацию можно произвести только на версии софта под Windows, кроссплатформенная версия софта отказывается обновлять девайс!
Есть несколько вариантов модификации, и часть из них нельзя сделать если чип не подходящий (не хватит памяти).
Например, модификацию STM32+MSD+VCP можно сделать только если чип STM32F1xxCBxx, однако у нее есть аналог STM32+Audio, который даст STM32+VCP (в принципе что нам и требуется).
— Паяльник;
— Мультиметр с прозвонкой;
— ПК с ОС Windows (может получится через Wine, не пробовал);
— Архив с нужным софтом и бутлоадером (PASS: QWK2tn+fM.EdjX6z).
— Китайский клон ST-Link V2;
— USB-UART адаптер либо второй ST-Link.
Вскрываем.
Прошивка
Есть два пути — USB-UART (немного сложнее) либо второй ST-Link.
1) Прозвонкой находим резистор который подключен к BOOT0.
Делаем перемычку от стороны этого резистора которая подключена к BOOT0 к 3.3v.
PA9(TX) может быть подключен к светодиоду или резистору рядом с ним, потому прозваниваем.
Подпаиваем UART на PA9(TX) и PA10(RX).
Я делал это так:
Так же подпаиваем питание.
Прошиваем загрузчик Protected-2-1-Bootloader.bin с помощью STM32 Flash loader demonstrator.
После прошивки отпаиваем перемычку, PA9 и PA10 (PA10 оставляем если хотим вывести SWO).
На платах есть по 4 контакта, в некоторых случаях они уже промаркированы, в противном же случае прозваниваем их относительно PA13(SWDIO) и PA14(SWCLK), подпаиваемся вторым ST-Link.
Так же подпаиваем питание.
Устанавливаем STM32 ST-LINK Utility V4.3 из архива, снимаем защиту от записи и прошиваем загрузчик Protected-2-1-Bootloader.bin.
Для снятия защиты в программе STM32 ST-LINK Utility жмем Target > Option Bytes, переключаем Read Out Protection в Disabled и жмем Apply.
Обновление до ST-Link V2.1
После прошивки подключаем прошитый ST-Link (уже почти V2.1) к ПК.
В программе STM32 ST-LINK Utility V4.3 жмем ST-LINK > Firmware update.
Жмем Device Connect — получаем список возможных модификаций:
Выбираем нужную вам модификацию, в моем случае STM32+MSD+VCP, жмем Yes >>>>.
Ждем пока завершится обновление…
Завершающая часть
Так как SWIM и RST после такой модификации не работают — отрезаю их.
Так же отрезаю дублирующие 5V и 3.3V.
Получается 4 свободных пина.
На них подпаиваюсь проводками к чипу:
PA10 -> SWO
PB0 -> NRST
PA3 -> RX
PA2 -> TX
Вывожу все на основной разъем, на оставшиеся свободные пины.
Получилась такая распиновка:
Накарябал скальпелем маркировку на корпусе:
Не забываем отмыть плату после пайки!
В итоге, в ПК девайс определяется так:
Я без понятия чему равен объем виртуальной флешки (в данном случае к ST-Link V2.1 был подключен F103C8).
Если на нее закинуть файл прошивки — программатор прошьет чип без программ.
Спасибо за внимание!
При копировании попрошу оставлять ссылочку на первоисточник.
Привет, Geektimes!
Сегодня хочу рассказать про доработку паяльником китайского ST-Link v2. В него можно допаять вывод SWO для получения отладочной информации и ногу управления Reset’ом для микроконтроллеров STM32 (та нога Reset, что уже есть — для STM8). Возможно для многих это не открытие, но пусть будет информация для начинающих. Кому интересно, прошу под кат.
Зачем оно надо?
Используемый для отладки микроконтроллеров STM32 интерфейс SWD поддерживает передачу отладочной информации через вывод SWO в режиме реального времени, это весьма удобно. Ну а нога Reset нужна для того, чтобы можно было комфортней прошивать контроллер в случае, если интерфейс SWD отключен. Причина конечно притянута за уши, ведь для прошивки всегда можно нажать кнопку Reset ручками, но пусть будет. Например, на заре моего знакомства с STM32, мне пришла отладочная плата с Китая с залитой демо программой моргания светодиодом и отключенным SWD, я не сразу понял, как к ней подключиться.
Сама доработка
Нам понадобится скальпель, паяльник и несколько сантиметров очень тонкого провода, у меня это МГТФ *какой-то там*. На этих программаторах разъем поделен на две части: левую — для STM8 и правую — для STM32, так что существующий там Reset не подходит для STM32, будем делать свой.
Первым делом отрезаем дорожки, идущие к ненужным штырькам. На первом своем доработанном программаторе я отрезал ножки Reset и SWIM, т.к не планировал работать с STM8, но сейчас я буду использовать лишние выводы 3.3 и 5 В (они задублированы на разъеме), чтобы не портить функционал программатора, вдруг пригодится.
Провода необходимо припаять к 18 (Reset) и 31 (SWO) ногам микроконтроллера. То еще занятие, но при определенной сноровке сделать это можно. У меня провода хорошо вошли в отверстия на плате, что дало дополнительную фиксацию. Вообще, по-хорошему, надо сразу закрепить их клеем на микроконтроллере. Свободные концы припаиваем через небольшие резисторы (пусть будут 22 Ома) к только что отрезанным штырькам.
Можно закрыть корпус и подписать новые выводы, чтобы потом не забыть где какой.
Проверка SWO
Для использования SWO необходимо:
Проверка Reset
Допустим по какой-то причине на микроконтроллере отключен SWD: либо вы забыли его включить при инициализации, либо пришла новая плата с зашитой демо-программой. Прошиться конечно можно через притягивание ножки Reset к земле (на отладочных платах обычно стоит кнопка), но это не всегда удобно. Можно ведь просто подключить контакт от программатора и шиться в автоматическом режиме.
В той же программе STM32 ST-LINK Utility выбираем «Connect under reset» и подключаемся для прошивки или очистки памяти микроконтроллера.
Либо в вашей IDE выбираем соответствующий пункт:
Это позволит прошиться и войти в отладочный режим, но как только вы дойдете до инициализации периферии, SWD отключится и связь с контроллером пропадет.
Здравствуйте! Меня зовут Дмитрий Руднев. В этой публикации я поделюсь своим горьким опытом.
В современной разработке широко используются микроконтроллеры STM32. Они обладают неплохим соотношением цена/производительность, вокруг них сложилась развитая «экосистема». Для прошивки этих микроконтроллеров и внутрисхемной отладки обычно используют интерфейс Serial Wire (SWD).
В процессе отладки бывает всякое. Не беда, если STM32 после прошивки ведёт себя неадекватно. Обидно, если при этом к нему не удаётся подключиться.
На этом месте не надо впадать в отчаяние, т.к. «убить насмерть» STM32 в процессе программирования непросто, и его работоспособность можно восстановить штатными средствами.
После аппаратного сброса микроконтроллер первым делом запускает системный загрузчик. Системный загрузчик проверяет состояние входов BOOT0 и BOOT1 и по их состоянию определяет режим дальнейшей загрузки. В зависимости от состояния BOOT0 подключиться к микроконтроллеру можно, как минимум, двумя разными способами.
Connect Under Reset
Если на входе BOOT0 обнаружен низкий уровень, системный загрузчик передаёт управление пользовательской программе, находящейся в FLASH-памяти. Если при этом к интерфейсу SWD подключен в режиме «Connect Under Reset» внутрисхемный отладчик, ему удаётся управление перехватить.
Рассмотрим, как это сделать с помощью программы STM32 ST-LINK Utility и программатора ST-LINK/V2-1. Программа была получена с официального сайта ST. Программатор пришёл в составе платы NUCLEO-F446ZE.
Запускаем программу, входим в «Settings»:
В окне «Settings» выбираем режим «Connect Under Reset»:
Подключаемся к нашему «кирпичику»:
Производим очистку памяти программ:
Подключение по UART1
Очень часто для прошивки STM32 применяются недорогие китайские клоны ST-LINK/V2. Без аппаратной переделки режим «Connect Under Reset» они не поддерживают. В этом случае стоит попытаться очистить память программ, подключившись к микроконтроллеру по UART.
Если подать на вход BOOT0 высокий уровень, то можно подключиться к микроконтроллеру через интерфейс UART1 с использованием программы Flash Loader Demonstrator. Программу можно получить с официального сайта ST. Преобразователь USB–UART подойдёт любой.
Запускаем программу. Выбираем COM-порт, к которому подключен преобразователь USB–UART:
Убеждаемся, что соединение установлено:
На следующем экране программа показывает области памяти микроконтроллера:
На следующем экране мы должны выбрать действие. Выбираем Erase – All:
Очистка памяти программ успешно завершена:
На этом месте надо вернуть на вход BOOT0 низкий уровень.
От автора
Любое несчастье, которое происходит с Вами, с кем-то другим уже происходило. Всё, что описано в публикации, происходило со мной и моим оборудованием.
Первая часть публикации повествует о том, как я в самом начале самоизоляции «закирпичил» новенькую оригинальную NUCLEO-F446ZE.
Это не стало для меня ударом, т.к. я уже знал, что делать. Наоборот, в процессе восстановления работоспособности платы я даже получил какое-то удовольствие от работы.
Предыдущий опыт был более трагичным. Я использовал совсем бюджетную плату в связке с очень недорогим клоном ST-LINK/V2. В один прекрасный миг, связь с платой по SWD пропала.
Результаты поиска в сети убедили меня использовать режим «Connect Under Reset». Ничтоже сумняшеся, я подключил вывод NRST микроконтроллера к выводу «Reset» программатора. Не знал я тогда, что этот вывод используется только при работе с STM8.
Сигнал сброса не проходил. Связь по интерфейсу SWD не восстанавливалась. Игры с кнопкой «Reset» на плате результата не давали. В самый раз было начинать читать мануалы.
И метод RTFM сработал! Из раздела «2.3.10 Boot modes» datasheet DS5792 rev13 я узнал про загрузку через UART1. Затем я нашёл информацию о Flash Loader Demonstrator. Восстановить работоспособность STM32F103RET6 с этими инструментами было уже несложно, что и вылилось в 113 слов и пять картинок второй части публикации…
Итак. Не будем здесь описывать для чего нужна данная плата. Думаю те кто ей заинтересовался знают о ее возможностях.
Но распиновку устройства все-же покажу для наглядности:
Я лишь покажу здесь как подключить usb/ttl или st-link для прошивки устройства. И как подготовить программу arduino ide для прошивки stm32.
Чтоб начать работу данной платы с arduino ide. Нам необходимо подключить usb/ttl конвертер к плате следующим образом:
ВАЖНО! Микроконтроллер stm32 имеет 3.3 вольтовую логику. Следовательно и usb/ttl должен быть таковым. Я же прошивал на видео обычным, который имеет 5 вольтовую логику. Но это не правильно. Всегда есть риск спалить устройство.
Также нужно поставить джампер как показано на картинке.
Итак, после того как подключили конвертер к плате и поставили перемычку правильно. Нам нужно скачать несколько приложений:
После того как все скачали, разархивируем архивы. Устанавливаем программу STM32 Flash loader demonstrator. Она не устанавливается на рабочий стол. Ее можно найти по слову deminstrator gui. После того как установили приложение. Откроем его.
И откроется первое окно, в котором выбираем COM порт которым определился usb/ttl конвертер. И нажимаем кнопку далее.
В этом окне если у Вас в первом блоке есть красные надписи, то нажимаем кнопку “Remove protection” и нажимаем Next. Ну и если у Вас все также как у меня на скрине, то ничего не делаем а сразу нажимаем “Next”.
Тут выбираем какая у нас плата. Возможно выбрать из двух вариантов. на 64К и на 128К. В моем случае это на 64К. Как определить? Если у Вас микроконтроллер STM32F103C8 то это 64К. А если STM32F103CB то это 128К.
После того как выбрали контроллер, нажимаем “Next”
В этом окне выбираем “Download from file” и переходим в распакованный архив STM32duino-bootloader. Там в папку binaries и выбираем файл gd32f1_pc13.bin .
Ну и тоже нажимаем далее. После этого начнется загрузка .bin файла.
После загрузки закрываем программу.
И открываем Arduino ide.
Если Вы ахив Arduino_stm32 положили корректно по пути Документы/arduino/hardware/ То при открытии программы Arduino ide в Инструменты в выборе платы должна появиться возможность выбора платы:
И для того чтоб плату заливался скетч необходимо выбрать “Generic STM32F103C series”
Теперь что касается прошивки. У меня работает 2 метода. Первый это прошивка через usb/ttl. Для этого нужно выбрать в “Upload method” нужно выбрать ” serial:
И все у Вас замечательно загрузится в микроконтроллер.
Но платы STM32F103C8T6 часто предлагают на aliexpress сразу с программатором st-link v2. С ним скетч в плату загружается гораздо быстрее. У него сразу 3.3 вольтовая логика, какраз которую хочет наш контроллер. По этому правильнее будет грузить программы в контроллер через st-link. Для этого подключим его к плате следующим образом:
После подключения, в “Upload method” нужно выбрать “STLink” и все. Теперь будет загружаться все через данынй свисток.
На этом все. Спасибо за внимание. Надеюсь статья помогла Вам.
Как-то так исторически сложилось, что, хоть и «подружился» с микроконтроллерами от ST Microelectronics я уже давненько, но полноценного отладчика до сих пор у меня не было. «Подсадил» на STM8 меня друг, подарив на день рождения платку STM8S-Discovery. Вдоволь наигравшись с целевым камушком, я отключил отладочную часть платки, а встроенный ST-Link стал «рабочей лошадкой» в моей лаборатории. Таковым и оставался бы до сих пор, и всё было хорошо, да вот где-то с полгода назад случилась ситуация, которая сподвигнула меня на изыскания по размножению отладчика: мне пришлось подключить обратно отладочную часть дискавери, так как проэкт, над которым предполагалось работать, использовал тот же проц, что и в дискавери, и обросла платка некислым таким «ежиком» из проводов и деталюшек, закипела работа… А тут заказчик звонит-мол, приедь ко мне да подправь, плиз, прошивочку в своём устройстве-да там фигня, задержку на секунду увеличить и всего-то делов… А «рабочая лошадь» чуть ли не намертво к рабочему столу привязана проводами да кабелюками, блин! Пришлось разбирать, конечно… Вернувшись от заказчика и грустно поглядев на то, что ещё утром было полем для бурной деятельности по проверке идей-полез искать вдохновения в гугле. Кому интересно, что из этого получилось-добро пожаловать под отрезь… :)
Вариант «пойти и купить», конечно же, рассматривался. Но, поскольку «неспортивно», был оставлен в качестве «плана Б». Очень быстро были найдены фотографии внутренностей полноценного ST-Link, его «слизанная» схема, и всё хорошо, да только прошивки для полного счастья не хватало. Но на третьей странице гугля была найдена ссылочка на наш же форум, где пользователь Chinook выложил «слизанную» им прошивку от ST-Link V2.
Само собой разумеется, вариант «сделать самому» тут же перевесил «план Б». Ну и кроме того, возможность добавить некоторый функционал, отсутствующий в фирменном St-Link, весьма таки грела душу.
Тут надо заметить, что чаще я делаю мелкие девайсики, которые дополняют или расширяют функционал родительских устройств. Счётчики там всякие, интерфейсные платки, индикаторы и прочая тому подобная мелочёвка. И большинство этих штучек получают свои миллиамперы питания от родительского устройства, вживляясь в его схему. Поэтому отсутствие в штатном St-Link возможности запитывать таргет непосредственно от отладчика, и как следствие-отсутствие возможности выбора питания-5 или 3.3 вольта-меня нисколько не радовало. Да, конечно же, существует лабораторный источник питания и всё такое… Собственно говоря, первое включение после сборки всегда через лабораторный БП-мало ли что, даже новые деталюшки и то не всегда бывают исправными, ну а если уж где-то «соплю» проглядеть-так и подавно проблемы будут. Но когда всё проверено-зачем лабораторный БП гонять, если можно запитаться прямо от компа?
Вот примерно с такими мыслями я и приступил к компиляции входных данных. Были изучены доступные схемы отладчиков-из мануалов по разным версиям Discovery и найденные в сети, внесены изменения и доработки, в результате получилась вот такая spaghetti diagram схема:
Поскольку на момент составления схемы всё ещё были некоторые нестыковки, в частности-разночтения в подключении ножек идентификации, разводка 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 за конструктивную критику и ценные комментарии…
Читайте также: