Stm8 программирование: STM8 — программирование, прошивка и всё-всё-всё

Содержание

Изучаем 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)

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

первые шаги в среде 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]

 

 

•••

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

Микроконтроллеры 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

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. Урок 6. STVD + CXSTM8. Основы работы с АЦП. Теория

Аналого-цифровой преобразователь STM8 способен перевести аналоговое значение в цифровое с точностью в 10 бит, или с погрешностью в 0,097%. При максимальном уровне сигнала 3.3V, шаг дискретизации будет 3,2 мВ (соответственно, напряжение на входе можно определить с точностью до 3,2 мВ).

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

Все основные настройки, а так же управление ADC выполняются с помощью 4 регистров:

Как видите, по-умолчанию значения всех битов равны 0. Эти значения так же будут сброшены в 0 после аппаратного RESET’а.

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

Если ADC долго не используется, то его рекомендуется отключать сбросом бита ADON для экономии энергии.

Важно! Когда ADC включен битом ADON, то цифровой ввод/вывод не будет работать на выбранном канале (CH[3:0]), вне зависимости от конфигурации GPIO.

Важно! Рекомендуется выбирать аналоговый канал ПОСЛЕ установки бита ADON.

Важно! Все несуществующие (не выведенные из микросхемы) каналы подтянуты к Vdd и их значение будет читаться как 1023.

При проектировании электроники на микроконтроллерах STM8 следует учесть, что максимальная рекомендуемая частота работы АЦП составляет 4 МГц. То есть при частоте основного тактового генератора (FMASTER) в 16 МГц, делитель частоты ADC (FADC) должен быть как минимум /4. Максимально возможный коэффициент деления /18. Делитель настраивается битами SPSEL[2:0] в регистре ADC_CR1.

Существует пять режимов преобразования:

Одиночный режим

ADC делает одну выборку на выбранном канале и сохраняет результат в регистры ADC_DRH и ADC_DRL. По окончании выставится флаг EOC и возникнет прерывание (если EOCIE включена).

Непрерывный режим

ADC автоматически приступает к следующему преобразованию. Результат помещается в регистры ADC_DRx. Остановить серию преобразований можно сбросом бита CONT. После каждой конверсии выставится флаг EOC и возникнет прерывание (если EOCIE включена).

Непрерывный буферизированный режим

ADC выполняет серию преобразований как в непрерывном режиме, но результат помещается в буферные регистры ADC1_DB (их 10 штук). После того как все регистры будут заполнены, выставится флаг EOC и возникнет прерывание (если EOCIE включена). Новая конверсия запускается автоматически. Если какой-то регистр буфера перезапишется ДО того как будет считан, то выставится флаг OVR. Это не остановит серию, но даст понять, что данные потеряны.

Сканирующий режим

ADC читает значение нескольких каналов, начиная с AIN0, заканчивая AINn, где n — это последний канал в диапазоне сканирования. Это число записывается в CH[3:0] регистра ADC_CSR. Пока каналы сканируются, значение CH[3:0] будет расти автоматически на аппаратном уровне.

Важно! При использовании сканирующего режима невозможно использовать линии AIN0 — AINn как цифровые. Мультиплексор будет их постоянно отключать.

Данные по каждому из просканированных каналов сохранятся в буфере(-ах) ADC_DB. Когда просканируется последний канал, то выставится флаг EOC и возникнет прерывание (если EOCIE включена).

Важно! Не сбрасывайте SCAN бит пока идет преобразование. Остановка лучше через бит ADON.

Сканирующий непрерывный режим

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

Важно! Не сбрасывайте флаг EOC операцией BRES (ассемблер) или ADCCSR &= ~(1<<7) (Си). А записывайте в регистр переменную из оперативной памяти.

Режим CONT бит DBUF бит SCAN бит
Одиночный 0 0 0
Непрерывный 1 0 0
Непрерывный с буфером 1 1 0
Сканирующий 0 0 1
Сканирующий непрерывный 1 0 1

Описание битов регистров конфигурации:

EOC — флаг окончания преобразования. Выставляется аппаратно.

