El microcontrolador STM8S105C6 es una solución robusta, confiable y rentable para diseños de sistemas embebidos, que ofrece un excelente rendimiento, flexibilidad en el soporte de periféricos y bajo consumo de energía. Ya sea para aplicaciones industriales, automotrices o de electrónica de consumo, este microcontrolador proporciona todas las características esenciales necesarias para desarrollar productos embebidos de alta calidad. En este artículo, presentaremos el microcontrolador STM8S105C6 y cómo programarlo a través de UART.
Introducción al STM8S105C6
El STM8S105C6 es un miembro de la familia de microcontroladores STM8S, fabricado por STMicroelectronics. Está basado en la arquitectura del núcleo STM8 y está diseñado para una amplia gama de aplicaciones en sistemas embebidos, como automoción, control industrial, automatización del hogar y electrónica de consumo. El STM8S105C6 combina alto rendimiento, bajo consumo de energía y una amplia variedad de periféricos, lo que lo convierte en una solución versátil y rentable para muchas aplicaciones embebidas.
Características Clave del STM8S105C6
- Núcleo: Núcleo STM8 de 8 bits con alta capacidad de procesamiento.
- Velocidad de Reloj: El microcontrolador funciona a una frecuencia máxima de 16 MHz.
- Memoria:
- Memoria Flash: 32KB de memoria Flash programable en el sistema.
- RAM: 2KB de SRAM para almacenamiento de datos.
- Periféricos:
- Puertos de E/S: 16 pines de E/S de propósito general.
- Temporizadores: 2 temporizadores de propósito general de 16 bits, 1 temporizador de vigilancia.
- Interfaces de Comunicación: UART (Transceptor Asíncrono Universal) para comunicación serial, SPI (Interfaz Periférica Serial), I2C (Circuito Integrado Interconectado).
- Características Analógicas: 1 ADC (Convertidor Analógico a Digital) con 8 canales, resolución de 10 bits.
- PWM (Modulación de Ancho de Pulso): Capaz de generar señales PWM para controlar motores o LEDs.
- Rango de Voltaje: Funciona dentro de un rango de voltaje de 2.95V a 5.5V, lo que lo hace adecuado para varias configuraciones de fuente de alimentación.
- Bajo Consumo de Energía: Optimizado para un funcionamiento de baja potencia, con varios modos de ahorro de energía como Sueño, Espera y Detención.
- Herramientas de Desarrollo: El STM8S105C6 es compatible con una variedad de herramientas de desarrollo, incluyendo STVD (Entorno de Desarrollo STM8) de STMicroelectronics, IAR Embedded Workbench y otros IDE (Entornos de Desarrollo Integrados) de terceros.
- Opciones de Paquete: El STM8S105C6 está disponible en un paquete LQFP (Paquete Plano Cuadrado de Perfil Bajo) de 32 pines, lo que lo hace compacto y fácil de integrar en una amplia gama de diseños.
Especificaciones del STM8S105C6
| Feature | Specification |
|---|---|
| Core | 8-bit STM8 core |
| Clock Speed | Up to 16 MHz |
| Flash Memory | 32KB (in-system programmable) |
| SRAM | 2KB |
| Voltage Range | 2.95V to 5.5V |
| Timers | 2x 16-bit general-purpose timers |
| Watchdog Timer | Yes |
| Communication Interfaces | UART, SPI, I2C |
| Analog Features | 8-channel, 10-bit ADC |
| PWM Channels | Yes |
| Operating Temperature Range | -40°C to 125°C |
| Package Type | 32-pin LQFP |
Diagrama de Pines del STM8S105C6

Diagrama de Bloques del STM8S105C6

Cómo Programar STM8 a través de UART
Además de usar el programador STLINK, el microcontrolador STM8S105C6 se puede programar a través de su interfaz UART con el software Flash Loader Demonstrator para escribir programas compilados en el microcontrolador.
Herramientas Requeridas:
- STVD-STM8 (Versión: 42.0.0)
- IAR Embedded Workbench IDE (Versión: 9.40.2)
- Flash Loader Demonstrator (Versión: 2.8.0)
- Placa de Desarrollo STM8S105C6
Para una explicación detallada del proceso de programación, lo hemos dividido en tres pasos:
1. Habilitando el BootLoader
Antes de programar a través de UART, la opción «BootLoader Enable» debe activarse en el chip. Por defecto, esto está habilitado en los chips nuevos. Sin embargo, una vez que se carga un programa, se desactiva. Hay dos métodos para habilitar el BootLoader:
- Usando el ST LINK y el software STVP (ST Visual Programmer) para modificar el OPTION BYTE del chip.
- Modificando el OPTION BYTE a través de un programa.
Usando ST LINK para Modificar OPTION BYTE
Primero, conecte el ST LINK, la placa de desarrollo STM8 y la computadora, y abra el software STVP (ST Visual Programmer). STVP se instala automáticamente cuando se configura el entorno de desarrollo STVD. Es una herramienta de programación gráfica completa que se utiliza para programar la memoria flash de los microcontroladores ST, lo que le permite leer, editar y escribir en la FLASH, EEPROM y OPTION BYTE del STM8.

