St link utility как пользоваться
Перейти к содержимому

St link utility как пользоваться

  • автор:

Программирование STM32. Часть 14: Прошиваем STM32 через ST-Link

Допустим, копая просторы Интернета, нашли мы очень интересное электронное устройство на микроконтроллере STM32, причем и все схемы, и прошивка прилагается. Но вот незадача, никогда мы не занимались загрузкой прошивки в STM32, раньше работали только с AVR-ками. Не беда! В этой статье мы разберемся в этом вопросе, ведь загружать готовую прошивку в STM32 не сложнее, чем в старые добрые AVR-ки, а может даже и проще! �� Итак, поехали! Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Программатор

В предыдущей части мы познакомились с несколькими вариантами программатора ST-Link. В данном примере в качестве программатора я буду использовать отладочную плату stm32f4discovery, просто потому, что она у меня есть. Для того, чтобы использовать эту отладочную плату в качестве программатора, нужно сделать 2 вещи:

  1. Снять перемычки, соединяющие линии программирования встроенного ST-Link-а с микроконтроллером, распаянным на плате
  2. С помощью гребенки, на которую выведена шина SWD, подключить сигнальные линии программатора к внешнему микроконтроллеру

На картинке, приведенной далее, показана распиновка разъема SWD:

На китайских отладочных платах с микроконтроллером stm32f103c8 имеется соответствующий разъем, через который можно загрузить прошивку в МК. Эти платы выглядят примерно так:

Пины на разъеме программирования подписаны как GND, CLK, DIO, 3V3. Соединение с программатором выполняется вот таким образом:

  • GND — GND
  • CLK — SWCLK
  • DIO — SWDIO

У меня макеты выглядят вот так:

В данном случае отладочная плата с stm32f103c8 припаяна к «решету», на котором соединена с остальными компонентами на обратной стороне проводом в изоляции. Таким же проводом выполнено подключение программатора к отладочной плате:

Софт

Перейдем теперь к программной составляющей. Нам понадобится драйвер для программатора и управляющая софтина, через через которую мы будем загружать прошивку в микроконтроллер. Для этого нам нужно на официальном сайте www.st.com скачать пакет STM32 ST-LINK utility. А что нужно сделать перед скачиванием чего-нибудь с www.st.com? Правильно! Надо у них зарегистрироваться.

[Шуточка про «нельзя просто так взять и скачать что-то с st.com»]

Кину ссылку на архив в конце статьи.

Итак, мы добыли архив с пакетом STM32 ST-LINK Utility. После установки подключаем программатор к ПК по USB и подключаем питание к отладочной плате. Если драйвера на программатор не установились автоматически, то идем в диспетчер устройств, там находим наш STM32 STLink, выбираем Обновить драйвер->Выполнить поиск на этом компьютере. После этого все должно заработать. Затем, из меню «Пуск» запускаем программу «STM32 ST-LINK Utility«:

Выглядит интерфейс ST-LINK Utility вот так:

Далее, нам необходимо произвести небольшие настройки. В меню выбираем Target->Settings…

Открывается вот такое окошко:

Выставляем настройки, как на скриншоте и нажимаем OK. После этого программатор автоматически подключится к прошиваемому микроконтроллеру. Пробежимся по кнопкам управления:

«Подключиться к микроконтроллеру» — выполняет подключение программатора к МК. При этом работа прошивки останавливается. После этого можно выполнять дальнейшие манипуляции с flash-памятью МК.

«Отключиться от микроконтроллера» — после того, как мы все сделали, нажимаем на эту кнопку и SL-Link отключается от МК, при этом запускается загруженная во flash-память прошивка.

«Очистить чип» — при нажатии на эту кнопку стирается вся flash-память микроконтроллера. Это необходимо делать перед загрузкой другой прошивки в МК.

Для того, чтобы прошить наш .hex или .bin файл в МК нужно сделать следующее. В меню выбираем Target->Programm…

После этого у нас открывается окошко выбора файла прошивки. Выбираем нужный нам файл, после чего появляется вот такое окно:

Здесь нам нужно нажать Start чтобы запустить процесс. После того, как прошивка была загружена в МК, нажимаем на кнопку «Отключиться от микроконтроллера«.

Те, кто раньше работал с микроконтроллерами AVR знают о такой вещи как фьюз-биты. Если в AVR-ках неправильно их выставить, то прошивка может работать некорректно. Для вас хорошая новость: в STM32 фьюз-битов нет! Достаточно просто залить в МК файл с управляющей программой и все будет работать.

Ну что ж, на этом, пожалуй, закончу, всем кто дочитал, спасибо за внимание �� �� Продолжение тут

Ссылки

Драйвер и софт для ST-Link: STM32 ST-LINK utility

Программатор stm32 своими руками.

Самодельная и доступная альтернатива продаваемому программатору от STMicroelectronics. Является выдержкой и компиляцией нескольких статей и схем найденных в интернете. Реализация в минимально возможном форм-факторе.

Cover Image

У любого разработчика встраиваемого софта должен быть программатор для устройств которые он использует. В моём случае микроконтроллеры фирмы STMicroelectronics, а так же Milandr (российские процессоры на ядре ARM).

Покупка данного девайса весьма затратна, особенно если сравнивать с себестоимостью компонентов — печатной платы и радиодеталей.

Решено было сделать программатор самостоятельно. За основу легли схемы отладочных плат для различных МК, в итоге получился полнофункциональный отладочный модуль и не только для stm32, но и для stm8 и даже миландровских чипов (проверено пока только на К1986ВЕ92, но думаю и другие тоже будут шиться и отлаживаться).

  • программирование и отладка STM32;
  • программирование и отладка STM8;
  • программирование и отладка ARM Миландр.

Сам программатор можно рассмотреть на фото выше. Провода растянутые по плате это лишь последующие доработки связанные с отсутствием необходимого светодиода (слева) и с необходимостью программировать платы без подачи на них питания (справа).

Ядром является контроллер stm32f103, который и используется во всех отладочных платах. На его входах и выходах устройства, я имею ввиду разъем для подключения программируемого микроконтроллера, установлены диоды для защиты от статики, диоды выбраны достаточно маленькие, но легко доступные и без особых сложностей впаиваемыми, даже людьми с ослабленным зрением, сам я впрочем и не жалуюсь со своими единичками на обоих глазах.

В качестве разъема для подключения к компьютеру используется microUSB, выбор пал только лишь из-за его современности по сравнению с его мини братом. У меня же самого на плате стоит именно мини, когда собирал заложенного микро не было в наличии.

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

Для обеспечения работы необходимо зашить по в микроконтроллер, для этого нам понадобиться usb-uart переходник, бутлоадер и утилита для прошивки.

Если с утилитой и переходником проблем на возникает, то с загрузчиком все несколько иначе — так как сама прошивка в контроллерах на отладочных платах заблокирована от считывания и вытащить у меня не получилось. Благо живем в современном мире, где есть интернет.

Решение было найдено на одном из многочисленных форумов — бинарник прошивки. Правда была проблема, после прошивки контроллера программатор определялся, но работать не хотел, зато спокойно прошивался через st-link utility, было решено подчистить файл прошивки, удалив все лишнее, оставив только сам загрузчик.

Как можно догадаться все удалось и теперь загрузчик можно взять здесь.

Для заливки используем разъем P1, выводы 3 и 4 которого замыкаем вместе, переводя микроконтроллер в режим загрузки по usart1. Подключаем uart переходники подаем питание на плату программатора, можно через usb разъем.

В утилите выбираем используемый последовательный порт и следуем остальным инструкциям. Этот процесс в картинках описывать нет смысла — все довольно тривиально.

После окончания прошивки отключаем все вспомогательные устройства и подключаем программатор к компьютеру, он должен нормально определиться. Теперь осталось обновить прошивку программатора с помощью st-link utility.

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

Данный программатор хорошо себя зарекомендовал, на протяжении года пользования. Отлично работал при -40 о С в климатической камере, помогая отлаживать одно из разрабатываемых устройств, а так же дважды посетил вместе со мной Камчатку, где отлично себя чувствовал в суровых климатических условиях.

Для желающих собрать аналогичный программатор:

  • Немного истории. K-line адаптер.
  • Защита прошивки от считывания.

CDEblog

Блог инженера-схемотехника, конструктора и немного программиста

Программатор ST-LINK V2 для процессоров STM8/STM32 (клон)

st-link v2 stm8 stm32 emulator programmer stlink downloader line writer debugger Программатор отладчик

ST-LINK V2 это USB программатор/отладчик для процессоров всех серий STM32SWD и STM8SWIM производства компании STMicroelectronics.

Примечание: цвет корпуса может отличаться от представленного на картинке (красный, жёлтый, черный и т.д.)

Особенности

  • Поддержка контроллеров STM32 с отладочным интерфейсом SWD
  • Поддержка контроллеров STM8 с отладочным интерфейсом SWIM
  • Поддерживаемые версии программного обеспечения:
    • U XTW LINK ST Utility 2.0 и выше
    • STVD 4.2.1 и выше
    • STVP 3.2.3 и выше
    • IAR EWARM V6.20 или выше
    • IAR EWSTM8 V1.30 или выше
    • KEIL RVMDK V4.21 или выше

    Характеристики

    • Процессор: STM32F103C8T6
    • Три рабочих интерфейса программатора: JTAG (Joint Test Action Group), SWIM (Single Wire Interface Module) и SWD (Serial Wire Debug)
    • Интерфейс подключения: USB 2.0 / 2.54-дюймовые контакты dupont
    • Регулировка напряжения в интерфейсе SWIM: 1.65 — 5.5V
    • Поддержка разных режимов в интерфейсе SWIM
      • низкоскоростных 9.7 Кб/сек
      • высокоскоростных 12.8 Кб/сек

      Комплектация

      • 1 х программатор ST-LINK V2
      • 1 х 4p dupont кабель

      Рекомендации

      Чтобы использовать программатор, необходимо выполнить следующие действия:

      • Скачайте и установите драйвера, которые можно найти на официальном сайте производителей микроконтроллеров.
      • Скачайте и установите среду для разработки и программирования:
        • если Вас интересует внутрисхемная отладка микроконтроллера STM8, воспользуйтесь ST Visual Develop – STVD (версией 4.1.0 или более новой)
        • если Вас интересует внутрисхемное программирование микроконтроллера STM8, используйте ST Visual Program – STVP (версию 3.1.0 или более новую)
        • если Вас интересует программирование и отладка микроконтроллера STM32, можно применить программы: IAR toolset EWARM (версия 5.30 или более поздние), Atollic toolset TrueSTUDIO (версия 1.0 или более поздние), Keil toolset ARM-MDK (версия 3.3 или более поздние), TASKING или утилиты, скачанные с официальных сайтов

        Полезные ссылки

        Фотографии

        st-link v2 stm8 stm32 emulator programmer stlink downloader line writer debugger Программатор отладчикst-link v2 stm8 stm32 emulator programmer stlink downloader line writer debugger Программатор отладчик

        Отзывы и обсуждения

          Еще нет сообщений. Оставьте свое сообщение первым.

        Необходимо быть зарегистрированным или авторизованным пользователям чтобы оставлять сообщения.
        Регистрация

        Как программировать платы на основе STM32 с помощью утилиты ST-Link?

        В этой статье объясняется, как запрограммировать ваше приложение на плату с помощью утилиты ST-Link. Этот метод необходим, если вы компилируете с использованием ARM GCC, но рекомендуется для проектов IAR или Keil.

        1. STM32F429I-DISCO
        2. STM324x9I-EVAL
        3. STM32469I-DISCO
        4. STM32469I-EVAL
        5. STM32F746G-DISCO
        6. STM32756G-EVAL
        7. STM32F769I-EVAL
        8. STM32F769-DISCO

        ST-Link Utility также может быть использован для программирования пользовательского оборудования с использованием , например ST-Link / V2 программиста .

        Генерация Hex-файлов

        ST-Link Utility может программировать файлы .hex и .bin. Они автоматически генерируются Make-файлами ARM gcc, поставляемыми с проектом TouchGFX. IAR и Keil IDE настроены для преобразования выходных файлов .elf в файл .hex.

        • Для проектов IAR дополнительный вывод преобразуется ( intel extended форматируется) в Debug\Exe\application.hex
        • Для проектов Keil выполняется следующий шаг после сборки: в
          fromelf —only=ExtFlashSection —bin —output=binary .\Objects\keil5-2.axf
          результате получается файл .hex: Objects\keil5-2.hex

        Перепрошивка с использованием графического интерфейса ST-Link Utility

        Процесс, описанный в этой статье, описывает, как использовать утилиту ST-Link для программирования внутренней и внешней флэш-памяти плат ST. Для внутренней вспышки ST-Link автоматически определит тип подключенного устройства. Однако для внешней вспышки внешний флэш-загрузчик должен быть настроен вручную. ST-Link предлагает поддержку для каждого флэш-чипа на платах, поддерживаемых TouchGFX.

        При прошивке двоичного файла с помощью утилиты ST-Link вы должны указать правильный флэш-адрес вручную. Этот адрес должен совпадать с адресом, используемым в скрипте компоновщика. По умолчанию это первый адрес во флэш-памяти. При перепрошивке файла .hex утилита ST-Link найдет правильный адрес в файле .hex.

        ST-Link автоматически определит диапазоны памяти для программирования и выберет подходящие флэш-загрузчики для использования, если так настроено, при открытии .hex-файла. В приведенном ниже примере target.hex приложение было открыто в ST-Link, и были обнаружены диапазоны как внутренней, так и внешней флэш-памяти.

        [target.hex] opened successfully. Address Ranges [0x08000000 0x08010364] [0x90000000 0x9000CA28] 

        Как упоминалось ранее, внутренняя флэш-память всегда распознается ST-Link для микроконтроллеров STM32, но флэш-загрузчик для диапазонов, начинающихся с 0x90000000, должен быть настроен вручную. В приведенном ниже примере мы настроим внешнюю вспышку для STM32F746G-DISCO платы:

        1. Выберите « Добавить внешний загрузчик » в меню « Внешний загрузчик ».
        2. Выберите соответствующий флэш-загрузчик в списке поддерживаемых плат (т.е. MT25QL512A_STM32756G-EVAL для STM32756G-EVAL и N25Q128A_STM32F746G-DISCO для STM32F746G-DISCO ) и выберите Подтвердить .
        3. Откройте .hex, который вы хотите мигать: диапазоны адресов автоматически определяются ST-Link. Как упоминалось ранее, разные двоичные файлы создаются IAR, Keil и gcc соответственно и могут использоваться ST-Link.
        4. Выберите « Program » в меню « Target » и начните загрузку.

        Ниже приведен полный список внешних флэш-загрузчиков, которые будут использоваться для плат ST, поддерживаемых TouchGFX (ST-Link версия 4.2):

        доска Флеш загрузчик
        STM32F429I-DISCO Только внутренняя вспышка
        STM324x9I-EVAL M29W128GL_STM324x9I-EVAL
        STM32469I-DISCO N25Q128A_STM32469I-DISCO
        STM32469I-EVAL MT25QL512A_STM32469I-EVAL
        STM32F746G-DISCO N25Q128A_STM32F746G-DISCO
        STM32756G-EVAL MT25QL512A_STM32756G-EVAL
        STM32F769I-EVAL MT25QL512A_STM32769I-EVAL
        STM32F769I-DISCO MX25L512G_STM32769I-DISCO
        STM32L4R9-EVAL MX25LM51245G_STM32L4R9I-EVAL
        STM32L4R9-DISCO MX25LM51245G_STM32L4R9I-DISCO

        Использование Flash make (ST-Link CLI)

        Кроме того, вы можете создать и прошить приложение (используя ST-Link CLI) с помощью любой makefile (т.е. app/example/button_example/target/ST/STM32F746G-DISCO/gcc/Makefile ), используя следующую команду:

        $ make flash

        Makefile знает, какую внешнюю флэш-память (см. Таблицу выше) использовать для каждой из поддерживаемых плат ST. ST-LINK имеет встроенную поддержку внутренней вспышки для каждой платы, и вы можете прошить только внутреннюю вспышку, используя следующую команду:

        $ make intflash

        В некоторых случаях вы не сможете запрограммировать свою доску указанным выше способом из-за следующей ошибки:

        STLink USB communication error Error during erase operation.

        В этом случае вы можете попытаться отключить драйвер устройства USB для этой конкретной платы в диспетчере устройств Windows, чтобы устранить проблему.

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

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