Как обновить st link v2
Перейти к содержимому

Как обновить st link v2

STM32 — Обновление прошивки в ST-Link

При покупке, в ST-Link обычно не самая свежая прошивка. Ведь он мог долгое время находится на складе прежде чем до него дошла очередь продажи и при изготовлении в него могли залить предыдущую версию прошивки.
Чтобы обновить прошивку, нужно отправиться на сайт компании ST и скачать программу ST-LinkUpgrade. На сайте несколько мест где ее можно скачать и как оказалось, версии прошивки отличаются.
Например на данный момент для ST-Link v2 этой странице версия V2.J24.S4 выпущенная 20.05.2015, а здесь посвежее, версия V2.J27.S6 выпущенная 26.02.2016. Чем они отличаются не знаю. Наверное добавили новые возможности, устранили известные ошибки (добавив новых ). В любом случае, лучше обновится. Хотя в сети пишут что иногда при обновлении ST-Link превращается в "кирпич", но его можно восстановить залив прошивку через USART, JTAG или SWD, но для этого придется разобрать отладчик.
У меня обновление прошло успешно.
Скачиваем архив и в папке Windows находим файл ST-LinkUpgrade.exe и запускаем его (если у вас не Windows, тогда запускаете файл STLinkUpgrade.jar из папки AllPlatforms).
В окне есть кнопка "Device Connect", по которой нужно кликнуть чтобы установить связь с ST-Link и узнать версию прошивки в нем.

http://s9.uploads.ru/t/I9GiS.png

В поле "Firmware Version" показана текущая версия прошивки в ST-Link, а в поле "Upgrade the firmware to", версия до которой может обновить программа. Если передумали обновлять прошивку, то просто закрываем окно, а если все же хотим ее обновить, кликаем кнопку "Yes >>>>" и ждем окончания обновления.

Бывает что при клике по кнопке "Device Connect" появляется сообщение что ST-Link не в режиме DFU. Нужно переподключить отладчик.

Со временем версии прошивки могут поменяться, поэтому залил на сайт текущую версию.

Как обновить st link v2

В популярных платах компании ST (STM32F4DISCOVERY, 32F429IDISCOVERY и других) основанных на процессоре STM32F4xx, имеется встроенный отладчик ST-LINK. Этот отладчик работает на отдельном процессоре STM32F103CBT6. Некоторые версии прошивки для этого отладчика поддерживают комбинированное USB-устройство, в котором отладчик ST-LINK совмещен с виртуальным COM-портом VCP. Это дает удобную возможность организовать отладочный вывод в консоль терминала.

Для обновления firmware ST-LINK есть 2 утилиты: STSW-LINK007 [1] и STSW-LINK004 [2]. Обе работают через интерфейс USB, используя встроенные возможности для обновления в прошивке отладчика ST-LINK. STSW-LINK007 более простая утилита, STSW-LINK004 более продвинутая (STSW-LINK007 входит как составная часть в пакет установки STSW-LINK004), но в сущности они делают одно и то же.

STSW LINK007 ST LINK Upgrage Utility

STSW LINK004 STM32 ST LINK Utility

К сожалению, не все прошивки отладчика ST-LINK позволяют обновиться до версии, которая поддерживает комбинированное устройство ST-LINK+VCP (подробнее см. [3]). Если у Вас старая версия прошивки ST-LINK, то для использования утилиты обновления [1] или [2] для получения версии ST-LINK с поддержкой VCP (ST-LINK/V2-A или ST-Link V2.1) необходимо сначала воспользоваться ROM-загрузчиком чипа STM32F103CBT6, чтобы записать firmware отладчика ST-LINK версии 2.1.

ROM-загрузчик STM32F103CBT6 работает через ножки порта USART PA9 TX (ножка 30 корпуса LQFP48) и PA10 RX (ножка 31 корпуса LQFP48). Активируется ROM-загрузчик при включении питания, если в этот момент вывод BOOT0 (ножка 44 корпуса LQFP48) притянут к уровню лог. 1 (+3.3V). Для взаимодействия с ROM-загрузчиком (передачи ему прошивки) используется утилита STM32 Flash loader demonstrator [4].

[Обновление до ST-LINK/V2 с помощью ROM-загрузчика]

