St link v2 stm8 программа для прошивки

Обновлено: 07.07.2024

Подскажите пожалуйста, где можно найти информацию (код) по непосредственной прошивке микроконтроллера типа STM8S (и наверное ему подобных) с помощью готового ST-LINK/V2 по интерфейсу SWIM. В интернете находил исходники для консольной версии на языке «C» вообще без каких либо объяснений. В моей ситуации это два минуса. Первый минус - привык делать оконные версии в Delphi на "Паскале", поэтому не подходит язык, команды вообще другие, много отсылок на библиотеки и DLL, второй минус – так как пример консольный, очень много лишнего, а объяснения как говорил ранее, нет вообще …. чужая душа потёмки.

Причина создания утилиты: она как всегда тривиальная, защитить себя от кражи своего исходного файла прошивки, написанного под микроконтроллер STM8S003F3, которую передаю сторонним лицам на программирование. И другой возможности просто нет, это требование заказчика/хозяина. Результат со мной будет обговоариваться спустя несколько месяцев, аж после продажи готовых изделий самим заказчиком. Но вот если я предоставлю утилиту для программирования МК это будет нормально, мало ли сколько есть всевозможных «прошивателей» микроконтроллеров, например тот же ST-VP.exe (оконная версия) и STVP_CmdLine.exe (консольная версия) и появление ещё какой-то ни у кого не вызовет лишних вопросов. Тем более что в своей программе смогу сделать защиту от кражи, как самого исходного файла прошивки, так и саму возможность программирования можно будет приостановить в любой момент, или поставить счетчик и т.п.

Краткое описание текущей ситуации: программа написана под самую завязку STM8S003F3, ноги полностью все заняты, в основном на выход, только одна на вход АЦП, кроме ножки сброса, поэтому скорее всего вариант с bootloader-ом не пройдет (если честно я ещё не совсем разобрался с этим моментом). Из того что понял на данный момент, мне кажется банально не хватит места, ведь у меня еле влезло то что требовалось, а использовать именно этот МК опять же требование заказчика. Да и программировать в два этапа, сначала откуда-то bootloader, а потом каким-то образом ещё откуда-то основную программу - не подойдет. Никого не устроит этот вариант. Если в этом моменте что-то недопонимаю поправьте.

Почти уверен, что просто прошивка через уже готовый ST-LINK/V2 через SWIM блоками по 256 или 512 байт в программную часть флеш наверняка даже проще чем городить сам bootloader, который пусть и сам себя может прошивать – ну незачем всё усложнять …. или я опять же что то не до понимаю.

P.S. защиту от чтения ROP уже прошитого МК установил в коде прошивки, поэтому об этом уже тоже позаботился

Так это нужно писать свой бутлоадер с шифрованием.
Глупая идея.

P.S. А код прошивальщика можно найти на гитхабе. Вот он. Если бы его не было, то STM8 просто невозможно было бы прошить: все-таки, у них, в отличие от тех же STM32F0x2, не так-то много возможностей загрузить прошивку: ни USB-DFU, ни встроенного бутлоадера нет…

_________________
Я на гитхабе, в ЖЖ

Последний раз редактировалось Eddy_Em Сб янв 16, 2021 10:00:16, всего редактировалось 2 раз(а).

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Делал подобное, правда для STM32
прошивку размещаете в теле программы, можно зашифровать

конвертер в массив с бинарника пишется или ищется - слегка переделал

затем из массива восоздаете файлик куда ни будь в мутное рандомное место типа

файл экзешника программатора тоже лучше переименовать STVP_CmdLine.exe->у меня отфонарное 'ch.bks' и приложить к программе
и вызвать это из своей программы:

mmo1 нужно скрыть, удобно на этапе отладки
созданный файлик удаляете

Приглашаем всех желающих 25/11/2021 г. принять участие в вебинаре, посвященном антеннам Molex. Готовые к использованию антенны Molex являются компактными, высокопроизводительными и доступны в различных форм-факторах для всех стандартных антенных протоколов и частот. На вебинаре будет проведен обзор готовых решений и перспектив развития продуктовой линейки. Разработчики смогут получить рекомендации по выбору антенны, работе с документацией и поддержкой, заказу образцов.

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

