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.
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.
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.
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.
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.
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.
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.
#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).
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.
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.
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.
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.
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.




