Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Изучаем STM8S Медленный старт. Часть 0 / Хабр

МК

семейства STM8S относительно STM8L/32 имеет меньший арсенал периферии, но позволяет без лишних усложнений разобраться с основами и получить необходимые навыки для работы с его старшими братьями.

0. На кого ориентирован материал, зачем и почему

При написании данной статьи, я предполагаю, что читающий умеет:

  • Внимательно читать (что редкость)
  • Немного работать с англоязычной технической литературой (ну или мотивацию научиться, т.к. первый язык программиста — английский)
  • Паять (хотя бы минимальные навыки)
  • Программировать на С (опять же, не все так сложно)
  • Гуглить (без этого никуда)
  • Пользоваться мультиметром и имеет прочие базовые навыки (по типу «не суй пальцы в розетку»)

Целями статьи считаю:

  • Обзорно пробежать все этапы разработки системы на базе микроконтроллера
  • Дать необходимые вводные для человека практически не посвященного
  • По возможности формирование у читающего понимания того, где, что и как найти


(Не существенно)

Зачем и почему?

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

Мне послужит поводом изучить всю периферию более детально и попутно поможет другим.

Знаю, что уже существует огромное количество статей и даже обучающих курсов, но я имею слегка иной подход. (Возможно получу адекватную критику, изменю мнение и примкну к MX Cube ребятам).

Грустно видеть, как stm контроллеры превращают в arduino.

По поводу arduino:

Есть 3 (известных мне, мб я просто не дорос) подхода к разработке ПО на МК:

  1. Разработка на ассемблере
  2. Разработка под конкретную модель МК
  3. Разработка с использованием HAL и им подобных библиотек

1) Я сторонник такого мнения, что если ты строишь дом, то не стоит обжигать каждый кирпич из глины своими руками, потому ассемблер отпадает (хоть и начинал с этого). Слишком низкая скорость разработки.

2) Библиотеки HAL и т.п. для начинающего непрозрачна и слишком много моментов «просто пиши вот так». Потому — тоже в помойку.

3) Наиболее здоровым вариантом для начинающего считаю процесс создания ПО под конкретный МК, полученные навыки позволят разобраться и с 8L и 32 сериями (хоть это и больно делать единолично по документации).

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

Я же предлагаю, с моей точки зрения, академически и методически более осмысленный подход.


1. Выбор микроконтроллера

У меня в наличии имеется несколько STM8S105K6 в корпусе LQFP32, он из этого семейства, потому выбираю его.

Вы можете выбрать любой МК в пределах серии.

Есть готовые Discovery платы от ST, можно купить у китайцев или заказать с других ресурсов. Есть готовые платы на STM8S103F3P6 и ей подобные от китайцев.

Но, следует учесть, что готовые платы предназначены для обучения.

На сайте производителя st.com, находим свой МК и скачиваем к нему документы:

Reference manual: RM0016 — общий документ для всех МК семейств STM8S и STM8AF. Далее RM.
Datasheet: У меня DS5855 — документ к моделям STM8S105C4/6, STM8S105K4/6 и STM8S105S4/6. Далее DS.

Из вкусного у него (поверхностно):

  • Поддержка 16 МГц
  • 32 Кб Flash памяти, 1 Кб EEPROM и 2Кб RAM
  • Питание 2.95-5.5В
  • 8-и 16-битные таймеры
  • UART, SPI, I2C
  • 10-битный АЦП
  • до 38 дискретных входов/выходов

2. Необходимое оборудование

Я вижу два варианта работы с МК:

  1. Сборка макета из отдельных компонентов

    Здорово, классно, мне нравится. Так делают многие люди.

    В этом случае для МК нужна будет так называемая обвязка. План простой:

    1. Берем макетную плату, в моем случае TQFP(32-64PIN)0.8MM, запаиваем на неё МК
    2. Берем двухрядную гребенку PLS-2×40 припаиваем к отверстиям, которые ведут к выводам МК
    3. Берем печатную макетную плату (у меня 9х15 см) и припаиваем на нее прошлый бутерброд
    4. Смотрим RM пункт 7. Power supply, читаем. Написано нужен конденсатор соединяющий вывод VCAP и наши 0В источника питания. Еще написано, что подробней в смотреть нужно в DS к конкретному МК в секции electical characteristics. Для меня это пункт 10.3.1 VCAP external capasitor со ссылкой на Table 18 где и указан номинал 470 — 3300 нФ. Я взял 1 мФ (на схеме C3). (для чего он нужен, надеюсь, почитаете сами в RM)
    5. Там же в DS в пункте 10.3.8. Reset pin characteristics находим номинал конденсатора 0.1мФ(на схеме C4). Резистор R4 номиналом 10 КОм используют в отладочных платах и различных application note, хотя внутри МК уже есть подтягивающий резистор номиналом от 30 до 80 КОм (если верить тому же DS). Параллельно конденсатору C4 ставим нашу кнопку сброса. Такую схему сброса можно увидеть например в Desighn note DN0005.
    6. Также, ST любят добавлять на отладочные платы конденсаторы по питанию на 100нФ, в количестве N выводов подключенных к питанию +1. На схеме нарисовано всего C1, C2 и C5 3 шт, и на плату я их не паял, но смысл вы поняли. На столе работать будет и без них, а в реальной коммерческой разработке лучше этим делом озаботиться при разведении платы устройства.
    7. Распаять SWIM разъем программирования (я делаю из PLS-1×40)

    У меня получилось такое чудо:


  2. Покупка готовой платы (что не избавляет от работы паяльником)

    Здорово, классно, мне нравится. Так делают многие люди.

    Стоит ознакомиться с конфигурацией платы, если это плата от ST, то она сразу с программатором и подключается USB type B кабелем. На сайте ST будет схема на странице продукта. На плате будут кнопки, светодиоды, пищалки, ёмкостные кнопки и прочие прелести с которыми можно поиграться.

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

    Шелкографии названий выводов лучше не верить и перепроверить сравнив с DS.

Работу с контактными макетными платами (breadboard) я не рассматриваю потому, что не использую.

Плюс нужен программатор, у меня китайский ST-Link V2. Умеет программировать и STM8 и STM32.

3. Выбор IDE

Для меня вопрос выбора пока не актуален, работаю в IAR для STM8, ибо в ней делали проект над которым я сейчас работаю, по той же причине старая версия.

Идем на сайт iar.com, в поиске набираем модель своего МК.
Скачиваем IAR Embedded Workbench for STM8, выбираем при установке size-limited evaluation и миримся с ограничением в 8 Кб кода. Или покупаем. Есть на запрещенных на территории РФ ресурсах взломанные версии, но для коммерческих проектов не годится.

Инструкция по установке есть в самом установщике либо в гугле.
Я использую версию 6.5.3.2581.
Устанавливаем среду, вместе с ней драйвера на программатор.

4. Создание проекта

Заходим в IDE, идем Project -> Create new project -> C++

Жмем OK, выбираем директорию (желательно не имеющую кириллицы и пробелов), выбираем имя (без пробелов и кириллицы).

Идем в корневую папку своей IDE и находим папку inc, для меня путь:

C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\stm8\inc

Находим среди заголовочных файлов iostm8 свою модель МК, для меня:

iostm8s105k6.h

Подключаем её в самом начале и добавляем бесконечный цикл.

Результат:
#include<iostm8s105k6.h>  //Заголовочный файл

int main()  
{
  while(1){  //Бесконечный цикл
  }
  return 0;
}

В меню Project -> Options -> General Options в графе Device выбираем свой МК.

В Project -> Options -> Debugger в графе Driver выбираем ST-LINK.

Находим на панели инструментов кнопку Download and Debug.
При первой компиляции среда попросит выбрать имя .eww файла. (Я называю так же как и проект.)

Внизу в окне Debug Log должны быть сообщения, что:

  • Preprocessor for STM8 — запустился препроцессор
  • Debugger for STM8 — запустился отладчик
  • Connected to STM8 SWIM Debugging system — произошло подключение к МК
  • Loaded debugee — произошла загрузка прошивки
  • Target reset — произошел сброс

Мы попали в режим отладки, но выполнение программы приостановлено.

Там же на панели инструментов находим и нажимаем кнопку Go.

Мы запустили МК в режиме отладки.

Нажимаем Stop debugging, отладка прекращается, но МК питается от программатора и дальше выполняет программу, а именно крутит бесконечный цикл и делает ничего.

Итоги

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

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

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

Насколько выполнены цели судить можно будет по тому, получилось ли у начинающего что-то сделать самостоятельно, используя предложенную мной информацию. (индикатор окно Debug log)

Спасибо за внимание.

Микроконтроллеры STM8. Первая программа. / STM8 / Сообщество EasyElectronics.ru

Микроконтроллеры STM8. Первая программа.
Здравствуйте,
Сегодня мы с вами поговорим об аппаратных средствах разработки для микроконтроллеров STM8S и создадим первый проект.

Для начала стоит определится с аппаратной платформой, потому что симулятор это хорошо, но, в любом случае, в итоге всё будет воплощено именно в железе. Для этого нам нужен программатор и отладочная плата. Как я уже упоминал в предыдущей статье, собрать самостоятельно программатор для STM8 – задача совершенно не простая, и требует серьезных знаний и больших усилий. В продаже присутвуют серьезные отладочные комплекты, наподобие STM8/128-EVAL, и универсальный программатор ST-Link, но, для быстрого старта ST выпустила два дешевых отладочных комплекта STM8S-Discovery и STM8L-Discovery. В них изначально встроена обрезанная версия ST-Link, и, таким образом, на одной плате мы получаем программатор и собственно целевой контроллер, готовый к программированию. И все это богатство стоит совершенно небольшие деньги: например, STM8S-Discovery достался мне за 115 грн. (около 14$). Разница между STM8S-Discovery и STM8L-Discovery состоит, кроме несущественных мелочей, в типе установленного контроллера, а также в том, что на STM8L-Discovery установлен энергосберегающий ЖК-индикатор. Первые шаги мы будем делать именно с использованием STM8S-Discovery, а потом соберем свою отладочную плату. Итак, что же у нас есть на этой замечательной платке?
STM8S-Discovery. Обзор платы.
С первого момента плата оставляет очень приятное впечатление. В комплект поставки ничего, кроме платы не входит, но это и не удивительно, учитывая цену. Плата упакована в пластиковую коробочку, знакомую многим по STM32VL-Discovery. Про кабель для связи с компьютером следует позаботится заранее – требуется самый обыкновенный A-B USB шнурок, каким, например, подключается принтер.
Глядя на плату, мы видим, что она разделена на две области – программатора и собственно отладочную плату. С платой стоит обращаться аккуратно, дабы не поломать ее на две части раньше времени.
Программатор работает по двухпроводному SWD-интерфейсу и позволяет прошивать не только встроенный контроллер, но и, при замыкании соответствующих перемычек, внешние устройства, чем мы в будущем непременно воспользуемся. Программатор работает со всеми семействами микроконтроллеров STM8, и ходят слухи, что скоро его взломают, и он сможет шить и STM32.