Что-то мутное. Как правило такие условия выдумывают когда собираются кинуть разработчика. Тем или иным способом. Хотя решать конечно вам.

Добавлено after 4 minutes 41 second:

у меня еле влезло то что требовалось, а использовать именно этот МК опять же требование заказчика.

Насчёт "требования заказчика" - скорее всего просто не сумели убедить его. Хотя иногда реально встречаются крайне упёртые личности.

Да и программировать в два этапа, сначала откуда-то bootloader, а потом каким-то образом ещё откуда-то основную программу - не подойдет. Текстовым редактором пользоваться умеете? Если да: берёте два .hex-файла (бутлоадер + основное ПО) и тупо склеиваете их в текстовом редакторе несколькими нажатиями клавиш. Предварительно удалив некоторые строчки одного из файлов.
Всё - единый комплексный файл прошивки готов.

Навигационные модули позволяют существенно сократить время разработки оборудования. На вебинаре 17 ноября вы сможете познакомиться с новыми семействами Teseo-LIV3x, Teseo-VIC3x и Teseo-LIV4F. Вы узнаете, насколько просто добавить функцию определения местоположения с повышенной точностью благодаря использованию двухдиапазонного приемника и функции навигации по сигналам от MEMS-датчиков. Поработаем в программе Teseo Suite и рассмотрим результаты полевого тестирования.

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

Eddy_Em, я даже попытался разобраться в исходниках, но он даже не "компилится" с помощью Borland C++ 5.5.1, там куча ошибок как с синтаксисом, так и вплоть до нехватки библиотек (стандартные что были в инсталяторе все подтянул через .cfg). не достающие пробовал находить и подставлять, так вылазят ещё ошибки в них. Безусловно можно было докопаться, рассмотреть, вплоть до того что удалять ругающиеся команды, но буду откровенен сдался, так как рубая одну голову вылазило две новые.



STM8S103F3P6 и ST-Link2

Если в прошлый раз я писал о работе с STM8 из под Linux, то сейчас мне бы хотелось раскрыть этот вопрос с позиций Windows.

В качестве ОС я выбрал "старушку" Windows XP SP3, а в качестве "подопытного" чипа, так же как и в прошлый раз, у меня STM8S103F3P6 распаяный на плате как на картинке слева. Используемый мною программатор, это китайский клон ST-Link2.

Этот пост можно назвать "быстрым стартом" STM8в Windows.

1. Драйвера

Первым делом нужно будет поставить драйвера для программатора ST-Link2. Для этого заходим на домашний адрес компании ST в раздел данного программатора:


Проматываем страницу книзу, в раздел ПО:


после чего следует щелкнуть по STSW-LINK009. В результате попадем на страницу драйвера:


Как видно, драйвер предлагается для OC: Windows XP, Windows7, Windows8. Десятка похоже, что в пролете ;)

Кликнув по кнопке Download, получаем zip архив. Но т.к. как я уже говорил, что фирма ST сурова, то и никаких инсталятов со слайд-щоу и словами благодарности "за то что выбрали наше предложение", в архиве вы не найдете. Поэтому ставятся они по-другому.

Нужно вставить ST-Link2 в USB порт и дождаться когда запуститься мастер установки драйверов. В появившемся диалоговом меню следует отказаться от соединения с Window Update и в качестве источника драйверов указать распакованную папку скачанного архива.




После чего система сама найдет подходящие для себя драйвера и установит их:


Т.о. программатор начнет отображаться в диспетчере устройств:


2. Флэшер

