Microcontrolador STM8S903K3: Características, especificaciones y tutorial STVD STM8

Descripción general

STM8S903K3 es un microcontrolador de 8 bits producido por STMicroelectronics, parte de la serie STM8S. Esta serie de microcontroladores es popular en el mercado debido a su alto rendimiento, robustez y rentabilidad. El STM8S903K3 es especialmente adecuado para una variedad de aplicaciones de control industrial y electrodomésticos, ya que ayuda a reducir los costos del sistema y acortar los ciclos de desarrollo de aplicaciones.

Características principales:

  • Alto rendimiento: Basado en el núcleo STM8 de próxima generación, ofrece capacidades de procesamiento avanzadas.
  • Bajo consumo de energía: Cuenta con múltiples modos de bajo consumo, incluidos los modos Wait, Active Stop y Stop, así como la capacidad de deshabilitar individualmente los relojes periféricos.
  • Alta integración: Integra una EEPROM de datos verdadera con hasta 300.000 ciclos de escritura/borrado, un oscilador de reloj interno, un temporizador de vigilancia y funcionalidad de reinicio de encendido.
  • Sistema de seguridad del reloj: Incluye un monitor de reloj para garantizar un funcionamiento estable del sistema.
  • Gestión de interrupciones: Equipado con un controlador de interrupciones anidadas, que admite hasta 32 interrupciones y 28 interrupciones externas.
  • Temporizadores: Incluye temporizadores de control avanzados, temporizadores de propósito general y temporizadores de activación automática.
  • Interfaces de comunicación: Admite varios protocolos de comunicación como I2C, IrDA, bus LIN, SPI, UART/USART.
  • Voltaje de funcionamiento: 2,95 a 5,5 V, lo que proporciona flexibilidad para diferentes entornos de energía.
  • Rango de temperatura: Rango de temperatura de funcionamiento de -40°C a 85°C, lo que lo hace adecuado para una amplia gama de condiciones ambientales.

Distribución de pines:

STM8S903K3 SDIP32 pinout
STM8S903K3 SDIP32 pinout

Diagrama de bloques:

STM8S903K3 block diagram
STM8S903K3 block diagram

Ejemplos de aplicaciones:

Debido a su alto rendimiento y bajo costo, el STM8S903K3 se utiliza ampliamente en varios campos. Por ejemplo, en los diseños de controladores de vehículos eléctricos, sirve como el chip de control principal para impulsar motores sin escobillas de CC sin sensores, reduciendo así los costos del motor y mejorando la estabilidad del controlador.

Programación de STM8S903K3 con STVD y STVP

En este ejemplo, presentaremos el tutorial de programación UART de STM8S903K3, basado en ST Visual Develop y ST Visual Programmer, desde la configuración del entorno y la creación del proyecto hasta la compilación y las pruebas.

Herramientas requeridas

Hardware:

  • Microcontrolador STM8S903K3
  • Depurador/Programador ST-Link
  • Placa de destino (Opcional)
  • Interfaz de comunicación serial UART (Opcional)

Software:

  • ST Visual Develop (STVD) (herramienta IDE para escribir, compilar y depurar)
  • ST Visual Programmer (STVP) (herramienta de programación)
  • Controlador USB ST-Link
  • STM8 Cosmic Compiler Toolchain (compilar el proyecto y generar el archivo HEX)
  • Software de emulación de terminal (Opcional)

Proceso paso a paso

1. Crear un nuevo espacio de trabajo en ST Visual Develop

Abra ST Visual Develop y cree un nuevo espacio de trabajo. Este será el contenedor para sus archivos de proyecto y configuraciones.

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

2. Crear un nuevo espacio de trabajo y proyecto

Dentro del espacio de trabajo, cree un nuevo proyecto. Esto servirá como el entorno de desarrollo principal donde escribirá y compilará su código.

Create new workspace and project
Create new workspace and project

3. Establecer el nombre de archivo y la ubicación del espacio de trabajo

Especifique el nombre de archivo y la ubicación donde se guardará el espacio de trabajo. Elija un directorio apropiado en su computadora para almacenar los archivos del proyecto.

Setting workspace filename and location
Setting workspace filename and location

4. Nueva cadena de herramientas de proyecto STM8 Cosmic

Seleccione la cadena de herramientas STM8 Cosmic para el proyecto. La cadena de herramientas Cosmic se utiliza para compilar el código y generar el archivo ejecutable para el microcontrolador 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. Seleccionar MCU STM8S903K3

En la configuración del proyecto, elija el microcontrolador (MCU) STM8S903K3 como el dispositivo de destino. Esto asegura que el proyecto esté configurado correctamente para el hardware específico con el que está trabajando.

Selected MCU STM8S903K3
Selected MCU STM8S903K3

6. Agregar código UART al archivo main.c

En el archivo main.c de su proyecto, agregue el código UART a continuación para habilitar la comunicación serial. Esto incluye configurar la configuración de UART y las funciones para transmitir y recibir datos.

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
Código detallado a continuación:
				
					#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
    }
}

				
			

Después de agregar el código main.c, podemos agregar el archivo de encabezado stm8s903k3.h en la carpeta «Archivos de inclusión» del proyecto. Este archivo contiene las definiciones y configuraciones necesarias para el MCU STM8S903K3, lo que permite al compilador reconocer los registros y funciones específicos del dispositivo.

7. Compilar el proyecto

Una vez que se escribe el código, compile el proyecto para compilar el código fuente en código máquina que el STM8S903K3 pueda entender. Este paso verificará si hay errores y generará un archivo de salida (típicamente un archivo .hex).

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

8. Depurar el objetivo SWIM ST-Link

Configure el entorno de depuración seleccionando el depurador ST-Link para la comunicación con el MCU de destino. El ST-Link es un programador/depurador basado en USB que se utiliza para cargar código en el microcontrolador STM8 y depurarlo.

Debug Target Swim ST Link
Debug Target Swim ST-Link

9. Editar la configuración del proyecto Comandos en Post-Build

En la configuración del proyecto, edite los comandos post-build para automatizar cualquier paso necesario que deba ocurrir después de la compilación, como copiar el archivo de salida o realizar un procesamiento adicional.

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

10. Guardar el archivo de texto y volver a compilar el proyecto

Guarde el proyecto y cualquier archivo de texto que contenga configuraciones o comandos de compilación. Después de guardar, vuelva a compilar el proyecto para asegurarse de que todos los ajustes se apliquen correctamente y que se genere el archivo de salida.

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

11. Configure STM8S903K3 ST-LINK para ST Visual Programmer STM8

Configure el ST-Link con el microcontrolador STM8S903K3 para la programación. El ST-Link debe estar conectado tanto a la computadora como al STM8S903K3 para facilitar la programación y la depuración.

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

12. Programación a través de ST Visual Programmer

Utilice el software ST Visual Programmer para abrir el archivo uart.HEX generado por el proceso de compilación. Este archivo contiene el código compilado para su microcontrolador STM8S903K3. Seleccione las opciones de programación apropiadas en el ST Visual Programmer y programe el microcontrolador con el archivo .hex generado.

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

Compartir en:

Scroll al inicio

Cotización