На отладочной плате установлен микроконтроллер STM8S105C6T6, внешний кварц на 16 МГц, сенсорная кнопка и светодиод. На разъемы выведены все выводы микроконтроллера. Внизу платы находится небольшая макетная область с футпринтом для микросхем в корпусе SO 16 и небольшим количеством металлизированных отверстий.
Изначально в контроллер залита программа, которая позволяет касанием к сенсорной кнопке менять частоту мигания светодиода. Но к сенсорной кнопке мы вернемся намного позже, а сейчас создадим первую программу для STM8. Создание проекта для STM8 подобно созданию проектов в IAR для других платформ, но я повторюсь, чтобы не прерывать последовательность курса.

Создание первого проекта в IAR.

Запустим среду IAR Embedded Workbench for STMicroelectronics STM8. Текущая версия -1.20. После загрузки мы видим следующее окно:

Не стоит пренебрегать размещенными в основном окне программы на желтом фоне. Особенно важными являются разделы Getting Started и User Guides. В них содержатся масса полезной информации по самой среде разработки, а также гайды по Си, С++ и ассемблеру. В разделе Example Projects Капитан Очевидность разместил примеры проектов.
Создадим новый проект: идем в меню «Project», где выбираем пункт меню «Create new project…».

В появившемся окошке выбираем шаблон для языка Си, после чего нам предлагают сохранить нашу рабочую область – Workspace, с расширением *.= MASK_PD_ODR_ODR0; // Переключение уровня напряжения на ножке на противоположное // при помощи операции Исключающее ИЛИ (XOR) } }
Программа короткая, каждая строка откомментирована, поэтому дополнительных объяснений я приводить не буду, если появятся вопросы – я отвечу на них в комментариях.
По умолчанию, наш код после компиляции будет запущен в симуляторе. Настроим наш проект для выполнения в железе. Для этого в окне workspace выберем пункт контекстного меню «Options», причем нажать правой кнопкой мыши нужно именно на самом проекте, а не на файлы, которые в него входят. Для достижения того же эффекта можно нажать Alt+F7.

На странице General, вкладке Target выберем модель нашего контроллера: STM8S — > STM8S105C6.

Выберем наш отладчик на странице Debugger, вкладке Setup: ST-Link.

Нажимаем Оk. Теперь самое время запустить нашу программу.

На основной панели инструментов нажимаем кнопку «Download and Debug» в виде зеленого треугольника, и если никаких проблем не возникло, о чем IAR не преминет нам сообщить, то наша программа будет записана в микроконтроллер и мы увидим следующее окошко:

Справа мы видим окошко дизассемблера, по центру – окно основной программы. Строка, подсвеченная зеленым, выполнится на следующем шаге. Пошагаем по программе при помощи кнопки «Step Over» (F10), и увидим, что светодиод на плате мигает.

Соответственно, программа работает правильно. Выйти из режима отладки можно нажав кнопку «Stop Debugging» в виде красного крестика.

На сегодня все, а в следующей статье мы подробнее рассмотрим порты ввода-вывода, а также Firmware Library для STM8.

Ссылки:
Раздел сайта STM, посвященный STM8S-DISCOVERY

первые шаги в среде IAR

21 октября 2013

Портфель микроконтроллеров компании STMicroelectronics в его нынешнем виде сформировался несколько лет назад (рисунок 1). Исключая различные узкоспециализированные устройства, в нем выделяются 2 семейства контроллеров — 8-битное STM8 и 32-битное STM32. В то время, как последнее основано на ядрах Cortex-Mx производства компании ARM, STM8 — это архитектура собственной разработки. Несмотря на то, что в нашей стране словосочетание «контроллер от SТ» твердо ассоциируется с приборами семейства на ядре Cortex, 8-битные контроллеры удерживают устойчивое лидерство по количеству проданных микросхем, которое составляет около 240 миллионов шт. (по информации за 2011 год).

 

 

Рис. 1. Портфель контроллеров STMicroelectronics

Микроконтроллеры STM8 изначально были ориентированы на автомобильный рынок, однако успешность архитектуры позволила вывести данное семейство на широкий рынок. Но лучшие черты, свойственные Контроллерам, ориентированным на автомобильную промышленность, семейство сохранило. Это, в первую очередь, то, что вся память, как Flash, так и Eeprom, построена по технологии Еeprom, благодаря этому энергопотребление слабо зависит от температуры кристалла. Технологический процесс 130 нм гарантирует низкое потребление. Кстати, можно упомянуть, что STMicroelectronics занимает 40% рынка Eeprom-памяти и является неоспоримым лидером в этой нише, происходит это благодаря самым передовым технологиям. А то, что память занимает до 95% кристалла контроллера, гарантирует, что изделия будут отвечать наивысшим требованиям качества.

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

За несколько лет существования микроконтроллеры на ядре STM8 стали де-факто лидером на рынке 8-битных устройств. Ежегодное производство составляет несколько сотен миллионов штук. Микроконтроллеры этого семейства можно найти повсеместно: в бытовой и промышленной электронике, компьютерах, медицинском оборудовании.

 

Архитектура STM8

Архитектура STM8 настолько проста для программиста, что не требует глубоких знаний для того, чтобы начать работать с контроллером. Очень многое было взято от контроллеров STM32 (читай ARM). В то же время набор команд CISC гарантирует высокую плотность кода, а то, что команды в большинстве 1-тактовые и 16-битные — высокую производительность. Среди разработчиков зачастую бытует мнение, что STM8 — это инкарнация 51 архитектуры, однако это совершенно не верно. Наличие команд относительной косвенной адресации явно говорит о том, что система инструкций оптимизирована под язык «Си» для быстрой обработки условий case. Следует так же отметить, что знаний ассемблера для решения подавляющего числа задач промышленного управления не требуется.

С практической точки зрения, в первую очередь следует обратить внимание на единое 24-битное адресное пространство, в котором замечательно разместилась Flash-память, ОЗУ, Eeprom, а также регистры периферии. Это существенно упрощает написание кода, например, функции для работы с массивами из ОЗУ и Flash-памяти не требуется писать в нескольких экземплярах. Коды различных стеков и библиотек легко портируются, так как в основном рассчитаны на архитектуру фон Неймана (в смысле адресного пространства). При этом шины для доступа к разным типам памятей разделены, что говорит нам о наличии Гарвардской архитектуры.

Для того, чтобы многобайтные команды и данные поступали в ядро без задержек, реализован 3-ступенчатый конвейер. Команды вычитываются из памяти по 32-битной шине, соответственно, за 1 обращение — 2 команды. Код можно выполнять так же из памяти данных, но, так как шина к памяти данных 8-битная, то конвейер будет заполняться гораздо медленнее и производительность будет ниже, однако о такой возможности нужно знать.

Система прерываний реализована в ядре. Прерывания вызываются через вектора, которые расположены в начальной части кода. При этом контекст сохраняется автоматически. Однако для выхода из прерывания требуется инструкция, отличная от инструкции выхода из обычной подпрограммы, потому пользователь должен в том или ином виде сообщать компилятору о том, что функция является обработчиком прерываний. Количество прерываний — до 32, из которых 29 пользовательские, с задаваемым приоритетом, остальные — системные, включая RESET.

 

Выбор среды программирования

Наиболее популярные средства программирования STM8 это среды ST Visual Develop с компилятором производства компании Raisonance и IAR Embedded Workbench. В таблице 1 приведено их краткое сравнение.

Таблица 1. Краткое сравнение сред разработки IAR EW и ST VD   

Параметр ST VD IAR EW
Поддержка ST7  да  нет  
Ограничение по коду на бесплатную лицензию, Кбайт  32  8  
Многоплатформенность компилятора  нет  да  
Встроенный дебаггер-отладчик  да  да (ST-LINK)  
Уровень оптимизации кода  высокий  высокий  

В нашем случае мы выберем среду производителя IAR, так как контроллер, который мы будем программировать содержит всего 8 Кбайт памяти программ и по остальным параметрам он не проигрывает ST VD, зато более известен российскому разработчику, так как многие пользовались им для программирования контроллеров других архитектур.

 

Выбор отладочной платы микроконтроллера

Как уже было упомянуто выше, мы рассмотрим контроллер с 8 Кбайт Flash-памяти, это контроллер линейки Value Line. Почему? В первую очередь потому, что данное семейство позиционируется как самое эффективное в плане цены и не имеет конкурентов со стороны STM32. Данные микроконтроллеры предназначены для создания на их основе различных датчиков, контроллеров управления для бытовой и промышленной аппаратуры. То есть там, где мощность 32 бит не востребована, а стоимость и энергопотребление играют наиважнейшую роль.

Итак, остановим выбор на контроллере STM8S003K3T6. Компания STMicroelectronics для данной линейки выпустила средство для быстрого старта под названием STM8SVLDISCOVERY. Рассмотрим вкратце, что предлагает данная отладочная плата (рис. 2).

 

 

Рис. 2. Отладочная плата STM32VLDiscovery

Данная отладочная плата уже содержит встроенный отладчик ST-Link, который впоследствии можно использовать для программирования пользовательских систем.

 

Программная поддержка микроконтроллеров


на ядре STM8

Периферия микроконтроллеров STM8 очень гибкая и для того, чтобы настроить тот или иной блок в требуемый режим, понадобится настроить до нескольких конфигурационных регистров. Для того, чтобы защититься от мелких ошибок, на исправление которых, как правило, теряется большая часть времени, STMicroelectronics предлагает стандартную периферийную библиотеку. С ее помощью инициализация превращается в запуск функции с несколькими понятными параметрами.

Структура библиотеки приведена на рисунке 3.

 

 

Рис. 3. Структура стандартной периферийной библиотеки

Из этой структуры видно, что все обработчики прерываний собраны в одном файле. За каждый периферийный блок отвечает отдельный файл и существует конфигурационный файл, в котором пользователь должен выбрать, какие модули периферии будут включены, а какие не будут. К файлу приложения пользователя подключается единственный файл stm8s.h, а все остальное делается автоматически.

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

Данная библиотека свободно скачивается с сайта www.st.com.

 

Работа с микроконтроллером в среде IAR

Во первых, с сайта http://www.iar.com/ следует скачать и установить среду разработки IAR Embedded Workbench для STM8 в редакции Kickstart (рисунок 4).

 

 

Рис. 4. Вид проекта в среде IAR EW

Наипростейший путь создания нового проекта — это воспользоваться шаблоном-примером. В каждом архиве периферийной библиотеки имеется такой пример, который после разархивирования находится в папке ProjectSTM8S_StdPeriph_TemplateEWSTM8.