После того, как драйвер программатора установлен, можно попытаться что-то запрограммировать. Но с софтом ситуация в STM8 я бы сказал, что не простая. Позволю себе процитировать компанию "Компэл".
Пакет ST Toolset включает в себя среду разработки ST Visual Develop и отдельную программу для более функционального внутрисхемного программирования flash-памяти микроконтроллеров ST Visual Programmer. Среда разработки ST Visual Develop имеет встроенный инструментарий для разработки программного обеспечения на языке assembler, но у нее также имеется возможность подключения и использования Си-инструментария от Raisonance и Cosmic software. Стоит заметить, что все четыре среды с Си-инструментарием предоставляют возможность использования с некоторыми ограничениями, а именно– по загружаемому коду во flash-память. УRaisonance оно составляет 16Кбайт, у Cosmic software– 32Кбайт, а у IAR– 8Кбайт или полную версию с 30-дневным ограничением.


Промотав cтраницу книзу и кликнув на Download получите zip-архив ST Toolset. После распаковки и установки у вас появятся ST Visual Developer и ST Visual Programmer. Первый нас не интересует, а второй следует запустить, это флешер. При запуске появиться окно конфигурации:


Выбрав тип микроконтроллера и программатор, попадаете в главное окно программы.

Важный момент: микроконтроллеры STM8 имеют единую шину памяти(адресная шина). Т.е. нет разделения на flash память и оперативную. Т.е. разделение есть на внутреннем уровне т.к. архитектура микроконтроллера все-таки гарвардская, но внешне, архитектура выглядит как фон Неймовская. Чтобы вспомнить, чем отличается одно от другого, приведу цитату из википедии:

В чистой архитектуре фон Неймана процессор в каждый момент времени может либо читать инструкцию, либо читать/записывать единицу данных из/в памяти. Оба действия одновременно происходить не могут, поскольку инструкции и данные используют один и тот же поток (шину). В компьютере с использованием гарвардской архитектуры процессор может читать инструкции и выполнять доступ к памяти данных одновременно, без использования кэш-памяти. Таким образом, компьютер с гарвардской архитектурой при определенной сложности схемы быстрее, чем компьютер с архитектурой фон Неймана, поскольку шины инструкций и данных расположены на разных, не связанных между собой физически, каналах. Исходя из физического разделения шин команд и данных, разрядности этих шин (следовательно, и адресные пространства) могут иметь различные значения и физически не могут пересекаться друг с другом.

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

Скриншот ST Visual Programmer:


Оперативка нас пока не интересует, на скриншоте красными стрелками помечены кнопки чтения и заливки прошивки.

Попытка прочитать что-то без программатора приведет к ошибке:


С программатором, но без микроконтроллера, тоже приведет к ошибке:


Пример успешного чтения прошивки:


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


3. Среда разработки IAR


После установки, вам предложат заполнить анкету и выбрать тип лицензии. После чего на email придет ссылка с лицензионным ключом. Введя этот ключ при первом запуске IAR вы попадаете в главное окно программы.


    Хорошие обзоры по интерфейсу IAR можно прочитать здесь:

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

Сейчас наша задача составить простой Blink, скомпилировать его и загрузить в микроконтроллер. Для этого сначала нужно создать новый проект:


затем, задать параметры проекта:


после чего откроется рабочее окно, где слева будет браузер проекта, в центре текстовый редактор, в снизу окно для логов. На панели инструментов не трудно будет найти кнопки компиляции и загрузки проекта в микроконтроллер:


Но прежде, чем что-то компилировать, следует сначала настроить проект. Поэтому в браузере проекта следует щелкнуть правой кнопкой по названию проекта, и открыть Options


где первым делом, во вкладке target следует выбрать целевой микроконтроллер:


а в качестве отладчика ST-LINK


Так же полезно будет зайти в опции IAR в настроить окно вывода сообшений:


После чего можно уже будет нажать на кнопку компиляции:


В нижнем окне логов появится отладочная информация.

Плата STM8S103S103F3P имеет два светодиода Один выполняет роль индикатора питания, другой подтянут к пину PB5(да, как в Arduino pin13).

Попробуем написать программу для мигания этим светодиодом:


Закомментируем сначала функцию delay, скомпилируем проект, подключим ST-Link с микроконтроллером и нажмем зеленый треугольник "Debug and Download" .


