Microcontrolador STM8S105K4: Visión general, Características clave y Aplicaciones prácticas

El microcontrolador STM8S105K4, conocido por su eficiencia y versatilidad, es una opción sólida para aplicaciones embebidas en electrónica de consumo y sistemas industriales. Este artículo proporciona una descripción general de sus características clave, configuración de pines y diagrama de bloques, junto con una guía paso a paso para configurar un proyecto en IAR Embedded Workbench. Con código de ejemplo para el control básico de GPIO e instrucciones sobre programación y depuración, esta guía le ayudará a comenzar con el STM8S105K4 rápidamente y de manera efectiva.

Descripción general

El STM8S105K4 es un microcontrolador de 8 bits de STMicroelectronics, parte de la familia STM8. Está diseñado para una amplia gama de aplicaciones, proporcionando un equilibrio entre rendimiento, eficiencia energética y asequibilidad. Con sus periféricos avanzados y memoria EEPROM integrada, el STM8S105K4 es adecuado para tareas de control de propósito general en electrónica de consumo, sistemas industriales y más.

Características y especificaciones

  • Core: 8-bit STM8 core con arquitectura Harvard, que opera a hasta 16 MHz.
  • Memoria:
    • Memoria Flash: 16 KB
    • RAM: 1 KB
    • EEPROM: 640 bytes
  • Temporizadores:
    • Temporizador de control avanzado de 16 bits (TIM1)
    • Temporizador general de propósito (TIM2) de 16 bits
    • Temporizador básico de 8 bits (TIM4)
  • Interfaces de Comunicación:
    • Interfaces UART, I2C y SPI para conectividad versátil.
  • Características Analógicas:
    • ADC de 10 bits con hasta 5 canales
    • Referencia de voltaje interna para una mayor precisión analógica
  • GPIO:
    • Múltiples pines de E/S con configuraciones de pull-up programables, tipo de salida y velocidad
    • Hasta 38 puertos de E/S (dependiendo del paquete)
  • Voltaje de Operación: 2.95 V a 5.5 V
  • Rango de Temperatura: -40°C a +85°C (grado industrial)
  • Empaquetado: Disponible en LQFP32 y otras opciones de paquete compactas.

Pin Configuration

El STM8S105K4 proporciona hasta 48 pines de E/S, dependiendo del paquete, que se pueden configurar para múltiples funciones como entrada ADC, salida PWM, UART, SPI, I²C y E/S digital de propósito general. Los GPIO clave incluyen:

  • Puerto A (PA0 a PA7): Configurable para E/S digital y funciones alternativas.
  • Puerto B (PB0 a PB7): Principalmente utilizado para E/S con pines específicos que admiten funciones alternativas.
  • Puertos C, D y E: Soporte para E/S adicionales, entrada analógica y funciones de temporizador, incluyendo la generación PWM.
STM8S105K4 LQFP48 pinout
STM8S105K4 LQFP48 pinout

Cada pin se puede configurar individualmente como entrada o salida, con soporte para modos de tracción y compresión y modo abierto. Además, los pines están protegidos contra ESD y son capaces de salidas de alta potencia para aplicaciones de accionamiento de LED y relés.

Diagrama de bloques

STM8S105K4 block diagram
STM8S105K4 block diagram

El diagrama de bloques del STM8S105K4 incluye:

  • Núcleo: Núcleo STM8 con control de reloj, contador de programa y ALU para el procesamiento de 8 bits.
  • Unidades de memoria:
    • Memoria Flash para almacenamiento de código
    • EEPROM para retención de datos
    • SRAM para uso general
  • Periféricos:
    • ADC para el procesamiento de señales analógicas
    • Temporizadores (TIM1, TIM2 y TIM4) para el tiempo de eventos, PWM y generación de formas de onda
    • Interfaces de comunicación (UART, SPI e I²C) para la conectividad con sensores, pantallas y otros módulos
  • Control del sistema:
    • Unidad de generación de reloj con fuentes de reloj internas y externas
    • Temporizador de watchdog para la fiabilidad del sistema
    • Unidad de gestión de energía con modos de bajo consumo
  • Control de E/S: Configuración y gestión de GPIO para la interfaz con dispositivos externos