Мы же, для того, чтобы упростить себе задачу, возьмем периферийную библиотеку с шаблоном проекта именно для этой платы [1] и в этом архиве найдем файл STM8SVLDISCOVERY_DiscoverProjectsProject_templateEWSTM8Project.eww. Разархивируйте проект и запустите этот файл. Откроется среда IAR. В данном проекте-шаблоне уже настроено все необходимое для того, чтобы работать с контроллером как через библиотеки, так и через регистры (напрямую).

Как нетрудно заметить, пользовательские файлы выведены в отдельные папки и их можно быстро найти, чтобы открыть и что-либо изменить. Библиотека периферии выделена в отдельную папку и в нее можно смотреть только для ознакомления, так как все включенные в нее файлы имеют статус «только для чтения». Итак, перед нами классический вид проекта в среде IAR, где главным является файл main.c, в котором содержится функция входа в пользовательское приложение void main(void). Второй пользовательский файл — это stm8s_it.c, в котором содержатся пустые обработчики всех возможных прерываний. Эти обработчики, в случае их использования, останется заполнить собственным кодом.

Рассмотрим подробно настройки проекта. Для этого следует зайти в меню, и выбрать ProjectOptions. Пожалуй, основные опции мы рассматривать подробно не будем, так как они понятны и одинаковы для всех версий IAR. А вот опции, которые разрешают работать с библиотекой мы обсудим подробнее (рисунок 5).

 

 

Рис. 5. Свойства компилятора

Для этого найдем закладку Preprocessor в опциях С/С++-компилятора. В первую очередь обратите внимание, что подключена папка с файлами описаний (*.h) стандартной периферийной библиотеки. Далее требуется обратить внимание на наличие глобального макроса-определения STM8S003. Библиотека работает с разными линейками сери STM8S, потому этот макрос помогает ей понять, с чем ей конкретно придется работать.

В опциях дебаггера по умолчанию уже выбран ST-Link и для того, чтобы загружать проект в плату, достаточно подключить ее по USB и нажать кнопку «Download and Debug» на панели инструментов (рисунок 6).

 

 

Рис. 6. Часть панели инструментов с кнопкой запуска

 

Написание своего приложения

Итак, мы вплотную приблизились к написанию собственного кода. Мы напишем программу, которая будет конфигурировать вывод порта, к которому подключен светодиод, и поуправляем им Перед тем, как приступить к программированию, необходимо скачать принципиальную схему, ее, а также другую полезную информацию по данное плате, можно найти здесь: [2].

Светодиод катодом подключен к PD0, анод подключен через токозадающий резистор к питанию. Таким образом, чтобы включить светодиод, необходимо подать на вывод порта логический 0.

В первую очередь изучите файл-шаблон main.c. Вы найдете в нем, кроме самого основного приложения, интересную функцию void assert_failed(u8* file, u32 line). По умолчанию она отключена макросом USE_FULL_ASSERT. Данная функция позволяет отследить некорректное использование библиотеки в том случае, если вы задали какой-то параметр неверно или перепутали порядок следования параметров. Эту опцию рекомендуется активировать для режима отладки, включив в список преопределенных символов компилятора.

Начинаем модификацию void main(void).

Для того, чтобы понять, какую функцию нужно взять для инициализации из библиотеки, нужно открыть список функций файла stm8s_gpio.c, и станет очевидно, что нужна функция GPIO_Init (рисунок 7).

 

 

Рис. 7. Функции драйвера периферийного модуля GPIO

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

 

 

Рис. 8. Функция инициализации GPIO

Соответственно, первый аргумент станет очевидно понятными, это GPIOD. А вот для понимания того, что должны из себя представлять остальные, требуется отправиться к определениям GPIO_Pin_TypeDef и GPIO_Mode_TypeDef. И сразу станет ясно, что это GPIO_PIN_0 и GPIO_MODE_OUT_PP_HIGH_FAST соответственно.

Итак, мы получили функцию

GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_HIGH_FAST)

Включим ее в основной код. Вот и вся инициализация. После этого остается только воздействовать на состояние вывода. Для этого также обратимся в файл библиотеки и найдем наиболее подходящую функцию void GPIO_Write(GPIO_TypeDef* GPIOx, uint8_t PortVal). Аналогичным образом найдем, какие должны быть у данной функции аргументы для того, чтобы включить или выключить светодиод.

Итак, в итоге мы получим следующий вид функции void main(void) (рисунок 9):

 

 

Рис. 9. Функция void main(void)

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

 

Заключение

Микроконтроллеры семейства STM8 — это мощные и, в то же время, недорогие устройства, на которых можно строить различную домашнюю и промышленную автоматику. Крайне невысокая цена контроллеров линейки Value Line делает их весьма конкурентоспособными на рынке средств для построения различных датчиков (дыма, газа) там, где массовость, компактный размер и цена важны в равной степени. А то, что контроллер очень удобен в использовании как в электрическом, так и в программном смысле, делает возможным окончить разработку в кратчайшие строки.

 

Литература

1. http://www.st.com/web/en/catalog/tools/PF257969  

2. http://www.st.com/web/en/catalog/tools/PF252276#.

Получение технической информации, заказ образцов, поставка — e-mail: [email protected]

 

 

•••

Наши информационные каналы

ST Visual develop IDE – среда для программирования STM8

Установка среды и компилятора

Сама программа поставляется компанией ST бесплатно. Скачать её можно с официального сайта ST по этой ссылке. Установка не имеет каких либо особенностей.

Для работы с этой средой дополнительно необходим компилятор. Можно использовать два компилятора COSMIC и REISONANCE. COSMIC ранее был платный, но сейчас его можно скачать здесь и установить абсолютно бесплатно, его и будем использовать. Единственная проблема — ожидание ключа активации — 1-2 рабочих дня. Также необходимо раз в год активировать компилятор заново (проще переустановить).

После установки можно сразу запустить среду, создать новый проект и начать программировать. Но тогда придётся прописать все пути руками. Гораздо проще использовать стандартную библиотеку от ST, вместе с ней поставляется шаблон проекта. Так мы и поступим.

Набор стандартных библиотек для STM8, новый проект

Стандартные библиотеки для STM8 можно скачать здесь. Библиотека поставляем в zip архиве с подробным описанием и широким набором примеров. Внутри она имеет следующий набор папок.


Для создания нового проекта, проще всего скопировать всю папку библиотеки STM8S_StdPeriph_Lib, назвать её по имени проекта, лучше по-английски. Далее из Visual develop IDE необходимо открыть файл проекта:


Лучше сразу связать это расширение с нашей IDE.

При старте нового проекта из шаблона, вы получаете сразу готовые настройки под все МК STM8.


Остаётся только выбрать нужный МК и начать разработку. Остальные можно удалить.

Первым делом необходимо сделать начальные настройки проекта. Нажимаем на нужной серии правой кнопкой мышки и выбираем Settings. В данном окне переходим на закладку MCU selections и выбираем нужный МК:


Далее нажимаем на плюс, открываем файлы проекта, видим файл main.c, нажимаем на нем два раза мышкой и начинаем программирование.

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

Если вам не хватает памяти, то можно отключить обработку исключительных ситуаций. Это делается через файл stm8s_conf.h. Надо закомментировать строку:

#define USE_FULL_ASSERT (1).

В результате освободится довольно много памяти для программы. Также можно заменить простые процедуры библиотеки на прямую запись в регистры.

Настройка использования типовых библиотек СИ

Если вы планируете использовать в проекте стандартные библиотеки языка СИ, например math (функция RAND) или другие, то необходимо, кроме указания в тексте соответствующего #include «math.h», в настройках проекта на закладке Linker, указать использование стандартных библиотек:

Работа в среде

Среда очень похожа на Visual C, поэтому не должна вызывать у вас проблем. Для компиляции проекта необходимо нажать кнопку Compile:


Для запуска отладки и прошивки МК — кнопку Debug:


При написании кода по комбинации «CTRL пробел» вызывается подсказка по имени переменной или функции:

По имени функции, по правой кнопке мышки можно быстро перейти в самой функции — команда «Go to defenition».


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

Если вы используете в проекте внешний кварц, то его частоту придётся задать руками в файле проекта «stm8s.h»:

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


Сама библиотека очень хорошо описана в файле «stm8s-a_stdperiph_lib_um.chm» в корне стандартной библиотеке.

Работа с библиотекой достаточно удобная, за исключением немного большого расхода памяти на вызов стандартных процедур, какую то часть функций можно было реализовать просто через «#define»

В данной статье мы не будем подробно описывать, как писать программу для STM8 в этой среде, это будет сделано в статье по приборам на основе этого микроконтроллера.

Симулятор

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


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

В симуляторе доступны все регистры, работают прерывания по таймерам, можно проводить отладку сложных формул и функций. Также в нем можно оптимизировать программу. Виден полученный код на ассемблере. Можно измерять скорость вычислений в тиках процессорного времени и миллисекундах. Можно симулировать состояние выводов МК. В общем, вещь однозначно очень удобная.

Отладка, прошивка, оптимизация кода

Для работы с реальным устройством вам необходимо иметь программатор — ST-LINK. В настройке отладки выбираем его, остальные настройки оставляем по умолчанию.


Далее все просто, при начале отладки — программа компилируется, прошивается микроконтроллер и начинается отладка. Если вам необходимо просто прошить МК, то надо начать отладку и после ее начала — прервать ее, по соответствующей кнопке.

В процессе отладки вам доступна возможность установки не более 8 точек останова и возможет просмотр всех переменных, а также состояния внутренних регистров, во время остановки программы. Это очень мощный инструмент, который позволяет изучить, как работает микроконтроллер, а также найти и поправить ошибки в своей программе. Через меню «View» во время отладки вы можете включить нужные окна.


Например, окно «Watch» позволяет просмотреть любые переменные, провести вычисления:


Не забывайте про оптимизацию кода. Во первых, вы не сможете просмотреть содержимое локальных переменных, если это необходимо — то надо сделать их глобальными. Во вторых условные переходы могут быть расположены по другому, конструкции if else компилятор может перерасположить. Если вам необходимо, чтобы отладка шла в соответствие с написанным кодом, то в настройках проекта надо отключить оптимизацию:

Программирование option byte

Для программирования option byte необходимо через меню TOOLS запустить porgrammer. Это отдельное приложение для прошивки МК, через него можно прошить option byte.


Изменение значения осуществляется по правой кнопке мышки. Программирование — на закладке Program по кнопке START. Предварительно на закладке Settings надо задать типа программатора ST-LINK.

Контроль размера прошивки

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


смотреть нужно все позиции, кроме сегмента debug и info.

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

Матюшов И.В. Начало работы с микроконтроллерами STM8

Матюшов И.В. Начало работы с микроконтроллерами STM8

Глава 1. Общая информация о микроконтроллерах STMB