и попадем в окно отладчика. Справа будет ассемблерный листинг программы загруженной в микроконтроллер, слева на панели инструментов появятся кнопки для управления пошаговой отладкой. Нажимая "Step over" раз за разом, светодиод будет на плате будет то загораться то, гаснуть.

Раскомментиров delay, скомпилировав и загрузив прошивку еще раз в микроконтроллер, на панели отладки можно будет нажать на красный крестик. Тогда программа запустится на выполнение и светодиод начнет периодически мигать с интервалом примерно 1/5 сек.

Резюмируя можно сказать, за небольшую сумму (170 руб за ST-Link2 + 68 руб за плату STM8S103F3P6) получили в свои руки достаточно профессиональную связку железа и софта, с которыми можно сделать многое.

Ремонт китайского программатора ST LINK V2 и как прошить контроллер без программатора.

нет рисунка

Ссылка на видео в YouTube Наверное многие STMчики столкнулись с такой проблемой как выход из строя вот таких китайских программаторов ST LINK V2.
Основная причина этого не защищённость их выводов от превышение напряжения следствие чего при не грамотном использование они выходят из строя, так же и у меня. При разработки очередного частотного преобразователя вышли из строя два таких программатора причина была банальна, при испытания очередной прошивки частотника я их не отключал от устройства следствие из за выбросов напряжения у них просто выгорели порты так что советую по личному опыту отключать программатор от устройства где используется высокое напряжение или индуктивная нагрузка при его работе.
Но не будем уходить от темы ремонта, покопавшись в интернете я обнаружил что прошивка данных программаторов находится в свободном доступе даже есть какие то обновления и конечно плюс наличие в закромах несколько контроллеров STM32F103C8 подтолкнуло меня на идею их отремонтировать а не заказывать новые.
Что потребуется для этого:
а) STM32F103C8;
б) рабочий программатор;
в) фен паяльный и паяльник;
г) стабилизатор напряжения если не исправен;
д) и конечно прямые руки.
Приступим, первым делом отпаиваем феном не рабочую микросхему, потом проверяем наличие 3,3в на выходе стабилизатора( смотрим ниже где) если нет значит выпаиваем его тоже и взамен них устанавливаем рабочие компоненты.

нет рисунка


Да кстати в некоторых программаторах стоят контроллеры STM32F101CBT6 их тоже можно заменить на STM32F103C8T6 и что за стабилизатор в корпусе SOT-23-5 я так не смог определить лишь по выводам нашёл аналоги: LP2981AIM5-3.3 или RT9193-33. Если не сможете достать замену сгоревшему стабилизатору то придётся импровизировать( смотрите фото выше) как я приспособить AMS1117-3.3 или что то другое подходящее.
Для загрузки прошивки в новый контроллер можно использовать один из двух подходящих вариантов:
a) с использованием другого программатора, где мы заменили в неисправном программаторе неисправные компоненты а потом просто прошили;
б) с помощью USB to UART конвертера, для этого метода вам придётся впаять для прошивки контроллер в любую отладочную плату где есть вывод BOOT0, USART1_TX и USART1_RX.
Оба варианта прошивки описаны ниже.


Вариант №1 загрузка прошивки с помощью другого программатора.

Тут мы подключаем прошиваемый программатор к рабочему, +5V к +5V, GND к GND, SWCLK и SWDIO к отверстия как на рисунке ниже.

нет рисунка

Если прошиваемый программатор отличается то выводы SWCLK и SWDIO для прошивки можно найти с помощью прозвонки мультиметром.

нет рисунка

Перед тем как начать качаем архив с нужным софтом STM32 ST-LINK Utility v4.3.0 setup.exe и Protected-2-1-Bootloader.bin, разархивируем, устанавливаем программу для прошивки STM32 ST-LINK Utility v4.3.0 setup.exe и запускаем её. Подключаем наш прошиваемый программатор к рабочему и далее по инструкции ниже, если контроллер не заблокирован от чтения то начинаем с пятого пункта, файл для прошивки Protected-2-1-Bootloader.bin который тоже находится в архиве.

