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

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

  • автор:

ST-Link V2 в маленьком корпусе

Самый недорогой программатор/отладчик ST-Link V2 на примере STM32F103CBT6.

фотка 1

Обязательно меняем провода на короткие

Итак первым делом меняем провода для соединения ST-LINK V2 с STM32F103C8T6 на короткие 10см.

Используем для соединения с STM32F103C8T6 только 4 провода (SWD интерфейс):

3.3V — 3.3V
GRD — GRD
SWDIO- DIO
SWCLK- CLK

Нет SWO трассировки

То есть не выведен отдельный провод PB3 SWO из программатора наружу.

Но в принципе программно SWO реализован внутри программатора. Только воспользоваться им нельзя. Белый провод это он и есть, а как подпаятся к ножке микросхемы программатора вопрос .

фотка 2

Как обновить внутреннее ПО

через программу ST-LINK Utility

Проверяем сначала связь с контроллером программой ST-LINK Utility:

Обе перемычки на STM32F103C8T6 в положении 0
запускаем, жмем Connect и все определяется ОК
щелкаем Settings и видим, что устройство определяется автоматически корректно (см.скриншот) , port = SWD, target Voltage=3.2V и т.д.

Обновление внутреннего ПО

Чтобы сделать Firmware Update в программе ST-LINK Utility надо установить перемычку в положение 1 (режим DFU). В результате должно получится примерно так, кнопка Yes активна:

фотка 3

Иногда , почему-то не удается сделать Firmware Update. Но помогает — закрытие всех программ, перезагрузка ПК (танцы с бубном).

По-видимому надо разобраться что устанавливать? — Hardware Reset (при SoftWare Reset у меня не срабатывает).

фотка 4

Важно! — в ST-Link V2 после прошивки (через Stm32-Link Utility) сохраняются старые настройки Mode (Normal|Hot Plug|Connect Undr Reset) и Reset Mode (Software System Reset|Core Reset|Hardware Reset).

Если не работает ничего — пытаемся разобраться с дополнительными настройками

Mode : Connect Under Reset можно выставить только с Reset Mode : Hardware Reset (Похоже по смыслу , что это тот самый режим когда надо ручками кнопку Reset нажимать и перемычка в 1 д/б).

The “Connect Under Reset” option allows to connect to the target using a reset vector catch before executing any instruction. This is useful in many cases like when the target contains a code that disables the JTAG/SWD pins.

Т.е. это похоже когда программа в начале своего исполнения отключает SWD возможности. Понятно отладка тут не будет возможна.

Mode : Normal возможен с Reset Mode : (Software System Reset|Core Reset|Hardware Reset) .
With “Normal” connection mode, the target is rest then halted. The type of reset is selected using the “reset Mode” option.

Mode : Hot Plug возможен с Reset Mode : (Software System Reset|Core Reset|Hardware Reset)

The “Hot Plug” option allows to connect to the target without halt or reset. This is useful to update the RAM addresses or the IP registers while the application is running.
И мы понимаем, что Hot Plug — пока этот режим нам не нужен никак.

Итак режим (Mode) и Reset Mode настраивается именно в ST-Link V2 через Stm32-Link Utility.

В Keil надо соответственно этому указать настройки.

Делаем ST-Link V2.1 из китайского ST-Link V2

Привет, Хабр!

В данной статье расскажу как модифицировать 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.

USB-UART

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).

ST-Link

На платах есть по 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).

Если на нее закинуть файл прошивки — программатор прошьет чип без программ.

Спасибо за внимание!
При копировании попрошу оставлять ссылочку на первоисточник.

С вопросами обращайтесь в комментарии, чем смогу — помогу.

  • Программирование микроконтроллеров
  • DIY или Сделай сам
  • Лайфхаки для гиков
  • Электроника для начинающих

Как обновить 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 STM32F4DISCOVERY connections to VCP

ST LINK STM32F4DISCOVERY connections to VCP

[Ссылки]

1. STSW-LINK007 site:st.com.
2. STSW-LINK004 site:st.com.
3. RN0093 Firmware upgrade for ST-LINK, ST-LINK/V2, ST-LINK/V2-1 and STLINK-V3 boards site:st.com.
4. STMFlashLoader Demo.
5. AN3155: протокол загрузчика USART STM32.
6. Делаем ST-Link V2.1 из китайского ST-Link V2 site:habr.com.
7. 210114ST-LINK-DISCOVERY-firmware-update.zip — прошивки, документация, утилиты.
8. Загрузчик STM32F42xxx и STM32F43xxx.

Как обновить 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 STM32F4DISCOVERY connections to VCP

ST LINK STM32F4DISCOVERY connections to VCP

[Ссылки]

1. STSW-LINK007 site:st.com.
2. STSW-LINK004 site:st.com.
3. RN0093 Firmware upgrade for ST-LINK, ST-LINK/V2, ST-LINK/V2-1 and STLINK-V3 boards site:st.com.
4. STMFlashLoader Demo.
5. AN3155: протокол загрузчика USART STM32.
6. Делаем ST-Link V2.1 из китайского ST-Link V2 site:habr.com.
7. 210114ST-LINK-DISCOVERY-firmware-update.zip — прошивки, документация, утилиты.
8. Загрузчик STM32F42xxx и STM32F43xxx.

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

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