Микроконтроллер STM8S903K3: особенности, технические характеристики и учебник STVD STM8

Обзор

STM8S903K3 — это 8-разрядный микроконтроллер, производимый компанией STMicroelectronics, входящий в серию STM8S. Эта серия микроконтроллеров пользуется популярностью на рынке благодаря высокой производительности, надежности и экономичности. STM8S903K3 особенно подходит для различных приложений в области промышленного управления и бытовой техники, поскольку помогает снизить системные затраты и сократить циклы разработки приложений.

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

  • Высокая производительность: на основе ядра STM8 нового поколения, обеспечивает расширенные возможности обработки данных.
  • Низкое энергопотребление: поддерживает несколько режимов низкого энергопотребления, включая режимы ожидания, активной остановки и остановки, а также возможность индивидуального отключения периферийных тактовых генераторов.
  • Высокая интеграция: интегрирует настоящую EEPROM-память данных с до 300 тыс. циклов записи/стирания, внутренний тактовый генератор, сторожевой таймер и функцию сброса при включении питания.
  • Система безопасности тактовой частоты: включает монитор тактовой частоты для обеспечения стабильной работы системы.
  • Управление прерываниями: оснащен вложенным контроллером прерываний, поддерживающим до 32 прерываний и 28 внешних прерываний.
  • Таймеры: включает в себя расширенные таймеры управления, универсальные таймеры и таймеры автоматического пробуждения.
  • Коммуникационные интерфейсы: поддерживает различные коммуникационные протоколы, такие как I2C, IrDA, шина LIN, SPI, UART/USART.
  • Рабочее напряжение: от 2,95 до 5,5 В, что обеспечивает гибкость для различных условий питания.
  • Диапазон температур: Диапазон рабочих температур от -40 °C до 85 °C, что делает его пригодным для широкого спектра условий окружающей среды.

Распиновка:

STM8S903K3 SDIP32 pinout
STM8S903K3 SDIP32 pinout

Блок-схема:

STM8S903K3 block diagram
STM8S903K3 block diagram

Примеры применения:

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

Программирование STM8S903K3 с помощью STVD и STVP

В этом примере мы представим учебник по программированию STM8S903K3 UART на основе ST Visual Develop и ST Visual Programmer, начиная с настройки среды и создания проекта и заканчивая компиляцией и тестированием.

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

Аппаратное обеспечение:

  • Микроконтроллер STM8S903K3
  • Отладчик/программатор ST-Link
  • Целевая плата (опционально)
  • Последовательный интерфейс UART (опционально)

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

  • ST Visual Develop (STVD) (инструмент IDE для написания, компиляции и отладки)
  • ST Visual Programmer (STVP) (инструмент программирования)
  • Драйвер ST-Link USB
  •  Набор инструментов STM8 Cosmic Compiler (создание проекта и генерация файла HEX)
  • Программное обеспечение эмулятора терминала (опционально)

Пошаговый процесс

1. Создать новое рабочее пространство в ST Visual Develop

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

Create new workspace on ST Visual Develop
Create new workspace on ST Visual Develop

2. Создать новое рабочее пространство и проект

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

Create new workspace and project
Create new workspace and project

3. Установка имени и местоположения рабочего пространства

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

Setting workspace filename and location
Setting workspace filename and location

4. Новый набор инструментов для проектов STM8 Cosmic

Выберите инструментарий STM8 Cosmic для проекта. Инструментарий Cosmic используется для компиляции кода и генерации исполняемого файла для микроконтроллера STM8.

New project toolchain STM8 Cosmic
New project toolchain STM8 Cosmic
Install COSMIC STM8 4.4.3 and STM32 4.3.6 32K C Compilers
Install COSMIC STM8 4.4.3 and STM32 4.3.6 32K C Compilers

5. Выберите MCU STM8S903K3

В настройках проекта выберите микроконтроллер (MCU) STM8S903K3 в качестве целевого устройства. Это гарантирует, что проект будет правильно настроен для конкретного оборудования, с которым вы работаете.

Selected MCU STM8S903K3
Selected MCU STM8S903K3

6. Добавление кода UART в файл main.c

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

Adding uart code to the main.c file and add stm8s903k3.h file to the Include Files folder
Adding uart code to the main.c file and add stm8s903k3.h file to the Include Files folder
Детали кода следующие:
				
					#include "stm8s903k3.h"
#include "stdio.h"

#define _COSMIC_

/*
  Since different compilers (RAISONANCE, COSMIC, IAR) have slightly different parameter and return value conventions for putchar and getchar,
  we use macros to define them accordingly. These macros are automatically added by the compiler.
*/

