- Selección de las herramientas de desarrollo de hardware y software
- STM8S103F3P6 Desarrollo
- Programador STM8S103F3P6
- STM8S103F3P6 IDE y compilador
- STM8S con Arduino usando Sduino
- Descarga del software requerido
- Configuración del compilador STVD y Cosmic C
- Biblioteca de periféricos estándar para STM8S103F3P6
- Compilando el primer programa
- Carga del código de STVD a la placa de desarrollo STM8S usando ST-Link V2
El STM8 es una serie de microcontroladores de 8 bits de STMicroelectronics que se ha convertido en una opción común de microcontroladores para el desarrollo de productos sensibles a los costos. Anteriormente he trabajado con AVR, PIC y algunos otros microcontroladores ARM Cortex, pero seguramente en algunas aplicaciones, se vuelven excesivos y aumentan considerablemente el costo de la lista de materiales. Recientemente, después de derribar algunos productos chinos baratos, descubrí que la mayoría de ellos tenían un microcontrolador STM8 en su interior. El IC no solo es barato, sino que también está repleto de muchas características y opciones, lo que lo hace adecuado para su uso en muchas aplicaciones diferentes. Por ejemplo, el STM8S La serie de controladores (que aprenderemos en esta serie de tutoriales) es un controlador de propósito general, pero hay otras series como el STM8A para diseños automotrices y STM8L para diseños con batería de bajo consumo que amplían la aplicación de estos controladores.
En esta serie de tutoriales, aprenderemos cómo programar los microcontroladores STM8S, más específicamente el STM8S103F3P6. La razón para comenzar con este número de pieza específico es solo por su factor de precio a rendimiento. ¡¡Me gusta!! Míralo solo por 0.25 $ (aproximadamente 20 rupias) obtenemos un microcontrolador de 8 bits con oscilador interno de 16Mhz, Flash de 8kB, ADC de 10 bits, UART, SPI e I2C. ¿Quién no estaría intrigado? Además, el STM8S103F3P6 es muy popular y, por lo tanto, como principiante, encontrará suficiente apoyo si necesita ayuda fuera de los tutoriales. A partir de esto, tendremos una secuencia de tutoriales, similar a los Tutoriales de programación de PIC, donde aprenderemos a programar este controlador desde un parpadeo básico hasta varias interfaces de pantalla y sensor. También puede consultar el tutorial y los proyectos STM32F103C8 si está interesado en microcontroladores STM de 32 bits.
Selección de las herramientas de desarrollo de hardware y software
Ahora que hemos decidido el microcontrolador, tendremos que seleccionar herramientas de desarrollo de hardware y software para comenzar nuestro proceso de aprendizaje. Hay muchas opciones, aquí he seleccionado las que son de uso gratuito y fácilmente disponibles para todos.
STM8S103F3P6 Desarrollo
La placa de desarrollo oficial para el microcontrolador de 8 bits de ST se llama kit STM8 Discovery, pero usaremos otra placa de desarrollo de bajo costo que puede encontrar fácilmente con un proveedor local o en la tienda en línea. La imagen de la placa de desarrollo STM8S103F3P6 que usaremos en este tutorial se muestra a continuación.
La placa solo consta de los componentes mínimos necesarios para comenzar el desarrollo. Es compatible con la placa de pruebas y adecuado para aplicaciones compactas. El diagrama de circuito interno de la placa de desarrollo se muestra a continuación.
Al mirar más de cerca, notará que, además del controlador STM8S103F3p6, tenemos un botón de reinicio para reiniciar el controlador. Un led de encendido y un led de prueba conectados a PB5 (puerto B pin 5) y un regulador de voltaje AMS1117 que convierte los 5V de un puerto USB a 3.3V para el controlador. El controlador también se puede hacer funcionar con 5 V si es necesario. Las diferentes partes del controlador están marcadas a continuación. También tenemos 4 pines programadores, a saber, 3.3V, GND, SWIM y NRST, que se pueden usar para programar y depurar fácilmente nuestro microcontrolador.
Programador STM8S103F3P6
Para programar nuestro controlador, usaremos el ST-LINK v2, que es barato y está fácilmente disponible en línea. Hay muchas variantes (metal, plástico, dorado, rosa, tablero desnudo) de este tablero ST-LINK v2 y todos tienen el mismo propósito. El mío se muestra a continuación, pero puede usar cualquier tipo de programador ST-LINK, el pinout será diferente, así que asegúrese de leer correctamente los pinouts en la carcasa. También hay ST-LINK V3 de ST-Microelectronics mismo que se puede utilizar para una depuración seria. No lo usaremos por ahora ya que es un poco caro, lo guardaremos para el futuro.
STM8S103F3P6 IDE y compilador
Seleccionar el IDE y el compilador adecuados para STM8S103F3P6 es desconcertante, simplemente porque hay muchas opciones para elegir. Las herramientas oficiales que están disponibles para el microcontrolador STM8 se muestran en la siguiente imagen.
En el lado de la configuración, tenemos el STM8CubeMx, probé el software y fue una completa decepción para mí. A diferencia del STM32Cube, el STM8Cube no puede generar código automáticamente. Solo puede generar mapeo de pines con fines de visualización y puede ser útil si está transfiriendo su código de un controlador a otro. Aparte de eso, no lo usaría. Entonces, en esta serie de tutoriales, no usaremos esto.
Para el IDE y el compilador, tenemos muchas opciones para elegir. Las dos opciones principales para IDE son IAR workbench y ST Visual Develop (STVD), ambos software se sienten como si fueran de los años 90, pero después de un tiempo jugando con él, descubrí que STVD es una buena opción solo porque es totalmente gratuito. De manera similar, para el compilador, usaremos el compilador Cosmic C, nuevamente solo porque es totalmente gratuito. Otra razón para elegir este IDE y compilador es que, una vez que nos familiaricemos con el entorno, debería ser fácil utilizar cualquier otro microcontrolador de 8 bits de ST sin mucho esfuerzo. Más adelante en este artículo, veremos cómo instalar y configurar STVD con el compilador Cosmic C.
Para flashear, usaremos ST Visual Programmer (STVP), esta herramienta se instalará automáticamente cuando instalemos STVD. Se integrará en el propio IDE, ayudándonos a programar y depurar rápidamente. El software final será STMStudio, que es un software de monitorización STM8. El software puede ayudar con la depuración en tiempo real de STM8 y tiene algunas características interesantes como monitorear el valor de la variable, trazar gráficos, etc. No he experimentado lo suficiente con este software. Y, al menos para los primeros tutoriales, no usaremos este software ya que no necesitaremos grandes requisitos de depuración.
Biblioteca de periféricos estándar STM8S: ST Microelectronics proporciona un conjunto de bibliotecas para facilitar el desarrollo de código para los microcontroladores STM8S; esta biblioteca se denomina “ Biblioteca de periféricos estándar ” o SPL en breve. La biblioteca es genial, excepto que está escrita teniendo en cuenta todos los controladores posibles de la familia STM8S / A de 8 bits y no solo el controlador STM8S103F3P6 que usaremos. Por lo tanto, tenemos que hacer algunos ajustes aquí y allá para que funcione (que compartiré más adelante). Pero aún así, creo que vale la pena intentarlo porque puede hacer que el desarrollo sea muy rápido y, por lo tanto, lo usaremos en nuestro tutorial.
Si no desea utilizar la biblioteca, debe acceder directamente a los registros del controlador o realizar la programación de ensamblaje completo. Ambos son divertidos, siempre que tenga tiempo para aprenderlos y usarlos. Mi idea es usar la biblioteca SPL siempre que funcione bien y luego también trabajar a nivel de registro y ensamblaje si es necesario. ¡Intentemos no reinventar la rueda!
STM8S con Arduino usando Sduino
La discusión de las opciones de software nunca estará completa si no menciono el soporte de Arduino IDE STM8S. Sí, la misma placa STM8S103F3P6 se puede programar directamente desde Arduino IDE usando Sduino, gracias a Michael Mayer. Pero, el proyecto aún se encuentra en la etapa de desarrollo y probablemente tomaría algo de tiempo y el apoyo de la comunidad para que Sduino brinde soporte completo a la plataforma. Sin embargo, a los pocos minutos de jugar con Sduino, me empezó a gustar y, por lo tanto, decidí hacer un artículo aparte sobre cómo programar el microcontrolador STM8S con Arduino. Vincularé el artículo aquí cuando esté listo. Ese artículo discutirá por qué y por qué no debe usar el IDE de Arduino para programar sus microcontroladores STM8S.
Entonces, estas son mis opciones de software y hardware, avíseme en la sección de comentarios si cree que algún otro software hubiera sido una mejor opción y por qué. También me gustaría explorar otras opciones.
Descarga del software requerido
Ahora que hemos decidido qué software usaremos para este tutorial, sigamos y descarguemos usando el siguiente enlace. Todo el software se puede descargar y usar de forma gratuita, solo tendrá que registrar una cuenta gratuita en ST y Cosmic si aún no lo ha hecho.
- Desarrollo visual ST (STVD)
- Compilador Cosmic C
- Biblioteca de periféricos estándar
- STM8Cube Mx (opcional)
- STMStudio para STM8 (opcional)
Configuración del compilador STVD y Cosmic C
Después de haber descargado ambos software, simplemente siga las instrucciones en pantalla para instalarlos. Recomendaría dejarlos en los directorios predeterminados para evitar confusiones posteriores. El STVD IDE se instalará sin ningún esfuerzo. Para el compilador Cosmic C, debe obtener una clave de licencia gratuita durante los procesos de instalación. Solo debes proporcionar información de la empresa con ID de correo electrónico, si eres estudiante, solo mencionalo. Los procesos para obtener la clave de licencia son instantáneos y automáticos, aunque las instrucciones de configuración dicen que puede llevar uno o dos días, recibí la clave de licencia automáticamente en mi ID de correo electrónico tan pronto como la envié, solo asegúrese de comprobar el SPAM. Mi correo electrónico de confirmación se muestra a continuación.
Según las instrucciones del correo electrónico, simplemente copie el archivo license.lic y péguelo en la subcarpeta "licencia" en su carpeta de instalación. Para mí, la ruta era "C: \ Archivos de programa (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License" . Simplemente pegue el archivo en la ubicación que se muestra a continuación.
Biblioteca de periféricos estándar para STM8S103F3P6
Como se dijo anteriormente, ST Microelectronics proporciona bibliotecas llamadas SPL que se pueden usar para todos los microcontroladores STM8S / A de 8 bits. Puede descargar el SPL original de ST Microelectronics y realizar los cambios necesarios o descargar mis bibliotecas STM8S103F3P6 SPL y usarlas como tales. Recomendaría el más tarde.
SPL original de ST Microelectronics
STM8S103F3P6 SPL
Mientras esté allí, asegúrese de descargar el manual de usuario de SPL, que será muy útil al programar el controlador.
Compilando el primer programa
Ahora que todo está listo, intentemos compilar nuestro primer programa para comprobar si el IDE, el compilador y la biblioteca funcionan como deberían. También puede consultar el video en la parte inferior de la página para obtener instrucciones detalladas.
Comience abriendo STVD y seleccione Archivo -> WorkSpace, en la ventana emergente, seleccione "Nuevo espacio de trabajo" e ingrese el nombre del proyecto y la ruta donde se debe guardar el programa. Estoy nombrando mi programa BareMinimum y guardándolo en una carpeta en el escritorio. Haga clic en Aceptar y obtendrá el cuadro de diálogo Nuevo proyecto como se muestra a continuación.
Estoy nombrando el proyecto como bareminimum nuevamente y debajo de la cadena de herramientas tenemos que especificar la raíz de la cadena de herramientas a la ruta donde está instalado el compilador STM8 Cosmic. La dirección de ruta predeterminada es "C: \ Archivos de programa (x86) COSMIC \ FSE_Compilers \ CXSTM8" . Después de eso, simplemente haga clic en Aceptar para obtener la ventana "Selección de MCU".
Busque STM8S103F3P, selecciónelo y haga clic en Aceptar. Esto abrirá un nuevo proyecto para STM8S103F3P en STVD, las ventanas deberían verse así cuando termine.
Haga clic con el botón derecho en "archivo de origen" y seleccione "Agregar archivos a la carpeta" para incluir todos los archivos c de nuestra biblioteca SPL, de manera similar, haga clic con el botón derecho en Incluir archivos para incluir todos los archivos de encabezado. Si tiene alguna pregunta, puede consultar el video a continuación. Una vez que se hayan agregado todos los archivos, haga clic en Compilar -> reconstruir todos y luego en Compilar para verificar si el compilador y SPL están funcionando como se esperaba. Si todo va bien, debería ver la siguiente pantalla con el resultado de compilación 0 error y 0 advertencia.
Una vez hecho esto, ahora podemos estar seguros de que todas nuestras bibliotecas SPL funcionan con el compilador Cosmic y STVD. Este es el procedimiento estándar que seguiremos para cada nuevo proyecto. También puede incluir solo el encabezado y los archivos de origen necesarios para que el proyecto reduzca el tiempo de compilación si es necesario.
Carga del código de STVD a la placa de desarrollo STM8S usando ST-Link V2
Conecte el ST-Link V2 con la placa de desarrollo como se muestra a continuación.
Las conexiones son bastante sencillas y la mejor parte es que no necesita componentes externos. Mi configuración de hardware para la programación se muestra a continuación, acabo de usar los cables del cabezal hembra para hacer mi conexión. Sin embargo, tenga en cuenta que el pinout de su ST-Link puede diferir del mío, asegúrese de seguir el pinout del dispositivo antes de realizar las conexiones.
Realice la conexión y conecte el dispositivo a su computadora, la instalación del controlador debería comenzar automáticamente. Puede utilizar el administrador de dispositivos para asegurarse de que su computadora haya descubierto ST-LINK V2 correctamente. También notará que el LED de prueba en la placa parpadea si es la primera vez que enciende la placa. Tan pronto como hayamos compilado con éxito el código en STVD, obtendremos un archivo de extensión "S19" en el directorio de depuración de la carpeta del proyecto. Mi archivo S19 se muestra a continuación.
Este S19 es como el archivo hexadecimal que debe cargarse en el controlador. Para cargar el programa, abra ST Visual Programmer (STVP) que debería haberse instalado junto con STVD. Luego, en la ventana de configuración, seleccione como se muestra en la imagen de abajo y haga clic en Aceptar.
Luego haga clic en Archivo-> Abrir y navegue hasta el archivo S19 que mostramos anteriormente. Luego, para actualizar el dispositivo, siga Programa -> Pestaña actual . Si el destello fue exitoso, debería ver el siguiente resultado.
De forma predeterminada, cuando compra el STM8S, tendrá un programa de parpadeo que hará parpadear el LED de prueba. Ahora, después de cargar este código en blanco, el LED ya no parpadeará.
Importante: Descubrí que mi ST-Link no reiniciaba la placa automáticamente después de la programación. Tuve que desconectarlo y volver a conectarlo para verificar la salida de mi programa. No estoy seguro de si esto es un problema para todos, hágamelo saber en la sección de comentarios. Además, vea el video en la parte inferior que explica la solución a esto.
Con esto, terminemos este tutorial, hemos aprendido los conceptos básicos del hardware, hemos configurado el entorno de desarrollo y hemos aprendido a compilar y cargar código. Ahora estamos listos para progresar y lo usaremos en todos nuestros próximos tutoriales. ¡Si tiene alguna pregunta, por favor publíquela en nuestros foros y esté atento para más!