AWD — флаг события Analog watchdog. Выставляется при возникновении события.

EOCIE — бит разрешения прерывания по возникновению флага EOC

AWDIE — бит разрешение прерывания по возникновению флага AWD

CH[3:0] — аналоговый канал, от 0 до 15.

SPSEL[2:0] коэффициент делителя частоты АЦП. 000:/2, 001:/3, 010:/4, 011:/6, 100:/8, 101:/10, 110:/12, 111:/18

CONT — бит активности непрерывной работы АЦП

ADON — включение АЦП, старт АЦП

EXTTRIG — запуск конверсии по событию активен

EXTSEL[1:0] — выбор внешнего события для запуска конверсии 00: TIM1 TRGO; 01 — внеш. прерывание на пине ADC_ETR.

ALIGN — 0 — left; 1 — right, выравнивание данных в регистрах результата преобразования (например ADC_DRx)

Этих сведений вполне достаточно чтобы начать работать с АЦП микроконтроллеров STM8.

Это может быть интересно:

В промышленной электронике принято использовать аналоговые входы для передачи сигнала по токовой петле. Это достаточно стабильный и помехоустойчивый способ измерения сигналов с датчиков. Он широко распространен. Обычно, диапазон токов для промышленной токовой петли (а так же HART сигнала) это 0 — 40 мА. На микроконтроллере STM8 такой токовый вход создается добавлением на вход резистора 82 Ома. Так же, опционально можно добавить защитный резистор предохранитель (R1). На рисунке приведена схема токового входа на микроконтроллере STM8 с напряжением питания 3,3V.

Разработка для 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

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

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

STVP-STM8 — ST Визуальный программатор STM8

Икс

Что-то пошло не так с запросом сервера. Пожалуйста, попробуйте снова через пару минут.

Описание проекта:

Требуется описание проекта.

Приложение:

Требуется приложение.

Конечное приложение:

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

Характер деятельности:

Образовательный институт / университетДругой исследовательский центрИнвесторыКонсультантЧастный / личный пользовательПроизводитель OEM-оборудованияАутсорсинговый производительДистрибьютор компонентовРитейлеры Требуется характер бизнеса.

Военный:

Да Нет Наличие военного статуса.

Страна / регион, в котором будет использоваться Программное обеспечение:

AfghanistanAland IslandsAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarticaAntigua и BarbudaArgentinaArmeniaArubaAscension IslandAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBissauBoliviaBonaire Синт-Эстатиус и SabaBosnia и HerzegovinaBotswanaBouvet islandBrazilBritish в Индийском океане TerritoryBritish Virgin IslandsBrunei DarussalamBulgariaBurkina FasoBurmaBurundiCambodiaCameroonCanadaCape VerdeCayman islandsCentral Африка RepublicChadChileChinaChristmas IslandCoco IslandsColombiaComorosCook IslandsCosta RicaCroatiaCubaCuracaoCyprusCzech RepublicDemocratic Республика CongoDenmarkDiego GarciaDjiboutiDominicaDominican RepublicEast TimorEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFaeroe IslandsFalkland IslandsFijiFinlandFranceFrench GuianaFrench PolynesiaFrench Южный и антарктический TerritoriesGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuernseyGuineaGuyanaHaitiHeard I sland и McDonald IslandsHondurasHong KongHungaryIcelandIndiaIndonesiaIranIraqIrelandIsle из ManIsraelItalyIvory CoastJamaicaJapanJerseyJordanKazakhstanKenyaKiribatiKoreaKuwaitKyrgyzstanLaoLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacaoMacedoniaMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesiaMoldovaMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorthern KoreaNorthern Mariana IslandsNorwayOmanPakistanPalauPalestinian territoriesPanamaPapua Нового GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto RicoQatarRepublic из CongoRéunionRomaniaRussiaRwandaSaint elenaSaint Китса и NevisSaint LuciaSaint Пьера и MiquelonSaint Винсента и GrenadinesSamoaSan MarinoSao Том и PrincipeSaudi ArabiaSenegalSerbiaSerbia и MontenegroSeychellesSierra LeoneSingaporesint maartenSlovakiaSloveniaSolomon IslandsS омалияЮжная АфрикаЮжная Грузия и Южные Сандвичевы островаЮжный СуданИспанияСри-ЛанкаСуданСуринамШпицберген и Ян-МайенСвазилендШвецияШвейцарияСирияТайваньТаджикистанТанзанияТаиландТимор-ЛестеТогоТокелауТонгаТринидад и ТобагоТунисТунисЮжные Виргинские островаУгандаУкраинаОбъединенные Арабские ЭмиратыВеликобританияСоединенные ШтатыМалые отдаленные острова СШАУругвайУзбекистанВануатуВатиканВенесуэлаВьетнамОстров УэйкУоллис и ФутунаЗападная СахараЙеменЗамбияЗимбабве Требуется страна / регион

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

