- Выбор средств разработки оборудования и программного обеспечения
- STM8S103F3P6 Разработка
- Программатор STM8S103F3P6
- STM8S103F3P6 IDE и компилятор
- STM8S с Arduino с использованием Sduino
- Загрузка необходимого программного обеспечения
- Настройка STVD и компилятора Cosmic C
- Стандартная периферийная библиотека для STM8S103F3P6
- Составление первой программы
- Загрузка кода из STVD в плату разработки STM8S с помощью ST-Link V2
STM8 представляет собой серию из 8-битных микроконтроллеров от STMicroelectronics, который стал общим выбором микроконтроллера для разработки продуктов чувствительных к стоимости. Я ранее работал с AVR, PIC и несколькими другими микроконтроллерами ARM Cortex, но, безусловно, в некоторых приложениях они становятся излишними и значительно увеличивают стоимость спецификации. Недавно, разобрав несколько дешевых китайских продуктов, я обнаружил, что в большинстве из них есть микроконтроллер STM8. ИС не только дешевая, но и обладает множеством функций и опций, что делает ее пригодной для использования во многих различных приложениях. Например, STM8S Серия контроллеров (которую мы изучим в этой серии руководств) является контроллером общего назначения, но есть и другие серии, такие как STM8A для автомобильных конструкций и STM8L для конструкций с маломощным аккумуляторным питанием, которые расширяют область применения этих контроллеров.
В этой серии руководств мы узнаем, как программировать микроконтроллеры STM8S, в частности, STM8S103F3P6.. Причина для начала работы с этим конкретным номером детали - это просто соотношение цены и производительности. Подобно!! просто посмотрите на это всего за 0,25 доллара (около 20 рупий) мы получаем 8-битный микроконтроллер с внутренним генератором 16 МГц, 8 КБ Flash, 10-битный АЦП, UART, SPI и I2C. Кто бы не был заинтригован? Кроме того, широко популярен STM8S103F3P6, и, следовательно, как новичок, вы найдете достаточно поддержки, если вам понадобится помощь вне руководств. Начиная с этого, у нас будет последовательность руководств, аналогичных учебным пособиям по программированию PIC, где мы узнаем, как программировать этот контроллер от простого мигания до различных интерфейсов дисплея и датчиков. Вы также можете ознакомиться с учебным пособием по STM32F103C8 и проектами, если вас интересуют 32-разрядные микроконтроллеры STM.
Выбор средств разработки оборудования и программного обеспечения
Теперь, когда мы нашли микроконтроллер, нам нужно будет выбрать инструменты разработки аппаратного и программного обеспечения, чтобы начать процесс обучения. Вариантов много, здесь я выбрал те, которые бесплатны и доступны каждому.
STM8S103F3P6 Разработка
Официальная плата разработки для 8-битного микроконтроллера ST называется комплектом STM8 Discovery, но мы будем использовать другую недорогую плату для разработки, которую вы можете легко найти у местного поставщика или в интернет-магазине. Изображение платы разработки STM8S103F3P6, которую мы будем использовать в этом руководстве, показано ниже.
Плата состоит только из минимума компонентов, необходимых для начала разработки. Это макетная плата и подходит для компактных приложений. Внутренняя принципиальная схема макетной платы показана ниже.
Присмотревшись, вы заметите, что помимо контроллера STM8S103F3p6, у нас есть кнопка сброса для сброса контроллера. Светодиод питания и тестовый светодиод подключены к PB5 (порт B, контакт 5) и регулятору напряжения AMS1117, который преобразует 5 В из порта USB в 3,3 В для контроллера. При необходимости контроллер также может быть настроен на работу от 5 В. Различные части контроллера отмечены ниже. У нас также есть 4 вывода программатора, а именно 3.3V, GND, SWIM и NRST, которые можно использовать для простого программирования и отладки нашего микроконтроллера.
Программатор STM8S103F3P6
Для программирования нашего контроллера мы будем использовать ST-LINK v2, который дешев и легко доступен в Интернете. Существует множество вариантов (металл, пластик, золото, розовый, голая плата) этой платы ST-LINK v2, и все они служат одной цели. Мой показан ниже, но вы можете использовать любой тип программатора ST-LINK, распиновка будет отличаться, поэтому просто убедитесь, что вы правильно прочитали распиновку на корпусе. Существует также ST-LINK V3 от самой ST-Microelectronics, который можно использовать для серьезной отладки. Мы не будем использовать это сейчас, так как это немного дорого, мы сохраним его на будущее.
STM8S103F3P6 IDE и компилятор
Выбор правильной IDE и компилятора для STM8S103F3P6 вызывает недоумение просто потому, что есть много вариантов на выбор. Официальные инструменты, доступные для микроконтроллера STM8, показаны на изображении ниже.
Что касается конфигурации, у нас есть STM8CubeMx, я попробовал программное обеспечение, и оно меня полностью разочаровало. В отличие от STM32Cube, STM8Cube не может автоматически генерировать код. Он может генерировать отображение контактов только для целей визуализации и может пригодиться, если вы переносите свой код с одного контроллера на другой. В остальном я бы не стал его использовать. Поэтому в этой серии руководств мы не будем использовать это.
Для IDE и компилятора у нас есть множество вариантов на выбор. Два основных варианта для IDE - это рабочая среда IAR и ST Visual Develop (STVD), оба программного обеспечения выглядят так, как будто они из 90-х, но после некоторого времени, поигравшего с ним, я обнаружил, что STVD - хороший выбор только потому, что он полностью бесплатный. Точно так же для компилятора мы будем использовать компилятор Cosmic C, опять же только потому, что он полностью бесплатен. Еще одна причина выбора этой 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, если вы еще этого не сделали.
- ST Visual Develop (STVD)
- Компилятор Cosmic C
- Стандартная периферийная библиотека
- STM8Cube Mx (дополнительно)
- STMStudio для STM8 (необязательно)
Настройка 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 и выберите File -> WorkSpace, во всплывающем окне выберите «New Workspace» и введите имя проекта и путь, в котором программа должна быть сохранена. Я называю свою программу BareMinimum и сохраняю ее в папке на рабочем столе. Нажмите OK, и вы получите диалоговое окно New Project, как показано ниже.
Я снова называю проект bareminimum, и в цепочке инструментов мы должны указать корень цепочки инструментов в путь, где установлен компилятор STM8 Cosmic. Адрес пути по умолчанию - «C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8» . После этого просто нажмите OK, чтобы открыть окно «Выбор MCU».
Найдите STM8S103F3P, выберите его и нажмите OK. Это откроет новый проект для STM8S103F3P на STVD, окна должны выглядеть так, когда закончите.
Щелкните правой кнопкой мыши «исходный файл» и выберите «Добавить файлы в папку», чтобы включить все файлы c из нашей библиотеки SPL, аналогичным образом щелкните правой кнопкой мыши «Включить файлы», чтобы включить все файлы заголовков. Если у вас есть вопросы, вы можете обратиться к видео ниже. После добавления всех файлов нажмите « Сборка» -> «Перестроить все», а затем «Скомпилировать», чтобы проверить правильность работы компилятора и SPL. Если все пойдет хорошо, вы должны увидеть следующий экран с ошибкой 0 результата сборки и предупреждением 0.
После этого мы можем быть уверены, что все наши библиотеки SPL работают с компилятором Cosmic и STVD. Это стандартная процедура, которой мы будем следовать для каждого нового проекта. Вы также можете включить только необходимые заголовочные и исходные файлы, которые необходимы для проекта, чтобы при необходимости сократить время сборки.
Загрузка кода из STVD в плату разработки STM8S с помощью ST-Link V2
Подключите ST-Link V2 к плате разработки, как показано ниже.
Подключения довольно просты, и, что самое приятное, вам не нужны внешние компоненты. Моя аппаратная установка для программирования показана ниже, я только что использовал соединительные провода для подключения. Однако обратите внимание, что распиновка вашего ST-Link может отличаться от моей, убедитесь, что вы соблюдаете распиновку на устройстве, прежде чем выполнять подключения.
Выполните подключение и подключите устройство к компьютеру, установка драйвера должна начаться автоматически. Вы можете использовать диспетчер устройств, чтобы убедиться, что ваш компьютер правильно обнаружил ST-LINK V2. Вы также заметите, что индикатор проверки на плате мигает, если это первый раз, когда плата включается. Как только мы успешно скомпилируем код на STVD, мы получим файл расширения «S19» в каталоге отладки папки проекта. Мой файл S19 показан ниже.
Этот S19 похож на файл Hex, который следует загрузить в контроллер. Чтобы загрузить программу, откройте ST Visual Programmer (STVP), который должен быть установлен вместе с STVD. Затем в окне конфигурации выберите, как показано на изображении ниже, и нажмите OK.
Затем нажмите File-> Open и перейдите к файлу S19, который мы показали ранее. Затем, чтобы прошить устройство, перейдите в Program -> Current Tab. Если перепрошивка прошла успешно, вы должны увидеть следующий результат.
По умолчанию, когда вы покупаете STM8S, у него будет мигающая программа, которая мигает тестовым светодиодом. Теперь, после загрузки этого пустого кода, светодиод больше не будет мигать.
Важно: я обнаружил, что мой ST-Link не сбрасывает плату автоматически после программирования. Мне пришлось отключить и снова подключить его, чтобы проверить вывод моей программы. Я не уверен, что это проблема для всех, дайте мне знать в разделе комментариев. Также посмотрите видео внизу, в котором объясняется решение этой проблемы.
На этом давайте закончим этот урок, мы изучили основы оборудования, настроили среду разработки и узнали, как компилировать и загружать код. Теперь мы готовы к прогрессу и будем использовать это во всех наших будущих уроках. Если у вас есть вопросы, напишите их на нашем форуме и следите за новостями !!