Esta arquitectura modular permite una flexibilidad en el manejo de una variedad de tareas, desde el control en tiempo real hasta la comunicación serial.

Aplicaciones

El microcontrolador STM8S105K4 es ideal para una amplia gama de aplicaciones, incluyendo:

  1. Electrónica de Consumo: Electrodomésticos, controles remotos y control de visualización
  2. Control Industrial: Control de motores, sistemas HVAC y módulos PLC
  3. Aplicaciones Automotrices: Interfazación de sensores, control del panel de instrumentos y sistemas de iluminación
  4. Atención Médica: Dispositivos médicos, sistemas de monitorización y equipos de asistencia sanitaria portátiles
  5. Dispositivos IoT: Sensores inteligentes, módulos inalámbricos y medición de energía

Con su combinación de características analógicas, digitales y de comunicación, el STM8S105K4 permite a los diseñadores crear sistemas embebidos eficientes, versátiles y rentables en diversas industrias.

Crear un IAR Project para STM8S105K4

En este ejemplo, crearemos un proyecto IAR para encender el LED utilizando el microcontrolador STM8S105K4.

Herramientas Requeridas

Componentes de Hardware:

  • Microcontrolador STM8S105K4
  • Depurador y Programador ST-LINK/V2
  • Placa de Desarrollo STM8S105K4 (opcional)
  • LED y Resistencia (1KΩ)
  • Placa de pruebas y cables puente

Herramientas de Software:

  • IAR Embedded Workbench para STM8
  • ST Visual Programmer (STVP)

Pasos para Crear el Proyecto

Crea Carpeta de Proyecto:

    • Crea una carpeta llamada test, y dentro de ella, crea otra carpeta llamada user.

Abre IAR Embedded Workbench:

    • Abre IAR para STM8 (versión 9.40.2).

Crea un Nuevo Proyecto:

    • Ve a Proyecto -> Crear Nuevo Proyecto.
    • En la ventana de diálogo, selecciona Serie STM8 -> Proyecto vacío, y haz clic en Aceptar.
    • Guarda el archivo .ewp en la carpeta test/user y nómbralo test.
Create a new project on IAR Embedded Workbench IDE
Create a new project on IAR Embedded Workbench IDE

Añade Grupo de Proyecto:

    • Dirígete al menú y haz clic en Proyecto -> Añadir Grupo.
    • Nombra el grupo user, y haz clic en Aceptar.
Add Project Group for STM8S105K4
Add Project Group for STM8S105K4

Crea un Archivo Principal:

    • Ve a Archivo -> Nuevo -> Archivo, luego guárdalo como main.c.
    • Añade main.c al grupo user.
Create a main.c file and add it to the user group
Create a main.c file and add it to the user group

Configurando el Entorno IAR

Opciones del Proyecto:

    • Seleccione Proyecto -> Opciones.

Seleccione el Dispositivo de Destino:

  • En Opciones Generales -> Destino -> Dispositivo, seleccione STM8S105K4 (o su modelo de dispositivo específico).
Set target device STM8S105K4 in project options
Set target device STM8S105K4 in project options

Configure Rutas de Inclusión:

    • En Compilador C/C++ -> Preprocesador, agregue la ruta "$PROJ_DIR$\\..\\user".
    • Esta sintaxis especifica la ruta del archivo de inclusión dentro del directorio del proyecto.
Configure include path in CC Compiler Preprocessor
Configure include path in CC++ Compiler - Preprocessor

Configure el Depurador:

    • En Depurador -> Configuración, establezca el Controlador a ST-LINK.
    • Haga clic en Aceptar para guardar la configuración.
Setup debugger driver as ST LINK
Setup debugger driver as ST-LINK