#ifdef _RAISONANCE_
 #define PUTCHAR_PROTOTYPE int putchar (char c)
 #define GETCHAR_PROTOTYPE int getchar (void)
#elif defined (_COSMIC_)
 #define PUTCHAR_PROTOTYPE char putchar (char c)
 #define GETCHAR_PROTOTYPE char getchar (void)
#else /* _IAR_ */
 #define PUTCHAR_PROTOTYPE int putchar (int c)
 #define GETCHAR_PROTOTYPE int getchar (void)
#endif /* _RAISONANCE_ */

// Function to send a character to UART1
PUTCHAR_PROTOTYPE
{
    UART1_DR = c;              // Send a character 'c' to UART1 data register
    while (!(UART1_SR & 0x40)); // Wait for transmission to complete (TXE flag)
    return (c);
}

// Function to receive a character from UART1
GETCHAR_PROTOTYPE
{
    #ifdef _COSMIC_
      char c = 0;
    #else
      int c = 0;
    #endif
    // Wait for new data to be received (RXNE flag)
    while (!(UART1_SR & 0x20));  
    // Read received data
    c = UART1_DR;
    return (c);
}

// Clock initialization function
void CLK_Init(void)
{
    // Enable the internal high-speed oscillator (HSI)
    CLK_ICKR |= 0x01; 
    CLK_CKDIVR = 0x00; // No clock division (16MHz)
    while (!(CLK_ICKR & 0x02)); // Wait for HSI to be ready
    CLK_SWR = 0xE1; // Use HSI as the system clock source
}

// UART1 initialization function
void UART1_Init(void)
{
    UART1_CR3 = 0x00; // Disable LIN mode, one stop bit, no SCK
    UART1_CR2 = 0x00; // Disable TX interrupt, RX interrupt, and others
    UART1_CR3 = 0x00; // Disable interrupts, no break frames
    UART1_BRR2 = 0x02; // Set baud rate (9600)
    UART1_BRR1 = 0x68; // Set baud rate (9600)
    UART1_CR2 = 0x0C; // Enable TX and RX
}

// Simple delay function (not very accurate, could be improved with a timer)
void delay(unsigned int x)
{
    unsigned int i, j;
    for (i = x; i > 0; i--)
        for (j = 300; j > 0; j--);
}

void main()
{
    unsigned char c;
    CLK_Init();      // Initialize system clock
    UART1_Init();    // Initialize UART1

    while(1)
    {
        printf("\n\rPlease enter a key: ");
        while (!(UART1_SR & 0x20)); // Wait for data to be received (RXNE flag)
        c = UART1_DR;  // Read received character
        printf("\n\rYou entered: %c.", c);  // Send the received character back to the user
    }
}

				
			

После добавления кода main.c мы можем добавить заголовочный файл stm8s903k3.h в папку «Include Files» проекта. Этот файл содержит необходимые определения и конфигурации для микроконтроллера STM8S903K3, позволяя компилятору распознавать регистры и функции, специфичные для данного устройства.

7. Сборка проекта

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

Build the project by ST Visual Develop
Build the project by ST Visual Develop

8. Отладка целевого устройства Swim ST-Link

Настройте среду отладки, выбрав отладчик ST-Link для связи с целевым микроконтроллером. ST-Link — это USB-программатор/отладчик, используемый для загрузки кода в микроконтроллер STM8 и его отладки.

Debug Target Swim ST Link
Debug Target Swim ST-Link

9. Редактирование команд настроек проекта в пост-сборке

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

Project settings commands edit of Post Build
Project settings commands edit of Post-Build

10. Сохраните текстовый файл и снова скомпилируйте проект.

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

Save text file and build the project again
Save text file and build the project again

11. Настройка STM8S903K3 ST-LINK для ST Visual Programmer STM8

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

Configure STM8S903K3 ST LINK for ST Visual Programmer STM8
Configure STM8S903K3 ST-LINK for ST Visual Programmer STM8

12. Программирование с помощью ST Visual Programmer

Используйте программное обеспечение ST Visual Programmer, чтобы открыть файл uart.HEX файл, сгенерированный в процессе сборки. Этот файл содержит скомпилированный код для микроконтроллера STM8S903K3. Выберите соответствующие параметры программирования в ST Visual Programmer и запрограммируйте микроконтроллер с помощью сгенерированного .hex файлом.

Open the uart.HEX file in ST Visual Programmer and Program all tabs
Open the uart.HEX file in ST Visual Programmer and Program all tabs

Поделиться:

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

Instant Quote