нет рисунка

Если не понятно на картинках, делаем так:
1) жмём Connect;
2) если выскакивает табличка память заблокирована, выполняем следующие пункты инструкции если нет то переходим к пункту 6;
3) жмём Target->Option Bytes. ;
4) в Read Out Protection выбираем Disabled и жмём внизу на Apply, память контроллера сбросится и снимется защита;
5) жмём Connect;
6) жмём File->Open file. ;
7) находим файл Protected-2-1-Bootloader.bin;
8) жмём Target->Program & Verify. ;
9) в открывшемся окне где указан прошиваемый файл жмём Start;
10) контроллер должен начать прошиваться;

Надеюсь всё получилось теперь осталось настроить прошивку, переходим к <<Окончательная настройка прошивки для программирования контроллеров семейства STM8 и STM32.>> и там заканчиваем весь процесс.


Вариант №2 загрузка прошивки с помощью USB-UART конвертера.

В контроллерах STM при производстве вшивается специальный программный загрузчик который может использовать выводы USART1 или USART2( зависит от контроллера) для загрузки в него прошивки, кому интересно качаем в интернете документ AN2606 и изучаем.
Схема подключения стандартная, вывод BOOT0 должен быть подключён к VCC( 3.3V) так контроллер будет знать что будет прошит через USART1.

нет рисунка

Для прошивки вам потребуется специальная программа и сам файл прошивки flash_loader_demo_v2.8.0.exe и Protected-2-1-Bootloader.bin качаем, устанавливаем.
А также повторюсь необходима отладочная плата куда должен быть впаян прошиваемый контроллер или если делаете собственный программатор то должны позаботиться о наличие выводов BOOT0 и USART TX-RX. Я для примера буду использовать отладочную плату STM32_Smart v2.0, к которой подключен USB-UART переходник и установлена перемычка на 3V и BOOT0, смотрите ниже.

нет рисунка

Запускаем программу flash_loader_demo_v2.8.0.exe и далее по инструкции.

нет рисунка

Описание:
1) запустили программу, она автоматически выбирает COM порт если не тот выберите вручную, жмём Next;
2) суда попадаем если память в контроллере заблокирована для чтения, жмём Remove protection, если нет защиты то переходим к пункту №4;
3) защита снята, OK;
4) Next;
5) Next;
6) выбираем Downloads to device, жмём выбрать файл на компьютере( квадратик с точками);
7) заходим в папку с файлом Protected-2-1-Bootloader.bin, меняем название файла на Bin files (*bin);
8) выбираем Protected-2-1-Bootloader.bin, жмём Открыть;
9) жмём Next;
10) идёт прошивка;
11) прошивка закончена удачно.

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


Окончательная настройка прошивки для программирования контроллеров семейства STM8 и STM32.

Прошили контроллер осталось его настроить или обновить как программатор для STM8 и STM32, для этого у вас должна быть установлена программа STM32 ST-LINK Utility v4.3.0 и будущий ST LINK воткнут в USB компьютера, и далее по инструкции ниже.

нет рисунка

Описание:
1) жмём ST -LINK->Firmware update;
2) откроется окно, жмём Device Connect;
3) откроется другое окно, выбираем STM32+STM8, жмём Yes>>>>;
4) программатор должен настроится для прошивки STM32 и STM8 контроллеров;
5) выскочит окошко что всё отлично, после этого программатор готов к использованию.

Для тех кто думал что можно прошивать только программаторам, перевёл часть текста из документа an2606.

Загрузчик хранится во внутренней памяти загрузочного диска (системной памяти) STM32 устройства. Он запрограммирован ST во время продукции. Его основная задача-загрузить прикладную программу к внутренней флэш-памяти через один из доступных последовательных периферийные устройства (USART, CAN, USB, I2C, SPI и др.). Протокол связи определяется для каждый последовательный интерфейс, с совместимым набором команд и последовательностями.