Añadir Código y Construir el Proyecto:

    • En main.c, introduzca el siguiente código, luego vaya a Proyecto -> Reconstruir Todo.
    • Si ve Número total de errores: 0 y Número total de advertencias: 0, el proyecto está configurado correctamente.
Add LED blinking code to main.c file for STM8S105K4 project
Add LED blinking code to main.c file for STM8S105K4 project

Incluir Archivo de Encabezado:

    • Asegúrese de que el archivo de encabezado IOSTM8S105K4.h esté disponible en el directorio de instalación de IAR:
      Software (E:) > IAR para STM8 > arm > inc > ST.
iostm8s105k4.h header file
iostm8s105k4.h header file

Escritura, Descarga y Depuración de Código

El siguiente código alterna un LED conectado al pin PE5 con un bucle de retardo para que el LED parpadee.

				
					#include "iostm8s105k4.h"  // Ensure this header file exists in your project

int main(void) {
    int i, j;  // Variables for delay loop

    // Configure PE5 as an output pin
    PE_DDR |= 0x20;   // Set bit 5 of PE_DDR (PE5) to 1 to configure as output
    PE_CR1 |= 0x20;   // Set bit 5 of PE_CR1 to 1 for push-pull mode
    PE_CR2 &= ~0x20;  // Set bit 5 of PE_CR2 to 0 for low speed

    // Main loop
    while (1) {
        PE_ODR ^= 0x20;  // Toggle PE5 (connected to LED)

        // Simple delay loop
        for (i = 0; i < 100; i++) {
            for (j = 0; j < 1000; j++) {
                // Empty loop for delay
            }
        }
    }
}

				
			

Conexiones de Hardware

  • PE5LEDResistor de 1kTierra

Después de cargar el código y iniciar el programa, debería ver el LED en PE5 parpadeando, confirmando que la configuración del proyecto está completa.

Conducir un Zumbador Pasivo por STM8S105K4

En este ejemplo, el pin PD4 del microcontrolador STM8S105K4 se utiliza para conducir un zumbador pasivo. La función del zumbador es una función alternativa de PD4. Al configurar el bit AFR7, podemos habilitar la función alternativa para PD4, lo que le permite conducir el zumbador.

Ejecución del Código

				
					/* Includes */
#include "user.h"

/* Function Prototypes */
void HalBeep_Init(BEEP_Frequency_TypeDef beep_fre);

/* Main Function */
void main(void)
{
    /* Clock, LED, and Timer Initialization */
    HalCLK_Config();
    HalLed_Init();
    HalTimer1_Init();
    // HalUART2_Init(); // Uncomment if UART is required
    
    /* Buzzer Initialization */
    HalBeep_Init(BEEP_FREQUENCY_2KHZ); // Initialize the buzzer at 2kHz
    BEEP_Cmd(ENABLE); // Enable the buzzer
    enableInterrupts(); // Enable interrupts

    while (1)
    {
        // Main loop - insert additional code here if needed
    }
}

/* Buzzer Initialization Function */
void HalBeep_Init(BEEP_Frequency_TypeDef beep_fre)
{
    BEEP_DeInit(); // Reset the BEEP registers to their default values
    BEEP_Init(beep_fre); // Initialize the BEEP with the specified frequency
}

				
			

Programación y Configuración de la Función del Zumbador PD4

  1. Cargar el Programa usando ST-Link y STVP Software:
    • Utilice el programador ST-Link y el software STVP oficial para cargar el archivo HEX en el microcontrolador.
  2. Pasos para la Carga y Configuración en STVP:
    • Paso 1: Abra el software STVP, seleccione la opción «PROGRAMA MEMORIA», vaya a Archivo -> Abrir y ubique el archivo HEX guardado.
    • Paso 2: Seleccione la opción «BYTE OPCIÓN» y modifique el bit AFR7 para habilitar la función alternativa para PD4.
    • Paso 3: En el menú del software, vaya a Programa -> Todas las pestañas para cargar tanto el programa como los bytes de opción.
Modify the AFR7 for PD4
Modify the AFR7 for PD4

Compartir en:

Scroll al inicio

Cotización