Компания STMicroelectronics является одним из лидеров в области создания электронных компонентов – усилителей, аудио, микроконтроллеров, АЦП и ЦАП, микросхем интерфейсов, фильтров, переключателей, мультиплексоров и многих других. Одной из основных направлений продукции компании – восьмиразрядные микроконтроллеры с архитектурой STM8. На основе архитектуры STM8 основаны четыре серии микроконтроллеров:

  • STM8S – микроконтроллеры для общего применения;
  • STM8L – микроконтроллеры для устройств с низким потреблением и батарейным питанием;
  • STM8AF – микроконтроллеры для автомобильной электроники;
  • STM8AL – микроконтроллеры для автомобильной электроники в энергосберегающих приложениях.

Серия STM8S является основной, так как она «перекрывает» большинство применений восьмиразрядных микроконтроллеров. Микроконтроллеры серии STM8S основаны на архитектуре STM8, построены по технологии 130 нм, что позволяет им работать на частотах до 24 МГц. Наличие встроенной памяти EEPROM, внутренних источников тактового сигнала и большого набора периферийных модулей позволяют использовать эти микроконтроллеры во многих встраиваемых приложениях.

Серия STM8S состоит из четырех линеек:

  • STM8S003/005/007 – линейка «Value line» – микроконтроллеры «начального» уровня с базовым набором функций – имеют малое допустимое количество перезаписи памяти программ;
  • STM8S103/105 – линейка «Access line» – имеют больше функций, памяти, большее количество циклов перезаписи памяти;
  • STM8S207/208 – линейка «Performance line» – имеют полный набор функций;
  • STM8S903 – линейка микроконтроллеров специального назначения.

Линейки обладают различными функциями, но, тем не менее, между ними сохранена совместимость «Корпус в корпус», что позволяет при необходимости переходить на более производительные микроконтроллеры простой заменой.


Разработка для STM8 под Linux

Пару лет назад решил попробовать микроконтроллер STM8. Купил их пачку по дешёвке у китайцев. Как позже оказалось это был STM8S003F3, т. е. дешёвая серия этих контроллеров, но тем не менее с учётом цены вполне неплохо. К сожалению информации по разработке было довольно мало, в особенности по разработке под Linux. Ну и всё, что удалось нарыть собирал в статью, дописать которую сподобился только сейчас.

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

STM8

Для подключения и дальнейшей разработки нам понадобится Даташит и Мануал

Распиновка контроллера

ST-LINK

У меня китайский ST-LINK. Где купил — уже и не помню. Что-то типа такого StLink v2. Для состоятельных парней готовых заплатить в 10 раз больше — можно купить и оригинал Оригинальный ST-Link V2.

Мой выглядит вот так:

Для наших экспериментов достаточно подключить 4 вывода ST-LINK к соответствующим выводам контроллера.

ST-LINKST-LINK PinSTM8STM8 Pin
RST1NRST4
SWIM3SWIM18
GND5Vss7
3.3V7Vcap8

Под Linux всё, что нам доступно это компилятор sdcc. В моём ArchLinux-е стандартный пакет sdcc работал, но напрочь отказывался линковать код. Это подтверждённый баг в определённых версиях sdcc, поэтому если при линковке вы не получите на выходе файлы *.ihx, то просто попробуйте откатиться до более старой версии. Ну или до более новой — я просто скачал текущий девелоперский релиз отсюда и всё заработало.

Позже в ArchLinux нашёл пакет sdcc-svn который фактически тянет и собирает текущий код проекта. Он тоже оказался работоспособным и в конечном итоге остановился именно на нём. Я всё-таки предпочитаю использовать средства операционной системы, а не городить собственные велосипеды.

Выше уже написал, что для прошивки пользуюсь китайским клоном ST-LINK. Для работы с ним в Linux у нас есть проект https://github.com/vdudouyt/stm8flash, который и позволяет нам заливать прошивку в устройство.

По счастью для Arch Linux-а есть готовый пакет и руками собирать ничего не надо.

1

$ yaourt -S stm8flash-git

Как-то бы надо проверить работает ли оно вообще. Поэтому цепляем St-Link и пробуем прочитать содержимое контроллера. Но для начала на всякий пожарный пробуем его разблокировать.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$ stm8flash -c stlinkv2 -p stm8s003f3 -u

Determine OPT area

Unlocked device. Option bytes reset to default state.

Bytes written: 11

$ stm8flash -c stlinkv2 -p stm8s003f3 -r test.hex

$ cat test.hex

:20800000000000000000000000000000000000000000000000000000000000000000000060

:20802000000000000000000000000000000000000000000000000000000000000000000040

:20804000000000000000000000000000000000000000000000000000000000000000000020

:20806000000000000000000000000000000000000000000000000000000000000000000000

:208080000000000000000000000000000000000000000000000000000000000000000000E0

:2080A0000000000000000000000000000000000000000000000000000000000000000000C0

:2080C0000000000000000000000000000000000000000000000000000000000000000000A0

...

Видим дамп заполненный нулями, что собственно нам и нужно.

В данном случае я в качестве устройства выбрал stm8s003f3 т. к. именно такой контроллер у меня в наличии. Полный же список поддерживаемых устройств можно посмотреть так:

1

2

$ stm8flash -l

stlux???a stm8af526? stm8af528? stm8af52a? ...

Ну что — железо есть, есть чем заливать прошивку в контроллер. Дело за малым — написать программу. Но для написания кода крайне желательно иметь уже готовую библиотеку стандартных функций. Для STM8 такая библиотека есть. Установка её не вполне тривиальная задача, поэтому остановлюсь на ней поподробнее.

Основная проблема этой библиотеки это то, что она изначально разрабатывалась под коммерческие компиляторы и соответственно с sdcc работать не будет. Но мир не без добрых людей и нашлись умельцы, доработавшие её до полной совместимости. Но тем не менее все изменения нам придётся вносить вручную … ну или почти вручную.

Сборка вручную

Существует несколько патчей от разных умельцев. Изначально я писал эту статью 2 года назад и всё было несколько проще. Но попробовав воспроизвести написанные мной же действия понял, что слишком много воды утекло и данные устарели. Поэтому пришлось перебрать несколько вариантов прежде чем получить нужный результат. Здесь выложу только последний — успешный вариант.

Итак для начала нам нужно зарегистрироваться на сайте www.st.com. Раньше это не было обязательным, но сейчас вот оно вот так — деваться некуда. Сам я выкачать и выложить библиотеку не рискну, ибо обвинения в пиратстве мне не нужны. Придётся каждому делать это самостоятельно.

После успешной регистрации весь софт с примерами можно найти на этой странице:

http://www.st.com/en/embedded-software/stm8-embedded-software.html? querycriteria=productId=SC1807

Соответственно для STM8S ищем там STSW-STM8069 (STM8S/A Standard peripheral library).
Прямая ссылка — http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm8-embedded-software/stsw-stm8069.html
И качаем оттуда архив en.stsw-stm8069.zip.

Для работы нам понадобятся утилиты make, unzip и patch. Они уже должны быть установлены в системе.

Итак создадим папку и скачиваем туда файл en.stsw-stm8069.zip. Туда же скачиваем мой Makefile. В Makefile-е нужно поправить имя используемого чипа, которое должно быть одним из следующих.

1

2

3

4

5

6

7

8

9

10

11

12

STM8S208

STM8S207

STM8S007

STM8AF52Ax

STM8AF62Ax

STM8S105

STM8S005

STM8AF626x

STM8AF622x

STM8S103

STM8S003

STM8S903

Имя чипа нужно указать в переменной CHIP

Указываем чипlink

1

2

3

4

5

CC = sdcc

AR = sdar

CHIP = STM8S003

...

Далее просто запускаем командой make сборку библиотеки.

Собственно что при этом происходит? Файл распаковывается, выкачивается нужный патч, накладывается на исходники библиотеки, библиотека собирается, финальный файл вместе с исходниками и заголовочными файлами переносится в папку ./<название чипа>_stdlib и затем удаляется весь мусор.

1

2

3

4

5

$ ls -l

итого 10912

-rw-r--r-- 1 roman roman 11164420 дек 23 00:18 en.stsw-stm8069.zip

-rw-r--r-- 1 roman roman 2680 дек 24 20:29 Makefile

drwxr-xr-x 5 roman roman 4096 дек 24 20:58 STM8S003_stdlib

Готовые файлы будут в папке ./<название чипа>_stdlib. В моём случае это STM8S003_stdlib. Внутри будет бинарник библиотеки, заголовочные файлы и исходники (они не нужны, но бывает полезно в них поковыряться, поэтому оставляю их).

Готовый проект на github

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

Итого у нас всё готово для дальнейшей разработки. В следующих статьях постараюсь показать как это всё использовать.

Изучаем STM8S Медленный старт. Часть 0

МК семейства STM8S относительно STM8L/32 имеет меньший арсенал периферии, но позволяет без лишних усложнений разобраться с основами и получить необходимые навыки для работы с его старшими братьями.

0. На кого ориентирован материал, зачем и почему


При написании данной статьи, я предполагаю, что читающий умеет:
  • Внимательно читать (что редкость)
  • Немного работать с англоязычной технической литературой (ну или мотивацию научиться, т.к. первый язык программиста — английский)
  • Паять (хотя бы минимальные навыки)
  • Программировать на С (опять же, не все так сложно)
  • Гуглить (без этого никуда)
  • Пользоваться мультиметром и имеет прочие базовые навыки (по типу «не суй пальцы в розетку»)

Целями статьи считаю:
  • Обзорно пробежать все этапы разработки системы на базе микроконтроллера
  • Дать необходимые вводные для человека практически не посвященного
  • По возможности формирование у читающего понимания того, где, что и как найти
(Не существенно)Зачем и почему?

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

Мне послужит поводом изучить всю периферию более детально и попутно поможет другим.
Знаю, что уже существует огромное количество статей и даже обучающих курсов, но я имею слегка иной подход. (Возможно получу адекватную критику, изменю мнение и примкну к MX Cube ребятам).

Грустно видеть, как stm контроллеры превращают в arduino.

По поводу arduino:

Есть 3 (известных мне, мб я просто не дорос) подхода к разработке ПО на МК:

  1. Разработка на ассемблере
  2. Разработка под конкретную модель МК
  3. Разработка с использованием HAL и им подобных библиотек

1) Я сторонник такого мнения, что если ты строишь дом, то не стоит обжигать каждый кирпич из глины своими руками, потому ассемблер отпадает (хоть и начинал с этого). Слишком низкая скорость разработки.

2) Библиотеки HAL и т.п. для начинающего непрозрачна и слишком много моментов «просто пиши вот так». Потому — тоже в помойку.

3) Наиболее здоровым вариантом для начинающего считаю процесс создания ПО под конкретный МК, полученные навыки позволят разобраться и с 8L и 32 сериями (хоть это и больно делать единолично по документации).

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

Я же предлагаю, с моей точки зрения, академически и методически более осмысленный подход.


1. Выбор микроконтроллера


У меня в наличии имеется несколько STM8S105K6 в корпусе LQFP32, он из этого семейства, потому выбираю его.

Вы можете выбрать любой МК в пределах серии.

Есть готовые Discovery платы от ST, можно купить у китайцев или заказать с других ресурсов. Есть готовые платы на STM8S103F3P6 и ей подобные от китайцев.

Но, следует учесть, что готовые платы предназначены для обучения.

На сайте производителя st.com, находим свой МК и скачиваем к нему документы:

Reference manual: RM0016 — общий документ для всех МК семейств STM8S и STM8AF. Далее RM.
Datasheet: У меня DS5855 — документ к моделям STM8S105C4/6, STM8S105K4/6 и STM8S105S4/6. Далее DS.

Из вкусного у него (поверхностно):

  • Поддержка 16 МГц
  • 32 Кб Flash памяти, 1 Кб EEPROM и 2Кб RAM
  • Питание 2.95-5.5В
  • 8-и 16-битные таймеры
  • UART, SPI, I2C
  • 10-битный АЦП
  • до 38 дискретных входов/выходов

2. Необходимое оборудование


Я вижу два варианта работы с МК:
  1. Сборка макета из отдельных компонентовЗдорово, классно, мне нравится. Так делают многие люди.

    В этом случае для МК нужна будет так называемая обвязка. План простой:

    1. Берем макетную плату, в моем случае TQFP(32-64PIN)0.8MM, запаиваем на неё МК
    2. Берем двухрядную гребенку PLS-2×40 припаиваем к отверстиям, которые ведут к выводам МК
    3. Берем печатную макетную плату (у меня 9х15 см) и припаиваем на нее прошлый бутерброд
    4. Смотрим RM пункт 7. Power supply, читаем. Написано нужен конденсатор соединяющий вывод VCAP и наши 0В источника питания. Еще написано, что подробней в смотреть нужно в DS к конкретному МК в секции electical characteristics. Для меня это пункт 10.3.1 VCAP external capasitor со ссылкой на Table 18 где и указан номинал 470 — 3300 нФ. Я взял 1 мФ (на схеме C3). (для чего он нужен, надеюсь, почитаете сами в RM)
    5. Там же в DS в пункте 10.3.8. Reset pin characteristics находим номинал конденсатора 0.1мФ(на схеме C4). Резистор R4 номиналом 10 КОм используют в отладочных платах и различных application note, хотя внутри МК уже есть подтягивающий резистор номиналом от 30 до 80 КОм (если верить тому же DS). Параллельно конденсатору C4 ставим нашу кнопку сброса. Такую схему сброса можно увидеть например в Desighn note DN0005.
    6. Также, ST любят добавлять на отладочные платы конденсаторы по питанию на 100нФ, в количестве N выводов подключенных к питанию +1. На схеме нарисовано всего C1, C2 и C5 3 шт, и на плату я их не паял, но смысл вы поняли. На столе работать будет и без них, а в реальной коммерческой разработке лучше этим делом озаботиться при разведении платы устройства.
    7. Распаять SWIM разъем программирования (я делаю из PLS-1×40)

    У меня получилось такое чудо:


  2. Покупка готовой платы (что не избавляет от работы паяльником)Здорово, классно, мне нравится. Так делают многие люди.

    Стоит ознакомиться с конфигурацией платы, если это плата от ST, то она сразу с программатором и подключается USB type B кабелем. На сайте ST будет схема на странице продукта. На плате будут кнопки, светодиоды, пищалки, ёмкостные кнопки и прочие прелести с которыми можно поиграться.

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

    Шелкографии названий выводов лучше не верить и перепроверить сравнив с DS.


Работу с контактными макетными платами (breadboard) я не рассматриваю потому, что не использую.

Плюс нужен программатор, у меня китайский ST-Link V2. Умеет программировать и STM8 и STM32.

3. Выбор IDE


Для меня вопрос выбора пока не актуален, работаю в IAR для STM8, ибо в ней делали проект над которым я сейчас работаю, по той же причине старая версия.

Идем на сайт iar.com, в поиске набираем модель своего МК.
Скачиваем IAR Embedded Workbench for STM8, выбираем при установке size-limited evaluation и миримся с ограничением в 8 Кб кода. Или покупаем. Есть на запрещенных на территории РФ ресурсах взломанные версии, но для коммерческих проектов не годится.

Инструкция по установке есть в самом установщике либо в гугле.
Я использую версию 6.5.3.2581.
Устанавливаем среду, вместе с ней драйвера на программатор.

4. Создание проекта


Заходим в IDE, идем Project -> Create new project -> C++

Жмем OK, выбираем директорию (желательно не имеющую кириллицы и пробелов), выбираем имя (без пробелов и кириллицы).

Идем в корневую папку своей IDE и находим папку inc, для меня путь:

C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\stm8\inc

Находим среди заголовочных файлов iostm8 свою модель МК, для меня:

iostm8s105k6.h

Подключаем её в самом начале и добавляем бесконечный цикл.Результат:
#include<iostm8s105k6.h>  //Заголовочный файл

int main()  
{
  while(1){  //Бесконечный цикл
  }
  return 0;
}


В меню Project -> Options -> General Options в графе Device выбираем свой МК.

В Project -> Options -> Debugger в графе Driver выбираем ST-LINK.

Находим на панели инструментов кнопку Download and Debug.
При первой компиляции среда попросит выбрать имя .eww файла. (Я называю так же как и проект.)

Внизу в окне Debug Log должны быть сообщения, что:

  • Preprocessor for STM8 — запустился препроцессор
  • Debugger for STM8 — запустился отладчик
  • Connected to STM8 SWIM Debugging system — произошло подключение к МК
  • Loaded debugee — произошла загрузка прошивки
  • Target reset — произошел сброс

Мы попали в режим отладки, но выполнение программы приостановлено.
Там же на панели инструментов находим и нажимаем кнопку Go.
Мы запустили МК в режиме отладки.

Нажимаем Stop debugging, отладка прекращается, но МК питается от программатора и дальше выполняет программу, а именно крутит бесконечный цикл и делает ничего.

Итоги


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

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

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

Насколько выполнены цели судить можно будет по тому, получилось ли у начинающего что-то сделать самостоятельно, используя предложенную мной информацию. (индикатор окно Debug log)

Спасибо за внимание.

Начало работы с STM8S с использованием STVD и компилятора Cosmic C – мигает светодиод

STM8 представляет собой серию 8-битных микроконтроллеров из STMicroelectronics , которые стали обычным выбором микроконтроллеров для разработки экономичных продуктов. Я ранее работал с AVR, PIC и несколькими другими микроконтроллерами ARM Cortex, но, конечно же, в некоторых приложениях они становятся излишними и значительно увеличивают стоимость спецификации. Недавно, разобрав несколько дешевых китайских продуктов, я обнаружил, что в большинстве из них находится микроконтроллер STM8 внутри.Микросхема не только дешевая, но и снабжена множеством функций и опций, что делает ее пригодной для использования во многих различных приложениях. Например, серия контроллеров STM8S (которые мы изучим в этой серии руководств) является контроллером общего назначения, но есть и другие серии, такие как STM8A для автомобильных конструкций и STM8L для конструкций с маломощным аккумуляторным питанием. что расширяет область применения этих контроллеров.

В этой серии руководств мы узнаем, как программировать микроконтроллеры STM8S , в частности STM8S103F3P6 .Причина для начала работы с этим конкретным номером детали – это просто соотношение цены и производительности. Нравиться!! просто посмотрите на это всего за 0,25 доллара (около 20 рупий) мы получаем 8-битный микроконтроллер с внутренним генератором 16 МГц, 8 КБ флэш-памяти, 10-битный АЦП, UART, SPI и I2C. Кто бы не был заинтригован? Кроме того, STM8S103F3P6 широко популярен, и, следовательно, как новичок, вы найдете достаточно поддержки, если вам понадобится помощь вне руководств. Начиная с этого, у нас будет последовательность учебных пособий, аналогичных учебным пособиям по программированию PIC, где мы узнаем, как программировать этот контроллер от простого мигания до различных интерфейсов дисплея и датчиков.Вы также можете ознакомиться с учебником и проектами STM32F103C8, если вас интересуют 32-разрядные микроконтроллеры STM.

Выбор средств разработки оборудования и программного обеспечения

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

STM8S103F3P6 Разработка

Официальная плата для разработки для 8-битного микроконтроллера ST называется STM8 Discovery kit, но мы будем использовать другую недорогую плату для разработки, которую вы легко найдете у местного поставщика или в интернет-магазине.Изображение платы разработки STM8S103F3P6 , которую мы будем использовать в этом руководстве, показано ниже.

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

При внимательном рассмотрении вы заметите, что помимо контроллера STM8S103F3p6, у нас есть кнопка сброса для сброса контроллера.Светодиод питания и тестовый светодиод подключены к PB5 (порт B, контакт 5) и регулятору напряжения AMS1117, который преобразует 5 В из порта USB в 3,3 В для контроллера. При необходимости контроллер также может быть настроен на работу от 5 В. Различные части контроллера отмечены ниже. У нас также есть 4 вывода программатора, а именно 3.3V, GND, SWIM и NRST, которые можно использовать для простого программирования и отладки нашего микроконтроллера.

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

Для программирования нашего контроллера мы будем использовать ST-LINK v2 , который дешев и легко доступен в Интернете.Существует множество вариантов (металл, пластик, золото, розовый, голая плата) этой платы ST-LINK v2, и все они служат одной цели. Мой показан ниже, но вы можете использовать любой тип программатора ST-LINK , распиновка будет отличаться, поэтому просто убедитесь, что вы правильно прочитали распиновку на корпусе. Существует также ST-LINK V3 от самой ST-Microelectronics, который можно использовать для серьезной отладки. Мы не будем использовать это сейчас, так как это немного дорого, мы сохраним его на будущее.

STM8S103F3P6 IDE и компилятор

Выбор подходящей среды разработки и компилятора для STM8S103F3P6 вызывает недоумение просто потому, что существует множество вариантов выбора.Официальные инструменты, доступные для микроконтроллера STM8, показаны на изображении ниже.

Что касается конфигурации, у нас есть STM8CubeMx , я попробовал программное обеспечение, и оно меня полностью разочаровало. В отличие от STM32Cube, STM8Cube не может автоматически генерировать код. Он может генерировать отображение контактов только для целей визуализации и может пригодиться, если вы переносите свой код с одного контроллера на другой. В остальном я бы не стал его использовать.Поэтому в этой серии руководств мы не будем использовать это.