1. Подключите USB — TTL UART адаптер к ножкам U2 STM32F103CBT6 — PA9 TX (выв. 30) и PA10 RX (выв. 31), ножку BOOT0 (выв. 44) соедините с питанием 3.3V. Ниже на рисунке в качестве примера показано подключение к микроконтроллеру STM32F103CBT6 отладчика ST-LINK на плате STM32F4DISCOVERY. Сигналы TX и RX можно найти на SMD-резисторах R4 и R17 соответственно, а BOOT0 на R7, +3.3V удобно взять с конденсатора C7, землю с ножки 3 коннектора CN2 SWD:

ST LINK STM32F4DISCOVERY connections to ROM bootloader

2. Включите питание STM32F103CBT6, и с помощью FLASHER-STM32 [4] запишите а память STM32F103CBT6 файл Protected-2-1-Bootloader.bin (это прошивка, которая взята из статьи [6]).

3. Отключите питание от платы, отсоедините TTL UART адаптер от ножек PA9 TX и PA10 RX STM32F103CBT6, ножку BOOT0 соедините с GND (т. е. верните все как было).

4. Подключите питание, соединив с компьютером плату STM32F4DISCOVERY через коннектор CN1. В Диспетчере Устройств Windows должно появиться устройство STM32 STLink.

5. Запустите STM32 ST-LINK Utility (версии 4.3.0.0), выберите в меню ST-LINK -> Furmware update. Откроется окно утилиты обновления.

Важное замечание : STM32 ST-LINK Utility нужна именно версии 4.3. Более новая утилита может не работать, например версия утилиты 4.6 на прошивку Protected-2-1-Bootloader.bin выдаст сообщение «неизвестная версия firmware». Правильную версию STM32 ST-LINK Utility 4.3 и прошивки ST-LINK см. в архиве [7].

Нажмите кнопку Device Connect, появятся возможные варианты обновления:

— STM32 Only . Отладчик ST-LINK будет поддерживать только микроконтроллеры STM32.
— STM8 Only . Отладчик ST-LINK будет поддерживать только микроконтроллеры STM8. Редко используемый вариант.
— STM32+STM8 . Получите возможность отлаживать микроконтроллер на этой плате, и также можно будет прошивать и отлаживать внешние устройства как STM32, так и STM8. Для подключения внешних отлаживаемых устройств используется коннектор CN2 SWD, при этом надо снять перемычки с коннектора CN3.
— STM32+MSD+VCP . В этом варианте отладчик ST-LINK будет работать как комбинированное устройство USB: отладчик и виртуальный COM-порт. Мне этот вариант нравится больше всего, потому что дает возможность в программе использовать отладочную консоль через USART2 микроконтроллера STM32F407.
— STM32+Audio . Не знаю, что означает эта опция. Однако она тоже поддерживает виртуальный COM-порт. Если кто-то разобрался, оставьте сообщение ниже в комментарии.

После выбора варианта нажмите кнопку «Yes >>>>». Через несколько секунд ST-Link обновится до нужной версии.

ST LINK Upgrage select variant

[ Виртуальный COM-порт в отладчике ST-Link ]

Если выбрать прошивку STM32+MSD+VCP, то вместе с отладчиком ST-Link получается виртуальный COM-порт (комбинированное устройство USB), который очень удобно использовать как консоль терминала. Компьютер хоста отладки может посылать и принимать символьные сообщения через USART2 отлаживаемого микроконтроллера U4 STM32F407VGT6.

Замечание: вариант STM32+MSD+VCP подойдет в том случае, если у Вас STM32F103 с памятью программ 128 килобайт (STM32F103CBx или китайский чип STM32F103C8x). Если же размер памяти 64 килобайта (STM32F103C8x), то вместо варианта STM32+MSD+VCP выберите STM32+Audio, у него тоже реализован VCP.

Схема соединений для STM32F4DISCOVERY получается следущая:

[U2 STM32F103CBT6 ST-LINK] [U4 STM32F407VGT6]
PA2 TX ———— > ———— PA3 RX
PA3 RX ———— < ———— PA2 TX

Примечание: для платы 32F429IDISCOVERY с микроконтроллером STM32F429ZIT6 соединения между портами USART уже разведены. Вместо USART2 отлаживаемого микроконтроллера STM32F429ZIT6 здесь используется USART1 и его ножки портов PA9 (TX) и PA10 (RX)

[U2 STM32F103CBT6 ST-LINK] [U5 STM32F429ZIT6]
PA2 TX ———— > ———— PA10 RX
PA3 RX ———— < ———— PA9 TX