Микроконтроллеры STM8 состоят из нескольких линееек:
STM8S - основная линейка,
STM8A - для автомобильной промышленности,
STM8L - со сверхнизким потреблением энергии,
STM8T - емкостный сенсор для детектирования прикосновения или приближения.

STM8S103F3P6

Отладочную плату с микроконтроллером STM8 на борту можно приобрести за 1 (!) доллар и даже дешевле. Я приобрел несколько таких плат на основе микроконтроллера STM8S103F3P6 на торговой площадке ebay:

контакт назначение
D4 PD4 / UART_CLK
D5 PD5 / TX
D6 PD6 / RX
RST сброс
A1 PA1 / Oscin
A2 PA2 / Oscin
GND земля
5V вход стабилизатора
3V3 выход стабилизатора
A3 PA3 / SS
D3 PD3 / Ain4
D2 PD2 / Ain3
D1 PD1 / SWIM
C7 PC7 / MISO
C6 PC6 / MOSI
C5 PC5 / SCK
C4 PC4 / Ain2
C3 PC3
B4 PB4 / SCL (шина I2C)
B5 PB5 / SDA (шина I2C)

Для питания платы можно использовать следующие варианты:

  • подключение источника напряжением 4,5 . 15 В к контактам + или 5V и - или GND;
  • подключение кабеля к microUSB-разъему (этот разъем используется только для питания!);
  • подключение источника питания напряжением 3,3 В к контактам 3V3 и - или GND.


Использование компилятора SDCC

Пишем код программы в файле TST.c:

Выполняем компиляцию программы командой

При компиляции создается hex-файл TST.ihx:

ST-LINK V2

Для прошивки платы я приобрел на торговой площадке ebay программатор ST-LINK V2:

STM8 программатор

При первоначальном подключении к USB-порту компьютера программатор определяется как "неизвестное устройство" с VID 0483 и PID 3748:

прошивка STM8

На сайте ST доступен драйвер для программатора - STSW-LINK009:

как прошить STM8

После его установки при повторном подключении программатор распознается как "устройство USB":

Разъем программатора имеет 10 контактов:

Номер Название Назначение
1 RST сброс
2 SWIM SWIM-интерфейс (для STM8)
3 GND земля
4 3.3V + 3,3 В
5 5.0V + 5 В
6 SWCLK синхронизация (SWD-интерфейс, для STM32)
7 SWDIO данные (SWD-интерфейс, для STM32)
8 GND земля
9 3.3V + 3,3 В
10 5.0V + 5 В

ST-LINK V2 контакты

Для подключения программатора к плате я использую 4 контакта на разъеме программатора и на плате - 3.3V(3V3), SWIM(SWM), GND, RST(NRST):

При общении программатора с платой используется коммуникационный протокол SWIM (через однопроводной интерфейс - контакт SWIM).

Для прошивки я использую утилиту stm8flash, для запуска которой следует выполнить команду:

Бинарная версия проекта для ОС Windows (можно взять здесь) содержит два необходимых файла:

stm8flash.exe - исполнимый файл
libusb-1.0.dll - библиотека для доступа к USB-устройствам

прошивка STM8

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

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

Visual Studio Code

обновление прошивки STLINK

Прошивка программатора может быть обновлена с помощью утилиты, доступной для скачивания на сайте ST - STSW-LINK007:

После запуска приложения (для Windows - ST-LinkUpgrade.exe) необходим присоединить программатор к USB-порту компьютера, нажать кнопку Device Connect - при этом отобразятся текущая версия прошивки программатора (Version) и его тип (Type), а также версия, до которой можно обновить прошивку (Upgrade to Firmware). Для запуска процесса обновления прошивки необходимо нажать кнопку Yes>>>>.

Работа в редакторе Visual Studio Code

Для написания исходного кода программы, а также для автоматизации процесса компиляции и прошивки удобно использовать бесплатный редактор Visual Studio Code от компании Microsoft (страница загрузки).