Начало работы с 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.3V для контроллера. При необходимости контроллер также может быть настроен на работу от 5 В. Различные части контроллера отмечены ниже. У нас также есть 4 вывода программатора, а именно 3.3V, GND, SWIM и NRST, которые можно использовать для простого программирования и отладки нашего микроконтроллера.

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

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

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

Выбор подходящей 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. Я свяжу статью здесь, когда она будет готова. В этой статье будет обсуждаться, почему и почему вам не следует использовать Arduino IDE для программирования микроконтроллеров 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 не сбрасывает плату автоматически после программирования. Мне пришлось отключить и снова подключить его, чтобы проверить вывод моей программы. Я не уверен, что это проблема для всех, дайте мне знать в разделе комментариев.Также посмотрите видео внизу, в котором объясняется решение этой проблемы.

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

Запуск микроконтроллеров STM8 | Встроенная лаборатория

Микроконтроллеры

STM8 — это 8-битные микроконтроллеры общего назначения от STMicroelectronics (STM) .STM известна в основном своей линейкой 32-битных микроконтроллеров ARM Cortex — STM32s. Микроконтроллеры STM8 редко обсуждаются в этом контексте. Тем не менее, микроконтроллеры STM8 надежны и, что наиболее важно, оснащены множеством аппаратных функций. За исключением ядра ARM, 32-битной архитектуры, производительности и некоторых незначительных отличий, STM8 имеют много периферийных сходств с STM32. На мой взгляд, STM8 одинаково, а иногда и лучше, чем популярные PIC и AVR, во всех областях. Однако, в отличие от PIC и AVR, я видел STM8 в основном в различных SMD-пакетах.Только несколько микросхем STM8 доступны в пластиковом корпусе с двойным расположением каналов (PDIP) / в корпусах со сквозным отверстием. Я думаю, что это большая причина, по которой большинство малых предприятий и любителей не играют с ними так много, как с другими 8-битными семействами. Людям нравится сначала настраивать свои тестовые проекты на макетных платах, пробных печатных платах или стрип-платах, прототипировать, а затем разрабатывать для производства. Чтобы справиться с этой проблемой, STM предоставила несколько доступных плат STM8 Discovery (Disco) для начала. К тому же есть много дешевых коммутационных плат STM8 из Китая.

У меня есть опыт игры с AVR, PIC, 8051, STM32, MSP430, TivaC и так далее. Честно говоря, я думал, что изучение микросхем STM8 — пустая трата времени и энергии. Кривая обучения будет крутой. Вещи и инструменты были бы другими и поэтому сложными. Однако постепенно я обнаружил, что эти микроконтроллеры очень полезны, и в них буквально нет никакой сложности. Основным движущим фактором для изучения STM8 является ценовой фактор. Они очень дешевые. Что касается прочего, я не нашел ни одной книги по STM8, написанной на английском языке.В Интернете буквально нет полностью завершенного сообщения в блоге, которое бы показывало основы. Точно такая же история с инструментами. Я использовал MikroC для AVR, 8051 и ARM, и это мой любимый вариант, но на момент написания не было компилятора MikroC для семейства STM8. Я также не наткнулся на Arduino-подобную IDE, которая поддерживает микросхемы STM8. Решения на основе Arduino также не являются моими фаворитами, поскольку они не слишком глубоки и имеют несколько ограничений. Может, мне не повезло. После долгих исследований и поисков я обнаружил, что существует несколько компиляторов C для STM8.Однако любой новый инструмент поначалу отличается и труден. Не всегда легко адаптироваться к новым условиям. Возможно, вы никогда не узнаете, какие непредвиденные проблемы и суровость может бросить вам новая среда, даже когда вы достигнете определенного уровня знаний. Я также не хочу использовать пиратское программное обеспечение, поэтому бесплатный компилятор был основным требованием. Я узнал, что ST Visual Develop и Cosmic COSC compiler — бесплатные инструменты. Раньше Cosmic был платным инструментом, но теперь он абсолютно бесплатный. Единственное, что было легко до этого, — это купить плату STM8S Value Line Discovery всего за несколько долларов и загрузить все необходимое.