Luego, modifique el OPTION BYTE para habilitar el BootLoader. En el software STVP, vaya a la pestaña OPTION BYTE y ubique la opción BootLoader, generalmente en la parte inferior de la lista OPTION BYTE. Haga clic en «BootLoader Disable» y seleccione «BootLoader Enable» del menú desplegable. Después de configurar esto, haga clic en «Program Current Tab» o «Program All Tabs» en la barra de herramientas para escribir el OPTION BYTE en el microcontrolador STM8, habilitando así el BootLoader.
Usando un Programa para Modificar OPTION BYTE
Para habilitar el BootLoader a través de un programa, compile el siguiente código y grábelo en el STM8 usando 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. Configuración del Entorno de Desarrollo
Entorno de Desarrollo STVD
Después de compilar con el compilador Cosmic en STVD, generará un archivo *.s19 por defecto. Este archivo se puede cargar directamente en el microcontrolador STM8 usando el software Flash Loader Demonstrator. El software también admite la carga de archivos *.hex y *.bin. A continuación, se explica cómo configurar STVD para generar estos tres formatos.
- Abra el archivo del proyecto STVD y vaya a Propiedades del Proyecto.
- Seleccione la pestaña Post-Build como se muestra a continuación.

En el cuadro de texto Comandos, agregue los siguientes comandos después del existente:
chex -fi -o$(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8
chex -o$(OutputPath)$(TargetSName).bin $(OutputPath)$(TargetSName).sm8
Haga clic en Aceptar para confirmar. Después de compilar, se generarán tres formatos de archivo diferentes.
Entorno de Desarrollo IAR
El entorno de desarrollo IAR no utiliza el compilador Cosmic, por lo que no puede generar archivos *.s19. Sin embargo, puede generar los otros dos formatos. Para configurar esto en IAR:
- Abra el archivo del proyecto IAR y vaya a Propiedades del Proyecto.
- Seleccione la pestaña Convertidor de Salida.

Luego, marque la opción Generar salida adicional. En el menú desplegable Formato de Salida, seleccione Intel extendido para generar un archivo *.hex o Binario para generar un archivo *.bin. Seleccione la opción Anular predeterminado e ingrese el nombre de archivo y el formato deseados en el cuadro de texto. Haga clic en Aceptar para confirmar. Después de compilar, se generará el formato de archivo elegido.
3. Programación con Flash Loader Demonstrator
Flash Loader Demonstrator es una herramienta de descarga ISP de ST, que se puede utilizar para programar microcontroladores STM32 o STM8 a través de UART. Admite la carga de archivos *.s19, *.hex y *.bin. A continuación, se explica cómo utilizarlo para programar el microcontrolador STM8:
- Conecte la placa de desarrollo STM8 a la computadora a través de UART e instale el software Flash Loader Demonstrator. Después de la instalación, abra el software y aparecerá la interfaz principal.
- Seleccione el puerto UART apropiado conectado a la placa de desarrollo STM8 en el menú desplegable Nombre del Puerto.
- En el menú desplegable Eco, seleccione Modo Eco para STM8S o Deshabilitar para STM8L.

Luego, reinicie la placa de desarrollo STM8 y haga clic rápidamente en el botón Siguiente. Debe hacer clic dentro de un segundo para asegurarse de que el Flash Loader Demonstrator pueda recibir datos del BootLoader del STM8. Si tiene éxito, el software pasará a la pantalla de selección del dispositivo STM8.
El tipo de dispositivo se determina por el chip STM8 y el tamaño de su FLASH interna. Para microcontroladores STM8, seleccione STM8_XXK del menú desplegable. Para STM8L, seleccione STM8L_XXK. Basado en el STM8S105C6 en nuestra placa de desarrollo, que tiene 32KB de FLASH interna, elija STM8_32K del menú desplegable.

Luego, haga clic en Siguiente, y el software le pedirá que seleccione el archivo que se va a cargar. En el cuadro Descargar desde archivo, busque la ruta del archivo del programa que se va a cargar. Haga clic en Siguiente, y el archivo se escribirá en la FLASH interna del microcontrolador STM8. Si la carga tiene éxito, el software mostrará el mensaje «Operación de descarga finalizada correctamente.»
Finalmente, haga clic en Cerrar para salir del software Flash Loader Demonstrator. Reinicie la placa de desarrollo STM8, y el microcontrolador ejecutará el programa de acuerdo con el flujo definido. Tenga en cuenta que el programa se copia en la memoria FLASH, y debe reiniciar el dispositivo para que el puntero salte al programa de usuario y comience la ejecución. Si desea que el programa se ejecute automáticamente después de la carga, marque la opción Saltar al programa de usuario.
Aplicaciones Típicas
- Automoción: Unidades de control, sensores y pantallas.
- Industrial: Control de procesos, sistemas de automatización y controladores de motores.
- Electrónica de Consumo: Dispositivos inteligentes, controles remotos y pequeños electrodomésticos.
- Automatización del Hogar: Sistemas de hogar inteligente, medidores de energía y sistemas de seguridad.