STM8 Visual Studio Code

Вот как выглядит исходный код программы в Visual Studio Code:

Для удобства работы следует создать папку (например, sdcc), в которой будут располагаться файлы проектов для STM8. Затем следует добавить эту папку в рабочую область. В эту же папку помещаем файлы:

    compile.cmd - с содержимым: c:/sdcc/bin/sdcc -mstm8 --std-c99 %

В этой папке следует создать папку .vscode, в которой разместить файл tasks.json с таким содержимым:

Этот файл описывает две задачи:

  • compile - компиляция текущего открытого файла с исходным кодом (с расширением .c)
  • flash - прошивка скомпилированного ранее hex-файла (c расширением .ihx)

Выбирая соответствующую задачу ("Задачи" > "Запустить задачу. ")

можно запустить:
компиляцию

прошивку

Полезные подсказки

задание базовых адресов портов:

установка режима порта (DDR - регистр направления порта):

настройка вывода N порта X (PXN) на выход

настройка вывода N порта X (PXN) на вход

вывод (ODR - регистр выходных данных):

установка вывода N порта X (PXN) в состояние "1" :

установка вывода N порта X (PXN) в состояние "0" :

подключение заголовочных файлов

STM8 UART

Вот как выглядит собранная схема из микроконтроллера, USB-UART преобразователя и программатора:

(1/16000000)*65536*предделитель = интервал в секундах
10 секунд = 2441 0x0989

Необходимо задать номер канала АЦП, соответствующего используемому входу (например, вывод D2 - канал 3).

Напряжение можно определить умножением считанного из АЦП значения на VCC/1023, где VCC - напряжение питания на шине 3.3V.
Например, при подключении к входу 3.3V STM выхода 3.3V преобразователя USB-UART напряжение на нем составило 3,24 В. При этом масштабный коэффициент равен 3,24/1023 = 0,00317 В.

Пример простейшего проекта, мигающего светодиодом

Разработка в среде IdeaSTM8

Установка среды разработки

IdeaSTM8

Для программирования под микроконтроллеры STM8 можно использовать среду разработки IdeaSTM8 от компании Cosmic Software (в версии CXSTM8 special edition package - доступна с марта 2016 года, не имеет ограничений):

В качестве примера создадим программу мигания светодиодом (Hello, world! в мире микроконтроллеров) TEST, размещенным на плате и подключенным к контакту PB.5.

IdeaSTM8 создание проекта

Создаем новый проект, выполняя команду New Application:

STM8 программирование

Выбираем в качестве целевой платформы микроконтроллер STM8S103F3:

Копируем в папку проекта заголовочный файл с определениями stm8s.h, предварительно раскомментировав в нем определение используемого микроконтроллера STM8S103:

Создаем новый файл (tst.c) с исходным кодом:

Cosmic Software

создаем файл:

программа для STM8

выбираем в качестве типа файла - файл с исходным кодом на C:

IdeaSTM8 программирование

Добавляем созданный файл в проект:

Пишем код программы в созданном файле:

сборка проекта для STM8

Для компиляции и сборки проекта следует нажать клавишу F7 или выполнить команду Build:

В результате сборки в папке проекта создается файл с именем проекта и расширением .sm8 (TST.sm8).

Для преобразования файла с расширением .sm8 в готовый для прошивки в микроконтроллер hex-файл я использую COSMIC Software Hexa Translator (chex.exe) с помощью команды:

где TST - имя проекта.

Полученный hex-файл (TST.hex) содержит информацию, необходимую для прошивки микроконтроллера:

Для прошивка этого файла в память микроконтроллера можно использовать описанный выше программатор ST-LINK V2.

Мои проекты на STM8

Преобразователь PS/2 - UART

Преобразователь для проекта cpm4nano позволяет подключать PS/2-клавиатуру через последовательный порт (UART).

Дистанционно управляемая аэролодка

Микроконтроллер STM8 принимает сигнал ИК-пульта и управляет движением модели аэролодки.

Читайте также: