Микроконтроллер STM8S105K4T6C прошивается через однопроводной интерфейс SWIM с помощью программатора ST-LINK/V2 — это единственный штатный способ записи прошивки во Flash-память этого чипа, и без него загрузить программу не получится. Микросхема относится к линейке STM8S Access line от STMicroelectronics, имеет 16 КБ Flash и 2 КБ ОЗУ, поэтому чаще всего встречается в недорогих платах, блоках управления и DIY-устройствах.
В этой статье разберём полный цикл: что понадобится из оборудования, как правильно подключить программатор к чипу, какие программы использовать для записи прошивки и что делать, если контроллер не определяется. Отдельно разберём ситуацию с залоченным чипом — при работе с б/у платами и устройствами из Китая это одна из самых частых проблем.
Что понадобится для прошивки
Минимальный набор невелик, но каждый элемент важен. Отсутствие хотя бы одного пункта — самая частая причина, по которой новичку не удаётся прошить STM8S105K4T6C с первого раза.
- 🔌 Программатор ST-LINK/V2 — оригинальный от ST или недорогой клон в металлическом корпусе, оба варианта рабочие;
- 💻 ПК с Windows и установленной утилитой ST Visual Programmer (STVP) либо средой STVD / IAR Embedded Workbench;
- 🔧 Провода для подключения — четыре линии: SWIM, GND, RST и питание 3,3 В или 5 В;
- 📄 Файл прошивки в формате
.hex,.s19или.bin; - 🧰 При необходимости — паяльник, чтобы подпаяться к выводам чипа на готовой плате.
Обратите внимание на питание: STM8S105K4T6C работает в диапазоне напряжений, типичном для серии STM8S, и большинство клонов ST-LINK выдают на целевую плату 3,3 В. Если чип уже стоит в устройстве со своим питанием, питать его от программатора не нужно — достаточно соединить сигнальные линии и общий провод.
Китайские клоны ST-LINK часто имеют перепутанную или нестандартную распиновку на корпусе. Перед подключением сверьте выводы мультиметром: найдите GND и 3.3V, а SWIM и RST определите по документации на конкретный клон.
Распиновка и подключение SWIM
Интерфейс SWIM использует всего один сигнальный провод для данных, что сильно упрощает подключение по сравнению с JTAG. Для прошивки STM8S105K4T6C в корпусе LQFP-32 вам нужно найти на чипе выводы SWIM, NRST, VDD и VSS (GND). Точные номера ножек зависят от корпуса, поэтому перед пайкой откройте официальный даташит на STM8S105xx с сайта STMicroelectronics и сверьтесь с распиновкой именно для LQFP-32.
Схема соединений между программатором и целевым чипом выглядит так:
| Вывод ST-LINK | Вывод STM8S105K4T6C | Назначение |
|---|---|---|
| SWIM | SWIM | Линия данных и синхронизации |
| RST | NRST | Сброс микроконтроллера |
| GND | VSS (GND) | Общий провод — обязателен |
| 3.3V | VDD | Питание, если плата не запитана отдельно |
Линию RST формально можно не подключать — STVP умеет входить в режим отладки без аппаратного сброса. Однако на практике подключение NRST заметно повышает стабильность, особенно если в чипе уже выполняется прошивка, которая перенастраивает вывод SWIM или уводит контроллер в спящий режим.
⚠️ Внимание: если прошиваете чип прямо в готовом устройстве, убедитесь, что вывод SWIM не используется схемой устройства как обычный GPIO с подключённой нагрузкой. Подтяжки и внешние цепи на этой линии могут мешать обмену данными — в таком случае чип придётся выпаять или отсоединить мешающую цепь.
Установка ПО и драйверов
Для записи готовой прошивки проще всего использовать ST Visual Programmer — официальную бесплатную утилиту от ST. Она входит в пакет ST Toolset или распространяется в составе среды STVD (ST Visual Develop). Скачивать ПО следует только с официального сайта st.com — для загрузки потребуется бесплатная регистрация.
После установки подключите ST-LINK к USB-порту. Windows должна определить устройство автоматически; если этого не произошло, установите драйвер ST-LINK USB driver, который также доступен на сайте ST. Для клонов ST-LINK иногда требуется обновить прошивку самого программатора через утилиту ST-LINK Upgrade, если она корректно определяет клон.
Прошивка через ST Visual Programmer: пошагово
Это основной сценарий для тех, у кого уже есть готовый файл прошивки и не нужно компилировать код. Последовательность действий в STVP следующая.
☑️ Прошивка STM8S105 в STVP
Сначала откройте Configure → Configure ST Visual Programmer и выберите оборудование ST-LINK, порт USB и режим SWIM. Затем в главном окне в выпадающем списке микросхем найдите STM8S105K4 — именно так чип обозначается в базе STVP, суффикс корпуса и температурного диапазона (T6C) в списке не указывается.
Далее через File → Open загрузите файл прошивки в область FLASH. Останется нажать Program → Current tab — утилита сотрёт память, запишет данные и выполнит верификацию. Сообщение об успешной проверке означает, что прошивка записана корректно и контроллер готов к работе.
Program → All tabs (on sectors if any)
Эта команда записывает сразу все области: Flash, Data EEPROM и Option Bytes. Используйте её, только если уверены в содержимом каждой вкладки — случайная запись неправильных option bytes может изменить защиту или поведение чипа.
В STVP чип STM8S105K4T6C выбирается как STM8S105K4. Если в списке выбрана другая модель, запись либо не начнётся, либо пройдёт с ошибкой верификации.
Прошивка из среды разработки: IAR и STVD
Если вы не просто записываете готовый hex-файл, а разрабатываете собственную программу, прошивка выполняется прямо из IDE. В IAR Embedded Workbench for STM8 после сборки проекта достаточно выбрать Project → Download and Debug или Download → Download active application — среда сама запишет код через ST-LINK и при необходимости запустит отладку.
В связке STVD с компилятором Cosmic или бесплатным SDCC загрузка выполняется через инструмент отладки: в настройках отладчика выбирается Swim ST-Link, после чего команда запуска отладки автоматически прошивает контроллер. Для SDCC также существует консольная утилита stm8flash, работающая и под Linux — это удобный вариант для автоматизации:
stm8flash -c stlinkv2 -p stm8s105k4 -w firmware.hex
Какой бы инструмент вы ни выбрали, принцип один: программатор переводит чип в режим SWIM, стирает нужные сектора и записывает образ с последующей проверкой.
Что такое Option Bytes и зачем они нужны
Option Bytes — это конфигурационные байты микроконтроллера STM8. Они задают защиту от чтения (ROP), параметры сторожевого таймера, размер загрузочной области и функции альтернативных выводов. В STVP они редактируются на отдельной вкладке OPTION BYTE. Меняйте их, только понимая назначение каждого бита по даташиту и reference manual на серию STM8S.
Чип не определяется: типичные ошибки и решения
Самая частая ситуация — STVP выдаёт ошибку вроде «Cannot communicate with the device» или программатор не видит чип. Идите по списку от простого к сложному.
- 🔍 Проверьте общий провод — без соединения GND программатора и платы обмен невозможен;
- 🔋 Убедитесь, что чип запитан — либо от ST-LINK, либо от собственного источника платы, но не от двух конфликтующих источников одновременно;
- 🔁 Подключите линию RST, если она была отключена — это решает проблему, когда прошивка в чипе занимает или глушит SWIM;
- ✂️ Сократите длину проводов — длинные неэкранированные перемычки (более 10–15 см) вызывают сбои связи;
- 🧩 Проверьте распиновку клона ST-LINK — перепутанные SWIM и RST встречаются у дешёвых клонов сплошь и рядом.
⚠️ Внимание: не подавайте на чип 5 В, если он в вашей схеме запитан от 3,3 В, и наоборот — несоответствие уровней питания может повредить микроконтроллер или программатор. Сверьте напряжение питания платы мультиметром до подключения ST-LINK.
Отдельный случай — чип, защищённый от чтения (ROP, Read-Out Protection). Если STM8S105K4T6C извлечён из готового устройства, производитель почти наверняка включил защиту. При этом чип определяется, но чтение прошивки возвращает нули или ошибку. Снять ROP можно только полным стиранием чипа: защита снимается записью соответствующего option byte, после чего Flash очищается безвозвратно. Считать прошивку с залоченного контроллера штатными средствами невозможно — имейте это в виду до начала экспериментов, если содержимое чипа ценно.
Если ST-LINK не видит чип из-за «заснувшей» прошивки, попробуйте в STVP установить пониженную скорость SWIM (если версия утилиты это позволяет) и подать питание на плату в момент начала соединения.
FAQ: частые вопросы о прошивке STM8S105K4T6C
Можно ли прошить STM8S105K4T6C через UART или USB без ST-LINK?
Нет. У серии STM8S105 нет заводского UART-загрузчика, как у некоторых других STM8 (например, у части STM8S с отдельным bootloader). Штатный и единственный способ записи — интерфейс SWIM через программатор ST-LINK. Альтернатива — самописный загрузчик, но его сначала всё равно нужно записать через SWIM.
Чем отличается STM8S105K4T6C от STM8S105K4T6 или K6?
Суффиксы обозначают корпус, температурный диапазон и упаковку, а не отличия в прошивке. С точки зрения программирования это один и тот же чип — в STVP для всех них выбирается STM8S105K4.
STVP пишет ошибку верификации после записи. Что делать?
Возможные причины: нестабильное питание, слишком длинные провода SWIM, помехи на линии или неверно выбранная модель чипа. Проверьте пайку, укоротите проводники, убедитесь, что выбран STM8S105K4, и повторите запись. Если ошибка повторяется на одном и том же адресе — возможно, повреждена область Flash.
Как считать прошивку с чипа для резервной копии?
В STVP используйте команду Read на вкладке FLASH, затем сохраните буфер через File → Save. Это сработает, только если на чипе не включена защита ROP. Залоченный чип прочитать штатными средствами нельзя — снятие защиты стирает память.
Подойдёт ли клон ST-LINK из Китая за несколько долларов?
Да, для прошивки STM8 такие клоны обычно работают корректно. Главные нюансы — проверить распиновку конкретного экземпляра и при необходимости обновить его внутреннюю прошивку. Полный функционал отладки в IAR с клонами, как правило, тоже доступен.
Прошивка STM8S105K4T6C сводится к трём вещам: программатор ST-LINK, четыре провода (SWIM, RST, GND, питание) и утилита STVP с выбранной моделью STM8S105K4. Большинство проблем решается проверкой подключения и линии сброса.