Микроконтроллер STM8S105C6: полное руководство по программированию и обзор

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

Введение в STM8S105C6

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

Основные характеристики STM8S105C6

  • Ядро: 8-разрядное ядро STM8 с высокой скоростью обработки данных.
  • Тактовая частота: микроконтроллер работает с максимальной частотой 16 МГц.
  • Память:
    • Флэш-память: 32 КБ встроенной программируемой флэш-памяти.
    • RAM: 2 КБ SRAM для хранения данных.
  • Периферийные устройства:
    • Порты ввода-вывода: 16 универсальных выводов ввода-вывода.
    • Таймеры: 2 универсальных 16-разрядных таймера, 1 сторожевой таймер.
    • Коммуникационные интерфейсы: UART (универсальный асинхронный приемопередатчик) для последовательной связи, SPI (последовательный периферийный интерфейс), I2C (межчиповая интегральная схема).
    • Аналоговые функции: 1 АЦП (аналого-цифровой преобразователь) с 8 каналами, разрешение 10 бит.
    • ШИМ (Широтно-импульсная модуляция): Возможность генерации ШИМ-сигналов для управления двигателями или светодиодами.
  • Диапазон напряжения: Работает в диапазоне напряжений от 2,95 В до 5,5 В, что делает его подходящим для различных конфигураций источников питания.
  • Низкое энергопотребление: оптимизирован для работы с низким энергопотреблением, с несколькими режимами энергосбережения, такими как Sleep, Wait и Halt.
  • Инструменты разработки: STM8S105C6 поддерживается различными инструментами разработки, включая STVD (STM8 Development Environment) от STMicroelectronics, IAR Embedded Workbench и другие IDE (интегрированные среды разработки) сторонних производителей.
  • Варианты корпуса: STM8S105C6 доступен в 32-контактном корпусе LQFP (Low-profile Quad Flat Package), что делает его компактным и легко интегрируемым в широкий спектр конструкций.

Технические характеристики STM8S105C6

FeatureSpecification
Core8-bit STM8 core
Clock SpeedUp to 16 MHz
Flash Memory32KB (in-system programmable)
SRAM2KB
Voltage Range2.95V to 5.5V
Timers2x 16-bit general-purpose timers
Watchdog TimerYes
Communication InterfacesUART, SPI, I2C
Analog Features8-channel, 10-bit ADC
PWM ChannelsYes
Operating Temperature Range-40°C to 125°C
Package Type32-pin LQFP

STM8S105C6 Распиновка

STM8S105C6 SDIP32 pinout
STM8S105C6 SDIP32 pinout

Блок-схема STM8S105C6

Block diagram of STM8S105C6
Block diagram of STM8S105C6

Как запрограммировать STM8 через UART

Помимо использования программатора STLINK, микроконтроллер STM8S105C6 можно программировать через интерфейс UART с помощью программного обеспечения Flash Loader Demonstrator для записи скомпилированных программ в микроконтроллер.

Необходимые инструменты:

  • STVD-STM8 (версия: 42.0.0)
  • IAR Embedded Workbench IDE (версия: 9.40.2)
  • Flash Loader Demonstrator (версия: 2.8.0)
  • Плата разработчика STM8S105C6

Для подробного объяснения процесса программирования мы разделили его на три этапа:

1. Включение BootLoader

Перед программированием через UART необходимо активировать на чипе опцию «BootLoader Enable» (Включить загрузчик). По умолчанию она включена на новых чипах. Однако после записи программы она отключается. Существует два способа включения загрузчика:

  1. Использование программного обеспечения ST LINK и STVP (ST Visual Programmer) для изменения OPTION BYTE чипа.
  2. Изменение OPTION BYTE с помощью программы.

Использование ST LINK для изменения OPTION BYTE

Сначала подключите ST LINK, плату разработчика STM8 и компьютер, а затем откройте программное обеспечение STVP (ST Visual Programmer). STVP устанавливается автоматически при настройке среды разработки STVD. Это полнофункциональный графический инструмент программирования, используемый для программирования флэш-памяти микроконтроллеров ST, который позволяет читать, редактировать и записывать данные в FLASH, EEPROM и OPTION BYTE STM8.

BootLoader Enable under Option Byte of STVP
BootLoader Enable under Option Byte of STVP

Затем измените OPTION BYTE, чтобы включить BootLoader. В программном обеспечении STVP перейдите на вкладку OPTION BYTE и найдите опцию BootLoader, которая обычно находится внизу списка OPTION BYTE. Нажмите «BootLoader Disable» (Отключить BootLoader) и выберите «BootLoader Enable» (Включить BootLoader) в раскрывающемся меню. После настройки нажмите «Program Current Tab» (Записать текущую вкладку) или «Program All Tabs» (Записать все вкладки) на панели инструментов, чтобы записать OPTION BYTE в микроконтроллер STM8, тем самым включив BootLoader.

Использование программы для изменения OPTION BYTE

Чтобы включить BootLoader с помощью программы, скомпилируйте следующий код и запишите его на STM8 с помощью ST LINK:

				
					FLASH_DeInit();  // Restore FLASH registers to default values