ST-Link v2

ST-Link v2

ST-Link/V2 специальное устройство разработанное компанией ST для отладки и программирования микроконтроллеров серии STM8 и STM32. Про сам прибор можно прочитать на сайте компании ST.

Основные его возможности:

Выход 5В для питания устройства

USB 2.0 высокоскоростной интерфейс

SWIM, JTAG/serial wire debugging (SWD) интерфейсы

SWIM поддержка низкоскоростного и высокоскоростного режимов

SWD and serial wire viewer (SWV)

Возможность Обновление прошивки

Так как микроконтроллеры STM32 построены на ядре ARM Cortex, которое имеет интерфейс отладки SWD, то ST-Link позволяет программировать и отлаживать и другие 32-битные микроконтроллеры на базе ARM-Cortex.

Это, можно сказать, единственный программатор микроконтроллеров STM8. Для программирования STM32 существуют и другие универсальные программаторы.

Где можно купить программатор STM8 STM32 ST-Link

На текущий момент интерес к микроконтроллерам ST очень большой. Поэтому программатор ST link довольно широко распространен на рынке. Существует несколько версий, отличающихся по цене.

Оригинальный ST Link от компании ST, как всегда, самый дорогой вариант. Стоит больше 2 000 руб.

Мини ST link (очень похож на наш вариант этого программатора) стоит около 600 руб. Купить его можно у крупных поставщиков электроники — Компэл, Терра электроника и другие.

Ali express (Китай) — тут предлагается большое количество самых простых вариантов Программатора, но в общем, они все рабочие, ими вполе можно пользоваться. Как правило они годятся для программирования STM8 и STM32. Единственное, они не имеют SWO выхода, но он нужен не так часто. Пожалуй, единственный минус тут, это ожидание покупки. Стоимость около 150-200 руб.

Если вам не нужен программатор STM8, а нужна только серия STM32, то хорошим вариантом будут платы Discovery от ST, они имеют на бору и программатор ST link. Однако, как правило, разъем для программирования STM8 там не разведен.

Ну и конечно, можно просто купить детали и сделать данное устройство самостоятельно. В основе лежит не самый дешевый микроконтроллер STM32, да и купить детали дешево не так просто, так что, стоимость будет от 300 до 400 рублей. В данной статье мы будем рассказывать, как собрать данный прибор самостоятельно из набора необходимых SMD компонент. Конечно же мы рекомендуем пойти этим путем. Только так вы сможете научится трассировке плат, их изготовлению и паянию.

Как изготовить программатор ST-LINK V2

1. Прочитать эту статью внимательно и до конца!

2. Подготовить или приобрести необходимые инструменты: все для пайки, USB UART адаптер (будет нужен для программирования МК)

3. Внимательно прочитать статьи из раздела Обязательная теория.

4. Скачать необходимые файлы по данному прибору с github.

5. Изготовить плату для прибора самостоятельно (это совсем несложно, в нашей инструкции все подробно описано).

6. Приобрести все необходимые комплектующие можно в нашем магазине за 300 руб.

7. Запаять все компоненты на плату, смотри наше видео.

ПРИБОР ГОТОВ, можно пользоваться!

Поиск схемы для ST Link программатора, отладчика

Сама компания ST не дает нам схему данного прибора, однако есть схемы ее ознакомительных плат серии DISCOVERY, в которых приводится и схема отладчика. Например документ UM0919. Но она не полная, там присутсвует только SWD интерфейс. В основе микроконтроллер STM32F103C8T6.


Вторая схема, которая есть в документе UM1670, содержит выводы SWIM выходов, но это уже версия V2.2 на другом микроконтролере STM32F103CBT6.


Также в интернет удалось найти схему ST-LINK v2, восстановленную по оригинальному прибору:

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

Требования к нашему ST-LINK

Мы будем делать приборы на базе STM8, а также STM32, процессоров NUVOTON Cortex-M0, ATMEL. Все они будут питаться от 3.3В или 5В. Так что, нам не нужна возможность работать с микроконтроллерами на напряжении 1.8В. Но сама возможность программировать STM8 нужна обязательно.

Мы делаем прибор для своих задач, поэтому у нас нет необходимости в стандартных разъемах SWIM и JTAG. Будет делать такой разъем, который удобнее для трассировки платы.

Версия 2.2 на микроконтролере STM32F103CBT6 добавляет второе USB устройство — COM порт UART, но он уже у нас есть, так что, нет смысла переплачивать, микроконтроллер там дороже. Правда у него есть хорошая возможность — прошивка через интерфейс DFU, то есть микроконтроллер видится как флешка при подключении по USB, и прошивку просто надо скопировать на диск. Но прошить надо будет один раз, и для этого у нас есть USB UART адаптер, прошивать первый раз будет через него. Дальнейшее обновление прошивки идет уже через программу от ST по USB. Мы будем делать версию 2.0 на базе STM32F103C8T6.

Оригинальная версия ST-Link содержит микросхему преобразования уровней, что удобно для отладки и прошивки готового устройства, и необходимо для работы с напряжением ниже 3.3В. У нас таких не будет, а для работы с 5В и 3.3В — преобразование уровней не нужно.

Прибор будем делать в формате USB dongle, соответсвенно будет использоваться разъем USB-A male.

На защите выходов можно сэкономить, так что не будем использовать защитные диоды. Достаточно будет сопротивлений на всех выходах разъемов на случай, если вдруг мы их подключим на 5В или землю. Надо обязательно иметь в виду, что пользоваться данным прибором надо аккуратно! Все выходы при подключении проверять несколько раз! Выход 3.3В больше защищен, он идет через регулятор напряжения, защищающий от КЗ. Так что, лучше питать тестовые схемы от него!

Теперь можно составить финальную схему нашего ST-Link.

В интернет предложено много готовых плат и схем данного прибора, но в целях обучения мы специально строим схему и делаем плату сами, основываясь на DATASHEET, выложенных проиводителем. Если вы копируете схему с какого либо другого сайта вы должны в ней разобраться, что и как там сделано, почему выкинули или добавили какие-то элементы.

Финальная схема

Саму схему вы можете посмотреть в файлах данного прибора. Здесь же приведем ее для комментирования основных узлов.


Питание и разъемы:

В качестве регулятора питания на 3.3в используем NCP603 — очень хороший LDO, выдает ток до 300ма с падением 300mv и точностью +-3%. Светодиоды индикации — обычные smd светодиоды двух цветов. Для программирования по UART необходимо вывод BOOT0 соединить с +3В, для этого выведем его на разъем. Также необходимо вывести сам UART — ножки RX TX. Все остальные выводы без защиты выведем на разъем. Пользуюсь этим программатором уже больше года, и кз были и помехи — ничего не сгорело ни разу.

В некоторых схемах ставится самовостанавливающийся предохранитель на питание от USB для защиты самого порта. Современные компьютеры имеют защиту на портах USB, в том числе предохранители и токовые ограничивающие ключи, так что он не нужен. Но лучше конечно не проверять это, и не ошибаться! Напряжение 3.3в идет с нашего LDO , который имеет защиту от КЗ и от перегрева, и не выдает больше 600ма , там тоже защищать нечего.

Очень удобно подключать STM8 для программирования с помощью ST-Link, нужно всего 3 провода — питание, земля и SWIM выход. Это так же удобно при разводке плат, можно разводить только SWIM выход, землю и питание всегда можно найти на плате.

Трассировка платы в Kicad с помощью автотрассировщика Topor

В приборе USB UART адаптер мы уже тренировались трассировать плату в Kicad вручную. Данный прибор чуть сложнее. На нем можно поучиться разводить плату в автотрассировщике TOPOR. Весь процесс лучше просмотреть на видео в конце статьи, здесь будут лишь небольшие комментарии к видео.

Подготовка платы к автотрассировке

Для того, чтобы работать с Topor, надо сначала подготовить плату в Kicad. Необходимо определить границы платы, импортировать все компоненты и предварительно их расположить. У нас нет требований к разъемам, поэтому на первом этапе лучше сам разъем удалить с платы. Так как каждый вывод разъема соединен через резистор, то резисторы и будут ориентиром выводов разъема. Также для расстановки компонент можно удалить все конденсаторы питания, кварцы, микросхемы питания (их лучше располагать на обратной стороне — там обычно много места) — это все можно расставить потом.

Теперь необходимо определить сторону кажого копонента. И примерно расположить их как необходимо, разъемы расположить у края. И на этом этапе можно все это перебросить в Topor и там продолжить размещение копонентов. USB разъем, светодиоды сразу располагаем на обратной стороне, все остальное на лицевой.

Размещение компонентов с помощью Topor