Для IDE и компилятора у нас есть много вариантов на выбор. Два верхних варианта для IDE – это IAR workbench и ST Visual Develop (STVD), оба программного обеспечения выглядят так, как будто они из 90-х, но после некоторого времени, поиграв с ним, я обнаружил, что STVD – хороший выбор только потому, что он совершенно бесплатно. Точно так же для компилятора мы будем использовать Cosmic C Compiler , опять же только потому, что он полностью бесплатен.Еще одна причина выбора этой IDE и компилятора заключается в том, что, как только мы познакомимся со средой, будет легко использовать любой другой 8-битный микроконтроллер от ST без особых усилий. Мы узнаем, как установить и настроить STVD с компилятором Cosmic C позже в этой статье.

Для перепрошивки мы будем использовать ST Visual Programmer (STVP) , этот инструмент будет автоматически установлен при установке STVD. Он будет интегрирован в саму среду IDE, что поможет нам быстро программировать и отлаживать.Окончательное программное обеспечение будет STMStudio , которое представляет собой программное обеспечение для мониторинга STM8. Программное обеспечение может помочь с отладкой STM8 в реальном времени и имеет некоторые интересные функции, такие как мониторинг значения переменной, построение графика и т. Д. Я недостаточно экспериментировал с этим программным обеспечением. И, по крайней мере, для первых нескольких руководств мы не будем использовать это программное обеспечение, поскольку нам не потребуются большие требования к отладке.

Стандартная периферийная библиотека STM8S: ST Microelectronics предоставляет набор библиотек для упрощения разработки кода для микроконтроллеров STM8S, эта библиотека называется «Стандартная периферийная библиотека » или сокращенно SPL.Библиотека классная, за исключением того, что она написана с учетом всех возможных контроллеров в 8-битном семействе STM8S / A, а не только контроллера STM8S103F3P6, который мы будем использовать. Следовательно, мы должны внести некоторые изменения здесь и там, чтобы заставить его работать (о чем я расскажу позже). Но все же я считаю, что стоит попробовать, потому что он может сделать разработку очень быстрой, и, следовательно, мы будем использовать его в нашем руководстве.

Если вы не хотите использовать библиотеку, вам необходимо получить прямой доступ к регистрам контроллера или выполнить программирование сборки на «голом железе».И то, и другое доставляет удовольствие, если у вас есть время изучить и использовать их. Моя идея состоит в том, чтобы использовать библиотеку SPL везде, где она хорошо работает, а затем также работать на уровне регистров и сборки, если это необходимо. Попробуем не изобретать колесо заново!

STM8S с Arduino с использованием Sduino

Обсуждение параметров программного обеспечения никогда не будет полным, если я не упомяну, что Arduino IDE поддерживает STM8S. Да, та же самая плата STM8S103F3P6 может быть запрограммирована прямо из Arduino IDE с помощью Sduino, спасибо Майклу Майеру.Но проект все еще находится в стадии разработки и, вероятно, потребуется некоторое время и поддержка сообщества для Sduino, чтобы обеспечить полную поддержку платформы. Однако всего через несколько минут после игры со Sduino он мне начал нравиться, и поэтому я решил также написать отдельную статью о том, как программировать микроконтроллер STM8S с Arduino. Я свяжу статью здесь, когда она будет готова. В этой статье будет обсуждаться, почему и почему вам не следует использовать IDE Arduino для программирования микроконтроллеров STM8S.

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

Загрузка необходимого программного обеспечения

Теперь, когда мы определились с программным обеспечением, которое мы будем использовать в этом руководстве, давайте загрузим их, используя следующую ссылку. Все программное обеспечение можно загрузить и использовать бесплатно, вам просто нужно зарегистрировать бесплатную учетную запись на ST и Cosmic, если вы еще этого не сделали.

Настройка STVD и компилятора Cosmic C

После того, как вы загрузили оба программного обеспечения, просто следуйте инструкциям на экране, чтобы установить их.Я бы рекомендовал оставить их в каталогах по умолчанию, чтобы избежать путаницы в дальнейшем. STVD IDE установится без каких-либо усилий. Для компилятора Cosmic C вы должны получить бесплатный лицензионный ключ в процессе установки. Вам просто нужно предоставить информацию о компании с идентификатором электронной почты, если вы студент, просто укажите это. Процесс получения лицензионного ключа происходит мгновенно и автоматически, хотя в инструкциях по установке сказано, что это может занять день или два, я получил лицензионный ключ автоматически на свой идентификатор электронной почты, как только отправил его, просто убедитесь, что вы проверьте СПАМ.Мой адрес электронной почты с подтверждением показан ниже.

Согласно инструкции по электронной почте, просто скопируйте файл license.lic и вставьте его в подпапку «лицензия» в папке установки. Для меня путь был «C: \ Program Files (x86) \ COSMIC \ FSE_Compilers \ CXSTM8 \ License» . Просто вставьте файл в место, как показано ниже.

Стандартная периферийная библиотека для STM8S103F3P6

Как было сказано ранее, ST Microelectronics предоставляет библиотеки под названием SPL, которые можно использовать для всех 8-битных микроконтроллеров STM8S / A.Вы можете либо загрузить исходный SPL из ST Microelectronics и внести необходимые изменения, либо загрузить мои библиотеки SPL STM8S103F3P6 и использовать их как таковые. Я бы порекомендовал позже.

Оригинальный SPL от ST Microelectronics

STM8S103F3P6 SPL

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

Компиляция первой программы

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

Начните с открытия STVD и выберите «Файл» -> «WorkSpace», во всплывающем окне выберите «Новое рабочее пространство» и введите имя проекта и путь, в котором должна быть сохранена программа. Я называю свою программу BareMinimum и сохраняю ее в папке на рабочем столе. Нажмите OK, и вы получите диалоговое окно New Project, как показано ниже.

Я снова называю проект bareminimum, и в цепочке инструментов мы должны указать корень цепочки инструментов для пути, по которому установлен компилятор STM8 Cosmic.Адрес пути по умолчанию: «C: \ Program Files (x86) \ COSMIC \ FSE_Compilers \ CXSTM8» . После этого просто нажмите OK, чтобы открыть окно «Выбор MCU».

Найдите STM8S103F3P, выберите его и нажмите OK. Это откроет новый проект для STM8S103F3P на STVD, окна должны выглядеть так, когда закончите.

Щелкните правой кнопкой мыши «исходный файл» и выберите «Добавить файлы в папку», чтобы включить все файлы c из нашей библиотеки SPL, аналогичным образом щелкните правой кнопкой мыши «Включить файлы», чтобы включить все файлы заголовков.Если у вас есть какие-либо вопросы, вы можете обратиться к видео ниже. После добавления всех файлов нажмите Build -> rebuil d all, а затем Compile, чтобы проверить, работают ли компилятор и SPL должным образом. Если все пойдет хорошо, вы должны увидеть следующий экран с ошибкой 0 результата сборки и предупреждением 0.

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

Загрузка кода из STVD в плату разработки STM8S с использованием ST-Link V2

Подключите ST-Link V2 к макетной плате, как показано ниже.

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

Установите соединение и подключите устройство к компьютеру, установка драйвера должна начаться автоматически. Вы можете использовать диспетчер устройств, чтобы убедиться, что ваш компьютер правильно обнаружил ST-LINK V2. Вы также заметите, что индикатор проверки на плате мигает, если это первый раз, когда плата включается. Как только мы успешно скомпилируем код на STVD, мы получим файл расширения «S19» в каталоге отладки папки проекта.Мой файл S19 показан ниже.

Этот S19 подобен шестнадцатеричному файлу, который должен быть загружен в контроллер. Чтобы загрузить программу, откройте ST Visual Programmer (STVP), который должен быть установлен вместе с STVD. Затем в окне конфигурации выберите, как показано на изображении ниже, и нажмите OK.

Затем нажмите File-> Open и перейдите к файлу S19, который мы показали ранее. Затем, чтобы прошить устройство, выполните Program -> Current Tab.Если перепрошивка прошла успешно, вы должны увидеть следующий результат.

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

Важно : Я обнаружил, что мой ST-Link не сбрасывает плату автоматически после программирования. Мне пришлось отключить и снова подключить его, чтобы проверить вывод моей программы. Я не уверен, что это проблема для всех, дайте мне знать в разделе комментариев.Также посмотрите видео внизу, в котором объясняется решение этой проблемы.

На этом давайте закончим этот учебник, мы изучили основы аппаратного обеспечения, настроили среду разработки и узнали, как компилировать и загружать код. Теперь мы готовы к прогрессу и будем использовать это во всех наших будущих уроках. Если у вас есть какие-либо вопросы, задавайте их на нашем форуме и следите за новостями !!

STM8S RLink Standard – Raisonance

*** Прямая замена STX-RLink ***
Программатор и отладчик для 8-битных (STM8, ST7) и 32-битных микроконтроллеров ARM.Применяются ограничения на размер кода компилятора / отладчика.

RLink Standard обеспечивает неограниченное программирование полного диапазона микроконтроллеров от 8-битного до 32-битного семейств и отладку приложений в реальном времени, пока они работают на целевом устройстве.

RLink включает в себя лицензии на наборы программных инструментов RKit-ARM (Lite) и RKit-STM8 (Basic), которые включают поддержку устройств, набор инструментов C и позволяют выполнять отладку и функции программирования Ride7 и RFlasher.

RLink подключается к микроконтроллерам, установленным на прикладной или оценочной плате, через ряд протоколов связи, включая:

  • 20-контактный JTAG для устройств на базе ядра ARM
  • SWD-соединение для устройств ARM Cortex-M3
  • SWIM от STMicroelectronics для STM8
  • Внутрисхемная связь STMicroelectronics для ST7 *

RLink предлагает неограниченное программирование всех поддерживаемых 8-битных и 32-битных устройств с помощью бесплатного программного обеспечения для программирования RFlasher7 или интегрированной среды разработки Ride7.

RLink обеспечивает неограниченную отладку приложений на поддерживаемых 8-битных устройствах в интегрированной среде разработки Ride7. Программирование поддерживаемых 32-разрядных устройств на базе ядра ARM не ограничено, а отладка ограничена:

  • Отладка кода приложения размером 64 КБ, если размер флэш-памяти микроконтроллера превышает 64 КБ
  • Отладка равна 1/2 размера флэш-памяти, если флэш-память микроконтроллера составляет 64 КБ или меньше

STX-RLINK

STX-RLINK – это номер детали STMicroelectronics для Raisonance RLink-STD или «Стандарт».Эти два продукта идентичны технически, поддерживают один и тот же набор микроконтроллеров и одинаковые рабочие характеристики с использованием одних и тех же программных пакетов.

Более десяти лет Raisonance предоставлял RLink компании STMicroelectronics для перепродажи как STX-RLINK. С тех пор ST прекратила эту перепродажу, но мы продолжаем поддерживать и продавать RLink для поддержки пользователей микроконтроллеров STM32 и STM8. Кроме того, RLink также поддерживает устаревшие микроконтроллеры, которые не поддерживаются другими программаторами / отладчиками, такими как семейства устройств ST7 *, STR7 и STR9.

———-

* Примечание: варианты ST72C не поддерживаются.

Cosmic Software – продукты STM8 и STLUX

Инструменты кросс-разработки Cosmic STM8

Набор инструментов Cosmic для семейства STM8 является частью полного и единообразного линейка продуктов, включающая более 20 лет инновационного дизайна и развития. Для всех продуктов Cosmic предусмотрена годовая техническая поддержка и обновления.

Интегрированная среда разработки

Все кросс-компиляторы Cosmic C для Windows включают IDEA – собственную интегрированную среду разработки Cosmic, которая предварительно сконфигурирована для процессоров семейства STM8. IDEA разработана специально для разработки встраиваемых приложений с помощью компиляторов Cosmic. IDEA объединяет редактор, менеджер проекта, графическое интеллектуальное средство сборки / создания, анализатор программ, генератор файлов ссылок, менеджер документации и отладчик ZAP в одной простой в использовании среде, работающей под Windows.

Щелкните здесь, чтобы получить дополнительную информацию об IDEA.

Интеграция IDE сторонних производителей

CXSTM8 также полностью интегрирован в IDE STVD7 и отладчик ST.

Компилятор

Пакет компилятора C включает: интегрированную среду разработки с оптимизирующим кросс-компилятором ANSI-C, сборщик макросов, компоновщик, библиотекарь, генератор шестнадцатеричных файлов, преобразователи объектных форматов, утилиты поддержки отладки, исходный код библиотеки времени выполнения и командный драйвер многопроходного компилятора.Компилятор также поддерживает ненавязчивую отладку на уровне исходного кода C с помощью отладчиков ZAP от Cosmic.
Щелкните здесь, чтобы получить общую информацию о Cosmic Compilers.
STM8 Особенности:

  • Ядра STM8 и STLUX
    Компилятор Cosmic STM8 генерирует высокоэффективный код для семейств микроконтроллеров STM8 и STLUX, включая STM8AF, STM8AL, STM8L, STM8S и Серия STM8T.
  • Компилятор ANSI и ISO C
    Компилятор Cosmic STM8 следует правилам и соглашениям ANSI и ISO.Весь код и библиотеки оптимизированы специально для ядра процессора STM8. Поддерживаются все производные и подсемейства STM8. Включая STM8AF, STM8AL, STM8L, STM8S и STM8T
  • Реентерабельность и рекурсивность
    Во всех моделях программирования весь код является полностью реентерабельным и рекурсивным с использованием стандартных соглашений о кадрах стека ANSI.
  • Модели памяти
    CXSTM8 поддерживает 4 варианта модели программирования для точной настройки оптимизации кода в соответствии с требованиями вашего приложения и памяти.
  • C Поддержка нулевой страницы
    Расширения исходного кода компилятора обеспечивают эффективное использование режима короткой адресации STM8 и однобайтовых указателей.
  • BIT-переменные
    В дополнение к стандартным битовым полям ANSI C, CXSTM8 поддерживает однобитовые переменные с использованием ключевого слова _Bool, обеспечивая простой и эффективный механизм битовой упаковки для флагов истина / ложь.
  • Встроенная сборка
    Компилятор предоставляет три удобных метода добавления ассемблерного кода в программу C.Включает механизм передачи аргументов.
  • Абсолютные листинги
    По желанию можно создать перемещаемый и / или абсолютный C, перемежающийся с соответствующими листингами сборки.
  • IEEE-754 с плавающей запятой
    Поддерживает одиночные форматы с плавающей запятой IEEE с полными библиотеками ANSI (включая исходный код).
  • Функция подвижного кода
    Функция подвижного кода предназначена для упрощения создания и сопровождения кода на основе ОЗУ, такого как загрузчики и программисты.Компоновщик автоматически создает сегмент в ПЗУ для хранения подвижного кода. Затем во время выполнения используйте предоставленную библиотечную функцию, чтобы переместить и скопировать перемещаемый код в ОЗУ для выполнения.
  • Функция контрольной суммы
    Простая в использовании функция контрольной суммы и библиотека (включая исходный код) позволяют пользователям быстро вводить эффективную контрольную сумму для любого или всех разделов. Компоновщик прозрачно управляет расчетом контрольной суммы и вставкой.
  • Mixed C и Assembly
    Инструменты Cosmic поддерживают смешанные приложения C и Assembly.Включая поддержку ассемблера для C #defines и #includes, поэтому модули языка C и ассемблера могут использовать общие константы и макросы.
  • Независимые от хоста форматы
    Перемещаемые и абсолютные форматы объектов Cosmic не зависят от хоста. Это позволяет пользователю на ПК, SUN и HP обмениваться объектами для связывания и отладки.
  • Поддержка отладки IEEE-695 и ELF / DWARF
    Комплект компилятора Cosmic поддерживает стандартные форматы отладки IEEE и ELF DWARF, используемые многими популярными эмуляторами и логическими анализаторами.
  • Совместимость внутрисхемного эмулятора
    CXSTM8 совместим со всеми существующими эмуляторами.
  • Гибкий интерфейс компилятора
    Компиляторы Cosmic разработаны, чтобы быть мощными и гибкими, поэтому их можно использовать практически в любой среде. Используйте собственный интерфейс IDEA Cosmic или свой любимый редактор, утилиту make и / или систему управления исходным кодом – это ваш выбор !!
  • CMX-TINY +
    CMX-TINY + Многозадачная операционная система реального времени доступна для CXSTM8.(подробнее)
  • Segger embOS
    Операционная система реального времени Segger embOS скоро будет доступна для CXSTM8 (подробнее).
  • Совместимость с MISRA Checker
    IDEA STM8 и CXSTM8 легко интегрируются с программой Cosmic MISRA checker, чтобы помочь в создании хорошо структурированного и переносимого кода языка C с использованием рекомендаций, предписанных Ассоциацией надежности программного обеспечения автомобильной промышленности.
    См. Cosmic MISRA Checker для получения дополнительной информации.

ZAP Debugger

ZAP – это полнофункциональный отладчик исходного уровня, доступный для Windows.Интуитивно понятный графический интерфейс ZAP единообразен для всех целей и сред выполнения. ZAP доступен в версиях моделирования и ST-LINK SWIM для STM8.

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

ZAP Debugge для интерфейса ST-LINK / V2 SWIM

  • Программирование FLASH
  • Отладка и контроль выполнения в реальном времени
  • Аппаратные точки останова
  • Одношаговый
  • Автоматическая отладка скриптами
  • USB 2.0

ST STM8 – последняя документация PlatformIO

Конфигурация

платформа = ststm8

STM8 – это семейство 8-битных микроконтроллеров от STMicroelectronics, расширенный вариант архитектуры микроконтроллеров ST7. Микроконтроллеры STM8 особенно дешевы для полнофункционального 8-битного микроконтроллера.

Для получения более подробной информации посетите сайт производителя.

Отладка – решение «в один клик» для отладки с нулевой конфигурацией.

Вы можете переключаться между стабильными выпусками платформы разработки ST STM8 и последней апстрим-версии с использованием платформу в «platformio.ini» (файл конфигурации проекта), как описано ниже.

Конюшня

; Последняя стабильная версия
[env: latest_stable]
платформа = ststm8
доска = ...

; Кастомная стабильная версия
[env: custom_stable]
платформа = [email protected]
доска = ...
 

Восходящий поток

 [env: upstream_develop]
платформа = https: // github.com / platformio / platform-ststm8.git
доска = ...
 

Имя

Описание

framework-arduinostm8

API-интерфейс программирования, подобный Arduino, для микроконтроллеров STM8

framework-ststm8spl

Стандартная периферийная библиотека для микроконтроллеров ST STM8S / A

инструмент openocd

Открыть встроенный отладчик.Бесплатная и открытая отладка на кристалле, внутрисистемное программирование и тестирование границ

инструмент-stm8binutils

Набор инструментов STM8 с отладчиком GDB

инструмент-stm8flash

stm8flash – это приложение для программирования устройств stm8 с помощью SWIM / stlinkv (1,2).

инструмент-stm8gal

stm8gal – приложение для программирования или чтения памяти STM8 с использованием встроенного загрузчика ПЗУ (BSL) через интерфейс UART или SPI

набор инструментов SDCC

Компилятор C для малых устройств

Предупреждение

Пользователи Linux :

Пользователи Windows:

Убедитесь, что у вас правильно установлен драйвер USB с платы производитель

Имя

Описание

Ардуино

Arduino Wiring-based Framework позволяет писать кроссплатформенное программное обеспечение для управления устройствами, подключенными к широкому спектру плат Arduino, для создания всех видов творческого кодирования, интерактивных объектов, пространств или физического опыта

Стандартная периферийная библиотека

Стандартная периферийная библиотека ST предоставляет набор функций для работы с периферией микроконтроллеров семейства STM32.

Кабели для программирования / отладки

ST STM8 | Tag-Connect

Ниже приведен список кабельных решений Tag-Connect ™ для отладки / программирования небольших размеров для микроконтроллеров STM8. Решения могут быть доступны для разъемов целевой платы разного размера, разных протоколов отладки / программирования или разных отладчиков. Также доступны решения для разъемов целевой платы plug-of-nails ™ с «ножками» или «без ножек». Используйте ссылки отладчика, чтобы просмотреть дополнительную информацию об этих параметрах, применимых к конкретным отладчикам.

Доступные решения:

Решения SWIM с 6-контактным целевым разъемом

STLINK-V с использованием SWIM
ST-LINK / V2 для ST STM8 с использованием SWIM

SWIM с 6-контактным разъемом Plug-of-Nails ™ – без ножек
Ответный разъем отладчика: 4-контактный SWIM / Molex 0,1 “

Этот кабель отладки представляет собой TC2030-MCP-NL, модифицированный для оснащения 4-контактным разъемом, который подключается к разъему SWIM на ST-LINK / V2 для микроконтроллеров STM8. Это версия разъема TC2030 Plug-of-Nails ™ без ножек.
TC2030 Штифт SWIM Сигнал
1 VDD
2 ДАННЫЕ
3 СБРОС
4 н / д
5 ЗЕМЛЯ
6 н / д
1 x TC2030-SWIM-NL

Этот продукт предназначен для временной фиксации кабеля TC2030 -NL («без ножек») на печатной плате.Это решение поможет, когда место на плате ограничено, и вам нужно решение для отладки без помощи рук. Поставляется в упаковке по 3 штуки. Мы рекомендуем оставить несколько запасных, так как крошечные доски легко потерять во время работы на скамейке. Для более надежного решения рассмотрите возможность использования кабеля на ножках TC2030.

1 x TC2030-CLIP-3PACK Удерживающая плата CLIP для кабелей TC2030-NL – 3 шт. В упаковке
Цена: $ 77,95 Кол-во: Купить
Решения отладчика и инструкции по установке

Введение в микроконтроллеры: руководство для начинающих по STM8

8-битные микроконтроллеры серии STM8 производятся компанией ST.Стоимость микроконтроллеров STM8 резко снизилась благодаря ST, и их легко найти на таких сайтах, как Ebay и Ali Express. Они довольно эффективны, но, к сожалению, в Интернете очень мало ресурсов, которые помогут кому-либо начать работу. Поделюсь информацией, которую я собрал за время работы с этими устройствами.

Макетная плата

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


На картинке ниже показана отладочная плата, которую можно легко приобрести в Интернете. плата называется STM8 Discovery. Если вы только начинаете работать с STM8 и хотите много чего делать, включая тестирование всех возможностей микроконтроллера, выбирайте эту плату.Он также удобен тем, что содержит встроенный программатор. Все, что вам нужно сделать, это подключить USB-кабель от вашего коннектора к плате, и вы готовы к работе. Более сложные версии плат STM8 также производятся ST, такие как STM8 / 128 EVAL , по гораздо более высокой цене. Единственная особенность этой платы заключается в том, что некоторые конфигурации создаются с помощью паяльной перемычки, и вам потребуется пайка, чтобы сделать или отменить их. Будьте осторожны, если решитесь на это, поскольку паяные перемычки имеют размеры SMD, 0402, если я прав.

Другой вариант платы для разработки – создать свою собственную. на рисунке ниже показан один из возможных способов сделать это. STM8 сидит на зеленом адаптере LQFP48. Эти платы доступны в Интернете партиями по 5 и более штук. Чтобы построить такую ​​доску, вам нужно взглянуть на таблицу, чтобы найти выход. Пайка STM8 не такая сложная, просто убедитесь, что вы уже практиковались в пайке SMD раньше, и у вас есть подходящее оборудование под рукой. Профессиональными паяльниками я здесь не пользовался, но все мое паяльное оборудование пришло с Ebay и Ali Express.Если у вас есть доступ к более качественному оборудованию, вам будет проще паять.

Программист

Чтобы написать код в STM8, вам понадобится программист. Ниже показан программатор ST-Link V1, который я купил много лет назад и использую до сих пор. Вы можете легко найти этих программистов практически в любом месте в Интернете.

Программистов-клонов также очень легко найти в Интернете, как показано ниже. Это клон STLink V2, и он работает довольно хорошо.

Программное обеспечение

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

Стандартная периферийная библиотека STM8

Стандартная периферийная библиотека STM8 – это пакет, который находится в свободном доступе от ST. Пакет упростит доступ к сложной структуре внутренних компонентов STM8. Чтобы иметь возможность загрузить пакет, вам необходимо создать бесплатную учетную запись в ST.

Стандартная периферийная библиотека STM8 поставляется в виде zip-файла. После загрузки извлеките содержимое, и у вас должна быть папка, подобная той, что ниже

.

Наиболее важные файлы находятся в папке Libraries внутри папок inc и src .

Настройка простого в использовании шаблона папки

Если вы читали мой предыдущий пост в руководстве для начинающих по STM32, вы должны распознать структуру foldr ниже.Каждый из синих прямоугольников представляет собой папку. Папки I nc и Src ниже скопированы из стандартных периферийных библиотек STM8, упомянутых выше. Каждый раз, когда я работаю над новым проектом, я копирую и вставляю приведенную ниже структуру папок. Я переименовываю папку Template в соответствии с тем, над чем я работаю.

STM8 Cosmic

Первое, что вам потребуется – это STM8 Cosmic, компилятор, предоставляемый Cosmic Software. Зайдите на их веб-сайт и зарегистрируйтесь.STM8 cosmic предоставляется бесплатно, но с ежегодной лицензией на бесплатное продление. После регистрации загрузите и установите программное обеспечение.

ПРИМЕЧАНИЕ: После установки STM8 Cosmic вам нужно будет зарегистрировать компилятор и дождаться получения ключа активации от программного обеспечения Comic по почте. Вам нужно будет повторять этот процесс один раз в год в тот же день, когда вы установили свой STM8 Cosmic.

ST Visual Develop

Чтобы написать код для STM8, вам понадобится IDE.ST бесплатно предоставляет IDE под названием ST Visual Develop. Сначала вам нужно будет зарегистрироваться и аккаунт в ST. Затем найдите ST Visual Develop на их веб-сайте. После принятия лицензионного соглашения на программное обеспечение просто нажмите Получить программное обеспечение , чтобы загрузить IDE. После завершения загрузки установите программное обеспечение.



Написание кода для STM8

Следующим шагом после разработки ST Visual и STM8 Cosmic является написание кода для STM8.

Создание нового рабочего пространства

Первое, что вам нужно сделать, чтобы написать код, – это создать рабочую область. Запустите ST Visual Develop и в меню File щелкните New Workspace …

Появится мастер, который проведет вас через шаги по созданию рабочего пространства. Сначала вам нужно будет выбрать целевой STM8, в моем случае я буду работать с STM8S105C6. После выбора нажмите Выберите и нажмите ОК.

Затем дайте имя рабочей области и выберите место для сохранения рабочего места.

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

Часть Toolchain очень важна, она связывает компилятор с разработкой ST Visual. Поскольку мы выбрали STM8 Cosmic, выбор очевиден, и корень Toolchain – это место, где установлен компилятор.

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

Чтобы отразить структуру папок, которая использовалась до создания папок. Чтобы создать папку , щелкните правой кнопкой мыши в проекте и выберите Новая папка …

Чтобы добавить файлы в папку , щелкните правой кнопкой мыши в папке и выберите Добавить файлы в проект

Дайте папке имя и нажмите OK


Создайте структуру папок, показанную ниже, и добавьте файлы, как показано.

Далее нам нужно будет изменить некоторые конфигурации. Нажмите Project , затем Settings

Появится экран, показанный ниже. На вкладке General установите флажок рядом с Путь к определенной группе инструментов проекта


Затем щелкните вкладку Compiler , измените раздел Optimizations по мере необходимости. Параметр по умолчанию – Отключить отладку (-no) , который можно использовать для настройки кода.Когда вы будете готовы развернуть завершенный код, выберите Максимальная скорость выполнения или Минимальный размер кода (+ компактный) или Настроить. Небольшой совет: всегда перепроверяйте все свои функции для любого из выбранных вами параметров. Я обнаружил, что меняю параметры при определенных обстоятельствах из-за неустойчивого поведения кода.



Затем перейдите на вкладку «Ассемблер ». Установите определения препроцессора , а также параметры , определяемые пользователем , как показано ниже.Нажмите OK , чтобы продолжить.

Затем перейдите в папку Inc и откройте папку stm8s.h . Вам нужно будет раскомментировать строку, которая соответствует вашему микроконтроллеру, в моем текущем случае я использую STM8S105

Осталось сделать еще два шага, пока мы не закончим настройку. Перейдите к STM8_interrupt_vector.c и добавьте следующую строку внутри #include “stm8s.h”.
Строки с 14 по 18 также необходимо прокомментировать, как показано ниже.



Затем перейдите в файл main.c и добавьте следующую строку, показанную ниже. Вы можете исключить комментарии.

Как только вы закончите, сохраните все и в своем меню найдите значок Compile , показанный ниже. Щелкните значок, чтобы скомпилировать код. В случае появления каких-либо ошибок их необходимо исправить.

Затем найдите значок Build и щелкните по нему. Весь ваш код будет готов к передаче на ваш микроконтроллер.

Первым шагом в передаче кода в STM8 является подключение программатора и платы, если это необходимо. Затем нажмите Tools-> Programmer

Следующим появится экран, показанный ниже.

Перейдите на вкладку Области памяти . Ниже Область памяти: выберите Память программ.

Нажмите кнопку Добавить , перейдите в папку отладки вашего проекта и выберите файл .S19 файл.

Удалите все файлы, в которых указано, что файл не найден , и нажмите Ok

Затем, если вы хотите изменить конкретный порт Альтернативная функция , щелкните вкладку OPTION BYTE . Щелкните правой кнопкой мыши порт и выберите, какую функцию активировать. Нажмите ok , чтобы закончить


Последний шаг – перейти на вкладку Program и щелкнуть Start
Если все в порядке, код должен быть успешно запрограммирован в микроконтроллер.

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

ST-LINK V2 JTAG USB-программирование Инструменты загрузки эмулятора отладки STM8 / STM32

ST-Link / V2 STM8 STM32 Отладочный эмулятор Загрузить модуль программирования

Основные свойства:
· ST-LINK / V2 – это серия микроконтроллеров семейства STMicroelectronics для оценки и разработки STM8 и STM32, предназначенная для установки онлайн-загрузки для интеграции инструментов моделирования и разработки.
· Семейство STM8 через интерфейс SWIM с подключением ST-LINK / V2;
Семейство STM32 через интерфейс JTAG / SWD с подключениями ST-LINK / V2.
· ST-LINK / V2 и ПК через высокоскоростное соединение USB2.0.
Поддерживаемое программное обеспечение:
· Прямая поддержка ST официальной IDE (интегрированной среды разработки программного обеспечения) ST Visual Develop (STVD) и программного обеспечения для записи ST Visual Program (STVP).
· Поддержка интегрированной среды разработки ATOLLIC, IAR и Keil, TASKING, такой как STM32.
Поддерживаемые устройства:
· Поддерживает все интерфейсы с SWIM STM8 MCU
· Поддерживает все с интерфейсом JTAG / SWD STM32 MCU
Список пакетов:
1 основной блок ST-Link / V2
1 x USB-кабель для передачи данных
1 x 20-контактный кабель
2 x SWIM-кабель

Платеж

Принимайте оплату через PayPal, WesternUnion, AliPay, MonetyGram, Sigue, Ria, банковский перевод и кредитную карту

Отгрузка

1.Зарегистрированная авиапочта: если вы выберете этот вариант, ваш товар будет отправлен авиапочтой Сингапура.

Срок доставки от 15 до 45 дней в разных странах. Для получения более подробной информации посетите:

http://track.4px.com/?locale=en_US

2. DHL: если вы выберете этот вариант, ваш товар будет отправлен DHL Express.

Срок доставки 3-7 дней. Прежде чем выбрать этот вариант, убедитесь, что ваше местоположение находится в списке удаленных зон DHL.

Вы можете посетить: http://www.dhl.com/

3. EMS: если вы выберете этот вариант, ваш товар будет отправлен EMS Express.

Срок доставки варьируется от 5-20 дней в разные страны.

Для получения дополнительной информации посетите: http://ems.com.cn/english.html.

4. Время доставки может быть отложено в напряженные сезоны. Для получения более подробной информации свяжитесь с нами.

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