FLASH_Unlock(FLASH_MEMTYPE_DATA);  // Unlock data EEPROM

// Program OPTION BYTE
FLASH_ProgramOptionByte(0x487e, 0x55);
FLASH_ProgramOptionByte(0x487f, 0xAA);

				
			

2. Настройка среды разработки

Среда разработки STVD

После компиляции с помощью компилятора Cosmic в STVD по умолчанию будет сгенерирован файл *.s19. Этот файл можно напрямую записать в микроконтроллер STM8 с помощью программного обеспечения Flash Loader Demonstrator. Программное обеспечение также поддерживает запись файлов *.hex и *.bin. Ниже описано, как настроить STVD для генерации этих трех форматов.

  1. Откройте файл проекта STVD и перейдите в «Свойства проекта».
  2. Выберите вкладку «Post-Build», как показано ниже.
Adding .hex and .bin Commands to STVD under the Project Settings Post Build
Adding .hex and .bin Commands to STVD under the Project Settings Post-Build

В текстовом поле «Команды» добавьте следующие команды после существующих:

				
					chex -fi -o$(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8
chex -o$(OutputPath)$(TargetSName).bin $(OutputPath)$(TargetSName).sm8

				
			

Нажмите «ОК» для подтверждения. После компиляции будут сгенерированы три различных формата файлов.

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

Среда разработки IAR не использует компилятор Cosmic, поэтому не может генерировать файлы *.s19. Однако она может генерировать два других формата. Чтобы настроить это в IAR:

  1. Откройте файл проекта IAR и перейдите в «Свойства проекта».
  2. Выберите вкладку «Конвертер вывода».
Setting the Output Converter in IAR Embedded Workbench IDE
Setting the Output Converter in IAR Embedded Workbench IDE

Затем установите флажок «Генерировать дополнительный вывод». В раскрывающемся списке «Формат вывода» выберите «Intel extended» для создания файла *.hex или «Binary» для создания файла *.bin. Выберите опцию «Переопределить значение по умолчанию» и введите желаемое имя файла и формат в текстовом поле. Нажмите «ОК» для подтверждения. После компиляции будет создан файл выбранного формата.

3. Программирование с помощью Flash Loader Demonstrator

Flash Loader Demonstrator — это инструмент для загрузки ISP от ST, который можно использовать для программирования микроконтроллеров STM32 или STM8 через UART. Он поддерживает прошивку файлов *.s19, *.hex и *.bin. Ниже описано, как использовать его для программирования микроконтроллера STM8:

  1. Подключите плату разработчика STM8 к компьютеру через UART и установите программное обеспечение Flash Loader Demonstrator. После установки откройте программное обеспечение, и появится главный интерфейс.
  2. Выберите соответствующий порт UART, подключенный к плате разработчика STM8, в раскрывающемся списке Port Name.
  3. В раскрывающемся списке Echo выберите Echo Mode для STM8S или Disable для STM8L.
Select the communication port and device for STM8 development board
Select-the-communication-port-and-device-for-STM8-development-board

Затем перезагрузите плату разработчика STM8 и быстро нажмите кнопку «Next» (Далее). Вы должны нажать кнопку в течение одной секунды, чтобы Flash Loader Demonstrator мог получить данные от BootLoader STM8. В случае успеха программа перейдет к экрану выбора устройства STM8.

Тип устройства определяется микросхемой STM8 и размером ее внутренней флэш-памяти. Для микроконтроллеров STM8S выберите STM8_XXK из раскрывающегося списка. Для STM8L выберите STM8L_XXK. На основе STM8S105C6 на нашей плате разработчика, которая имеет 32 КБ внутренней флэш-памяти, выберите STM8_32K из раскрывающегося списка.

Download Program to STM8 by Flash Loader Demonstrator
Download-Program-to-STM8-by-Flash-Loader-Demonstrator

Затем нажмите «Далее», и программа предложит вам выбрать файл для прошивки. В поле «Загрузить из файла» найдите путь к файлу программы, которую необходимо прошить. Нажмите «Далее», и файл будет записан во внутреннюю флэш-память микроконтроллера STM8. После успешной прошивки программа отобразит сообщение «Операция загрузки завершена успешно».

Наконец, нажмите «Закрыть», чтобы выйти из программы Flash Loader Demonstrator. Сбросьте плату разработчика STM8, и микроконтроллер запустит программу в соответствии с заданным алгоритмом. Обратите внимание, что программа копируется в память FLASH, и вам необходимо сбросить устройство, чтобы указатель перешел к пользовательской программе и начал ее выполнение. Если вы хотите, чтобы программа запускалась автоматически после прошивки, установите флажок «Перейти к пользовательской программе».

Типичные области применения

  • Автомобилестроение: блоки управления, датчики и дисплеи.
  • Промышленность: управление процессами, системы автоматизации и контроллеры двигателей.
  • Потребительская электроника: интеллектуальные устройства, пульты дистанционного управления и мелкая бытовая техника.
  • Домашняя автоматизация: системы «умного дома», счетчики энергии и системы безопасности.

Поделиться:

Прокрутить вверх

Instant Quote