Теперь переносим это все в Topor и продолжаем там. Чем хорош Topor? Тем, что каждый раз, подвигав компоненты, можно перепроложить все трассы автоматически и посмотреть стало лучше или хуже. Также Topor умеет переворачивать простые компоненты — резисторы, конденсаторы. Нам важно понять как удобнее расположить выводы разъемов, и основные компоненты.

Покрутив и подвигав компоненты в Topor мы пришли к такому расположению:


Теперь необходимо этот результат перекинуть в Kicad обратно и добавить остальные компоненты. Перед финальной трассировкой необходимо:

расположить микросхемы питания

развести вручную цепи питания

распложить и подключить кварц, и конденсаторы питания

переопределить выводы разъема на схеме.

Автотрассировка

Перебрасываем нашу полутрассировку в Topor.

Необходимо сразу установить правила трассировки — ширину зазоров, дорожек, размеры переходных отверстий. При первом импорте из Kicad надо выделить все компоненты и зафиксировать их, чтобы можно было легко удалить кнопкой del и заново перепроложить трассировку, оставляя наш полуручной вариант. В параметрах автотрассировки обязательно необходимо установить галку «Использовать имеющуюся разводку в качестве начального варианта», иначе наши ручные трассы будут перепроложены (Сам процесс работы в Topor смотри на видео).

После автотрассировки перебрасываем все обратно и доводим до финального варианта — добавляем земляные полигоны, выравниваем где необходимо дорожки. Плата готова.

Финальный вариант платы


Обратная сторона

Прошивка ST Link, установка драйверов

Плата готова, делаем ее методом холодного переноса тонера ацетоном (или любым другим), травим, собираем прибор. Перед первым включением, обязательно проверьте любым мультиметром, что между 5В и GND сопртивления нет (бесконечно велико) — это будет гарантировать, что нет короткого замыкания. Также надо проверить сопротивление между 3.3В и GND.

Для работы с нашим устройством необходимо установить драйвера, прошить его первый раз по UART стартовой прошивкой и потом обновить прошивку до последней версии специальной программой от ST.

Все микроконтроллеры STM32 имеют bootloader и прошиваются по UART. Для прошивки необходимо:

скачать с сайта ST программу «STM32 Flash loader demonstrator» по ссылке (необходимо зарегистрироваться у них на сайте).

установить ее, все как обычно — далее далее далее — готово.

подключить наш ST link для программирования временными проводками:

Соединяем выводы программирования PROG_RX и PROG_TX (см. схему в Kickad на github) и USB/UART модуль — наш RX на TX модуля, наш TX на RX модуля.

В USB ST Link не включаем, подключаем 5В с UART модуля и GND на любой наш разъем (например на разъеме SWIM есть 5В и GND) — то есть запитаем от нашего модуля (если у вас свой модуль без питания, то можно сразу подключить ST-Link в USB разъем, тогда надо будет только соединить TX и RX, только не забудьте на вашем модуле необходимо выбрать 3.3в)

Подключем BOOT0 на выход 3.3В (можно просто держать проводок при подключении питания) — это необходимо для перехода в bootloader

включаем USB/UART модуль в компьютер, указываем в программе Flash Loader наш COM порт, жмем далее — программа должна найти наш микроконтроллер, далее, выбираем download и загружаем прошивку STLinkV2.J16.S4.bin, выложенную на github прибора. Вот такие это выглядит в картинках:

Тут выбираем 64К.

а тут ставим переключатель на download и выбираем файл прошивки (маска файлов на *.bin)

Теперь у нас есть ST LINK, но со старой прошивкой. Убираем все провода. Скачиваем с сайта ST программу обновления прошивки STSW-LINK007 и драйвера STSW-LINK009 для windows. Вставляем новоиспеченный ST-Link в USB порт компьютера, и запускаем программу обновления прошивки, в ней жмем CONNECT и потом обновить прошивку до последней версии. Прибор ГОТОВ! Теперь у вас есть программатор-отладчик и можно перейти к программированию.

Готовое устройство

Радиоконструктор ST-Link в сборе. Так будет выглядеть твой самодельный ST Link - программатор STM8 и STM32

Набор для пайки в деле. Запаянный ST-Link. Готов к работе. Теперь вы готовы к программированию микроконтроллеров STM8

Самостоятельная работа

Потренируйтесь разводить плату. Сделайте это вручную, с помощью программы Topor и без. Вы должны уметь быстро делать любую несложную плату.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *