Как прошить STM8 программатором ST-Link V2

Китайский клон ST-Link V2 в алюминиевом корпусе часто распознаётся утилитой STVP как «неподдерживаемый программатор» или выдаёт ошибку «Cannot communicate with the tool» — и в большинстве случаев причина не в неисправности, а в неправильном подключении линии SWIM или отсутствии питания на целевой плате. Микроконтроллеры семейства STM8 прошиваются не через SWD, как STM32, а через однопроводной интерфейс SWIM, и это принципиальное отличие определяет всю схему подключения.

В этой инструкции разберём полный цикл: от проверки драйверов и распиновки программатора до записи прошивки через STM8 STVP и решения типичных ошибок. Материал подходит для популярных чипов серий STM8S и STM8L, включая распространённые STM8S103F3 и STM8S003F3 на отладочных платах.

Что понадобится для прошивки STM8

Для работы потребуется сам программатор ST-Link V2 (оригинал или совместимый клон), целевая плата с микроконтроллером STM8 и соединительные провода. Важный момент: не все клоны одинаковы — у дешёвых «стиков» в металлическом корпусе распиновка отличается от оригинала, и её нужно смотреть на шелкографии конкретного экземпляра.

  • 🔌 Программатор ST-Link V2 с прошивкой, поддерживающей SWIM
  • 💻 Установленные драйверы ST-LINK от STMicroelectronics
  • 🧰 Программа STM8 STVP (из пакета ST Toolset) или STM32 ST-LINK Utility
  • 🔋 Питание целевой платы — от программатора или внешнее
  • 📄 Файл прошивки в формате .hex или .s19

Отдельно отметим: для STM8 подходит не любой программатор с надписью ST-Link. Некоторые клоны заточены только под SWD (STM32) и физически не выводят линию SWIM на разъём. Перед началом убедитесь, что на контактах вашего экземпляра есть пин, подписанный SWIM.

Распиновка и подключение к плате

Интерфейс SWIM использует минимум линий: сама шина данных SWIM, общий провод GND, питание VCC и желательно линию сброса RST. Сброс не всегда обязателен, но без него STVP иногда не может вывести чип из режима работы пользовательской программы в режим программирования.

Контакт ST-Link V2Контакт на плате STM8Назначение
SWIMSWIM (PA1 у STM8S)Однопроводная шина данных
GNDGNDОбщий провод — обязателен
3.3V / 5VVDD чипаПитание, если плата не запитана отдельно
RSTNRSTАппаратный сброс (рекомендуется)
⚠️ Внимание: не подавайте на плату питание одновременно от ST-Link и от внешнего источника. Двойное питание может вывести из строя стабилизатор платы или сам программатор. Выберите один источник.

Длина проводов имеет значение: шина SWIM чувствительна к помехам, поэтому используйте короткие провода — желательно до 10–15 см. Если связь нестабильна, первым делом сократите длину линий и проверьте качество контактов.

☑️ Проверка перед первым подключением

Выполнено: 0 / 5

Установка драйверов и программного обеспечения

Вам понадобятся два компонента от STMicroelectronics: драйвер ST-LINK для Windows и пакет ST Toolset, в который входит утилита ST Visual Programmer (STVP). Оба распространяются бесплатно с официального сайта ST. После установки драйвера подключите программатор и проверьте в Диспетчере устройств, что он определился как STM32 STLink без восклицательных знаков.

Если устройство видится системой как «USB device не опознано», возможные причины — неустановленный драйвер, неисправный USB-кабель или клон с нестандартным USB-контроллером. Попробуйте другой порт USB и другой кабель, затем переустановите драйвер.

📊 Каким софтом вы прошиваете STM8?
STM8 STVP (ST Visual Programmer)
STM32 ST-LINK Utility
IAR Embedded Workbench
Другой программатор/софт

Прошивка STM8 через STVP: пошаговая инструкция

Запустите ST Visual Programmer. При первом старте программа предложит настроить конфигурацию — выберите программатор ST-Link, режим портирования SWIM и модель вашего микроконтроллера, например STM8S103F3. Если чипа нет в списке, проверьте, что установлена актуальная версия ST Toolset.

Далее порядок действий такой:

  • 📂 Откройте вкладку PROGRAM MEMORY и загрузите файл прошивки через File → Open
  • ⚙️ На вкладке OPTION BYTE проверьте настройки опционных байтов — не меняйте их без необходимости
  • ▶️ Нажмите Program → Current tab или иконку записи для старта прошивки
  • ✅ Дождитесь сообщения об успешной верификации в нижнем окне лога

Если программа выдала строку вида File programming... OK и верификация прошла — чип прошит. Отключите программатор и подайте на плату питание для проверки работы.

Что такое Option Bytes и зачем они нужны

Опционные байты управляют защитой от чтения (ROP), загрузчиком, сторожевым таймером и альтернативными функциями выводов. Случайная установка бита ROP заблокирует чтение прошивки, и снять защиту можно только полным стиранием чипа через специальную процедуру. Без чёткого понимания назначения байтов менять их не стоит.

Типичные ошибки и их решение

Самая частая проблема — ошибка Cannot communicate with the device. Она означает, что STVP видит программатор, но не видит чип. Проверяйте в таком порядке: наличие питания на VDD микроконтроллера, целостность линии SWIM, подключение GND. Чип STM8 без питания на VDD не отвечает по SWIM, даже если линия данных подключена идеально — это самая частая причина «невидимого» контроллера.

⚠️ Внимание: ошибка The device is protected означает, что на чипе включена защита от чтения (ROP). Снять её можно только командой стирания с одновременным сбросом защиты — при этом вся прошивка внутри чипа будет безвозвратно удалена.

Если программатор определяется системой, но STVP пишет, что устройство не найдено, возможная причина — устаревшая прошивка самого ST-Link. Обновить её можно фирменной утилитой обновления прошивки ST-Link, которая поставляется вместе с драйверами. Учтите, что некоторые клоны после официального обновления могут перестать работать — это известная особенность, а не гарантированный исход, но риск существует.

Ещё одна ситуация: прошивка записывается, но верификация падает. Обычно это указывает на плохой контакт в линии SWIM, слишком длинные провода или нестабильное питание. Укоротите провода, проверьте пайку разъёма и повторите попытку.

Утилита STM32 ST-LINK Utility тоже умеет работать с STM8: подключение выполняется через Target → Connect, файл открывается через File → Open file, а запись — через Target → Program & Verify. Логика та же, что и в STVP, поэтому многие используют её как запасной вариант, когда STVP капризничает.

Для разработчиков, работающих в IAR Embedded Workbench или ST Visual Develop (STVD), прошивка возможна прямо из среды разработки — отладчик сам использует ST-Link для записи кода при запуске сессии отладки. Это удобно при итеративной разработке: скомпилировал — сразу залил.

Часто задаваемые вопросы

Подойдёт ли клон ST-Link V2 из алюминиевого корпуса для STM8?

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

Чем отличается SWIM от SWD?

SWD — двухпроводной интерфейс отладки для STM32 (линии SWDIO и SWCLK). SWIM — однопроводной интерфейс, разработанный специально для STM8. Они несовместимы: подключить STM8 по SWD-распиновке не получится.

STVP пишет «Cannot communicate with the tool» — что делать?

Эта ошибка относится к связи компьютера с самим программатором. Проверьте драйвер в Диспетчере устройств, смените USB-порт, запустите STVP от имени администратора. Если не помогло — проверьте программатор на другом компьютере.

Можно ли прошить STM8 без линии RST?

Часто можно — STVP умеет переводить чип в режим программирования программно. Но если чип завис или в нём выполняется прошивка, мешающая соединению, без аппаратного сброса подключиться не удастся. Лучше подключать RST всегда.

Как снять защиту от чтения (ROP) с STM8?

Защита снимается только через процедуру, которая полностью стирает флеш-память чипа — прочитать или сохранить содержимое защищённого контроллера невозможно. В STVP это делается через сброс соответствующего опционного байта с последующим стиранием.