Семейство STM8

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

В этих группах есть подгруппы, но в целом эти три группы — это то, с помощью чего мы можем определить всю семью. Микросхемы STM8S — это прочные и надежные микросхемы общего назначения, которые можно использовать практически во всех прицелах. Это наиболее часто используемая группа, и мы рассмотрим ее в этой статье.К тому же они дешевы и умны. Вторая группа — семейство STM8A предназначено в основном для автомобильной промышленности. В эту группу входят дополнительные аппаратные интерфейсы, такие как CAN и LIN, которые необходимы в соответствии с современной доктриной автомобильной промышленности. STM8A также очень универсален и разработан, чтобы выдерживать суровые условия автомобиля. Например, STM8A может выдерживать высокие температуры, превышающие 100 ° C. Последняя группа состоит из микросхем STM8L, которые созданы для приложений с низким энергопотреблением или с батарейным питанием.В режиме ожидания они практически не потребляют электроэнергию. Таким образом, если вам требуется значительная экономия энергии или сокращение энергопотребления в ваших проектах, эта группа — правильный выбор. Существуют также маломощные версии стандартных автомобильных микросхем STM8 с маркировкой STM8AL. Помимо всего этого, существует еще один вариант микросхем STM8, специально разработанный для емкостных сенсорных приложений. Они называются STM8T.

Особенности и преимущества микросхем STM8 многочисленны, и их невозможно описать в нескольких словах.Чем больше вы исследуете, тем больше узнаете. STM8 могут питаться от источников питания постоянного тока 3,3 В или 5 В и имеют встроенную схему обнаружения пониженного напряжения. Модели с низким энергопотреблением могут работать при гораздо более низких напряжениях, чем эти значения. Официальные платы STM8 Discovery поставляются с перемычками для выбора напряжения, позволяющими пользователям выбирать уровень рабочего напряжения по мере необходимости. Существует минимальный риск повреждения программы из-за EMI или других подобных беспрецедентных факторов. Существует отказоустойчивая система безопасности для системы часов, которая гарантирует, что система, основанная на микроконтроллере STM8, не перестанет работать или зависнет в случае выхода из строя внешнего источника синхронизации.Все внутреннее оборудование обладает большим количеством функций, чем любые другие конкурирующие семейства 8-битных микроконтроллеров, широко доступные на рынке. Самое приятное — это ценовая выгода. Вы платите меньше за большинство. Все эти функции хорошо подходят для чрезвычайно суровых промышленных условий. STM8 разработаны с максимально возможными комбинациями функций. Помимо вашей самой смелой мокрой мечты, есть еще много необычных вещей, которые ждут, чтобы их распаковали.

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Похожие сообщения

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
  • STMicroelectronics SWIM для 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 Поддержка нулевого значения Page
    Расширения исходного кода компилятора обеспечивают эффективное использование режима короткой адресации 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

STM8 BASIC | Hackaday.io

О модулях STM8:

Возможно, самый маленький и наименее дорогой программируемый пользователем встроенный контроллер КОГДА-ЛИБО со встроенной полностью интегрированной средой разработки!

США Разработано и продано ветераном-инвалидом США

«Меньше, чем штамп» ™

Минимальная системная плата STM8S103F3P6, содержащая STM8 BASIC Embedded ™ или STM8 Compact BASIC Embedded ™ — это 1.Одноплатный компьютер размером 125 x 0,75 дюйма (30 x 18 мм), содержащий версию языка программирования BASIC, разработанную специально для БЫСТРОЙ, ПРОСТОЙ и НЕДОРОГОЙ разработки встроенных систем.

Если вам нужен очень крошечный, очень недорогой, с очень низким энергопотреблением и очень простой в программировании контроллер для выполнения функций контроллера, таких как аналого-цифровое преобразование, выход ШИМ, цифровой ввод / вывод и многое другое, то STM8S103F3P6 версия STM8 BASIC ™ — это именно то, что вы ищете.

Разработан архитектором встраиваемых систем с 40-летним опытом работы в области встроенных систем, используя все известные им техники, чтобы втиснуть невероятный объем функциональности в микроконтроллер, имеющий только 8 КБ флэш-памяти и 1 КБ ОЗУ (и использует только ¾ этой ОЗУ — остальное принадлежит тебе!).

Тем не менее, именно из-за этого он настолько дешев, что он легко доступен (и легко используется) любителями или студентами, а также профессионалами.

STM8 BASIC ™ дает вам мощность и гибкость, необходимые для программирования внутренних периферийных устройств микроконтроллера STM8S103F3P6 из вашего кода — и даже позволяет вам дополнительно загружать собственные пользовательские процедуры машинного кода STM8 в память и выполнять их вместе с вашим кодом.

И, конечно же, есть функция автозапуска, которая позволяет вам решить, хотите ли вы, чтобы ваша программа запускалась автоматически при включении или перезагрузке … в конце концов, она предназначена для автоматического управления; с таким мизерным энергопотреблением (макс 2.3 мА при 3,3 В постоянного тока), что позволяет работать от аккумуляторов очень малой емкости в течение продолжительных периодов времени. Отлично подходит для использования в качестве промышленного контроллера или автономного удаленного «листового узла» датчика Интернета вещей.

Никаких инструментов разработки не требуется! Цена покупки дает вам полностью автономную среду разработки со встроенным редактором и отладчиком — все программные инструменты, необходимые для запуска вашего проекта прямо из коробки, менее чем за 6 долларов США, включая сам одноплатный компьютер. Ваш код хранится в энергонезависимой EEPROM, рассчитанной на 300 000 циклов записи.Нет необходимости загружать код на свою доску, если, конечно, вы не хотите (и в руководстве указано, как это сделать, если вы предпочитаете редактировать и архивировать свой код на ПК).

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

Застрял в «вечной петле»? Нажмите Escape, и программа прервется, показывая номер последней выполненной строки.Или, в качестве альтернативы, включите отладчик, и у вас будет трассировка каждой строки, выполненной вместе с каждым значением переменной в этот момент, чтобы увидеть, где и почему вы никогда не выходите из цикла.

STM8 BASIC Embedded ™ и STM8 Compact BASIC Embedded ™ содержат почти идентичный набор функций, основное отличие состоит в том, что STM8 Compact BASIC Embedded ™ использует «компактный» синтаксис, который занимает в среднем на 15-30% меньше программной памяти. реализовать ту же функциональность, что позволит вам втиснуть больше в свои программы, используя меньше памяти.С другой стороны, некоторые могут предпочесть STM8 BASIC Embedded ™, который использует традиционный синтаксис BASIC, аналогичный тому, который использовался Microsoft и Commodore в их ранних версиях BASIC для 8-битных систем, таких как Commodore 64 и оригинальный IBM-PC.

_________________________________________________________________________________________________________

ОСОБЕННОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ:

Программа на BASIC или Compact BASIC и машинный код STM8, причем обе части кода сосуществуют и работают вместе в одно и то же время.

Позвонить …

Подробнее »

Введение в микроконтроллеры: руководство для начинающих по 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 Develop.Поскольку мы выбрали STM8 Cosmic, выбор очевиден, и корень Toolchain — это место, где установлен компилятор.

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

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

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

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


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

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

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


Затем щелкните вкладку 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
Если все в порядке, код должен быть успешно запрограммирован в микроконтроллер.

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

.

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

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