Guía para principiantes de Riverdi STM32 Embedded Displays
¿Qué es STM32?
STM32 es la MCU de 32 bits elegida por nuestros ingenieros para controlar la serie Riverdi Embedded Display. En esta breve introducción explicaremos cómo este producto de STMicroelectronics es una tecnología de vanguardia. También ofrecemos consejos sobre dónde empezar a aprender a programar el STM32.
STM32 es una familia de microcontroladores de 32 bits basados en el núcleo ARM Cortex-M, desarrollados y fabricados por STMicroelectronics. Para que todo quede claro, empecemos por lo básico e introduzcamos la arquitectura del microcontrolador.
Principios básicos de los bloques de construcción de MCU
Cuando un ingeniero diseña un dispositivo HMI moderno con un sistema de información visual, como una pantalla táctil, empieza por elegir un microcontrolador. Habría que empezar por seleccionar la arquitectura del núcleo. Existen grandes y versátiles unidades de procesamiento ARM con arquitecturas de conjunto de instrucciones (RISC – Reduced Instruction Set Computer), denominadas núcleos de microprocesador. Los núcleos ARM están muy extendidos en un gran número de dispositivos de uso cotidiano, como los smartphones. Una de las dos series principales de núcleos ARM, denominada Cortex-A, se utiliza en dispositivos de consumo, como los ordenadores monoplaca (SBC) Raspberry Pi o los smartphones.
ARM Cortex-M
La segunda parte de la familia de núcleos ARM, conocida como Cortex-M, está pensada para aplicaciones industriales. Esta es la serie de núcleos ARM que interesará a los diseñadores mencionados. Por eso es el bloque de construcción seleccionado por STMicroelectronics para crear los MCU STM32. La serie basada en Cortex-M dispone de varios tipos de núcleos con diferentes prestaciones y características. Por ejemplo, hay un M0 (el núcleo de bajo rendimiento más barato), el M3 (núcleo de rendimiento medio), M4 (un núcleo eficiente con soporte adicional de FPU o DSP) y el núcleo M7, el más nuevo y potente.
¿Por qué un núcleo no es la MCU?
Lo importante es que las unidades ARM se venden como licencias de núcleo IP, no como MCU reales, sino que se convierten en MCU más adelante en el proceso. El núcleo no hará su trabajo por sí solo. Necesita cierto apoyo, es decir, de la memoria externa y de interfaces externas. STMicroelectronics es la empresa especializada en la fabricación de MCU mediante la unión de componentes para formar el microcontrolador final.
¿Por qué STMicroelectronics?
¿Qué hace que STMicroelectronics destaque en el mercado de las MCU? Hay varias razones, pero las principales son:
- Procesado digital de señales en tiempo real de alto rendimiento
- Funcionamiento de bajo consumo
- Conectividad versátil
- Facilidad de desarrollo e integración
- Herramientas de programación útiles y bibliotecas gratuitas
Estas características hacen que los microcontroladores STM32 sean ampliamente reconocidos y utilizados en diversas aplicaciones. Estas son algunas de las razones por las que los ingenieros de Riverdi han decidido utilizar el STM32 como núcleo de nuestros STM32 Embedded Displays.
Amplia cartera de productos de STMicroelectronics
Gracias a la amplia gama de MCU, es muy fácil encontrar el modelo adecuado para sus aplicaciones. Según la versión, tienen un bajo consumo con recursos bastante limitados, o modelos con una velocidad de cálculo muy alta y muchos periféricos.
STMicroelectronics ofrece muchos grupos de productos basados en soluciones, recursos gratuitos y prototipos. Apoyar el proceso de creación de prototipos es una filosofía compartida por Riverdi. Creemos que la creación rápida y sencilla de prototipos es crucial en el proceso de diseño, por lo que animamos a probar nuestras muestras. Lo que también ayuda en el proceso de ingeniería son los detalles de diseño, como la compatibilidad de pines, para poder sustituir las MCU y encontrar la más adecuada.
¿Cómo se agrupan las MCU STM32?
En la gama de MCU de ST hay varias series agrupadas según sus características.
Unidades de alto rendimiento: potentes STM32 diseñadas para transferir enormes cantidades de datos con altas velocidades de reloj del núcleo. Entre ellos están el F4 con núcleo M4 y FPU, a veces mejorado con controladores de pantalla o soporte MIPI, el F7 con el último M7 de un solo núcleo, y el buque insignia H7 con doble núcleo (M7+M4). Esta potente unidad(STM32H757XIH6) es utilizada por Riverdi.
Unidades principales: microcontroladores de uso general. Varían desde los MCU básicos de la serie F0, los F1 de alto rendimiento pero arquitectura sencilla, hasta los G4 que ofrecen una amplia gama de periféricos analógicos.
Unidades de potencia ultrabaja: diseñadas para el menor consumo posible. Entre ellos se incluyen el L0 de 14 pines, el L4 con FPU adicional, el L5 con aceleración gráfica mejorada.
Unidades inalámbricas: incorporan soporte para comunicaciones inalámbricas, como Bluetooth o RF 2,4 GHz.
Eche un vistazo a la serie mencionada (imagen facilitada por STMicroelectronics):
Para obtener más información sobre las distintas características de las MCU STM32, visite el sitio web de STMicroelectronics (imagen facilitada por STMicroelectronics)
Cómo empezar a programar el STM32 Embedded Displays de Riverdi ?
Aquí están los fundamentos de lo que un recién llegado al ecosistema STM32 necesita saber sobre el diseño de la STM32 Embedded Displays.
¿Qué hardware para STM32?
No es recomendable empezar con fabricantes de hardware desconocidos, especialmente, si eres nuevo en la programación embebida. En su lugar, opte por empresas bien establecidas.
La serie Riverdi STM32 es ideal para empezar y aprender, porque ofrecemos documentación completa y hay demos gratuitas, preajustes y bibliotecas para poner las manos en ejemplos de trabajo de código.
También puedes probar las placas oficiales de ST (como Nucleo o Discovery series).
¿Qué documentación para STM32?
La documentación es, en la mayoría de los casos, literatura técnica preparada por el fabricante para guiarle a través de la complejidad de los microcontroladores. Esos documentos pueden ayudarte a aprender todas las características del MCU:
Guía de iniciación, que es muy útil para los recién llegados,
Datasheet, que es una descripción técnica exhaustiva de todas las características de la MCU,
Manual del usuario (o Guía), que ofrece instrucciones detalladas y parámetros con ayuda para resolver los problemas más comunes,
Nota de aplicación, que ofrece detalles más específicos sobre el uso de un componente en una aplicación concreta.
Reference Manual, que ofrece una visión más detallada de la arquitectura de las MCU,
Manual de programación, que proporciona la información necesaria para el desarrollo de software a nivel de aplicación y de sistema.
Se recomienda que, antes de utilizar una MCU específica en su proyecto, eche al menos un breve vistazo a la hoja de datos. Deberías comprobar los periféricos, los GPIOs y otros parámetros básicos, como el reloj. El objetivo es asegurarse de que el hardware proporcionado cumple los requisitos de su proyecto.
¿Qué lenguaje de programación para STM32?
El lenguaje de programación recomendado en STM32 es C. En caso de escribir código directamente para microcontroladores – C es la mejor opción. También es la base sobre la que puede ampliar sus conocimientos sobre MCU utilizando otros lenguajes de programación.
¿Qué framework para STM32?
Para que tu trabajo sea fluido mientras programas los STM32 necesitarás el framework adecuado. Framework es una plataforma en la que se escribe código y se desarrolla el proyecto. Los marcos de software pueden incluir programas de apoyo, compiladores, bibliotecas de código, conjuntos de herramientas e interfaces de programación de aplicaciones (API). ¿Cuáles son los marcos disponibles?
Existe el recomendado, que es el ecosistema de STMicroelectronics. Se compone de dos niveles complementarios: las bibliotecas de capa baja (LL) y la capa de abstracción de hardware (HAL). Las bibliotecas de bajo nivel son muy adecuadas para optimizar el hardware y funcionar con recursos limitados, pero requieren un poco de conocimientos técnicos (que se adquieren a través de la documentación). HAL, que es una biblioteca de alto nivel, podría funcionar mejor para los recién llegados. Ambos pueden manejarse con el software gratuito STM32CubeIDE.
Existe Mbed by ARM, el proyecto de colaboración en línea para dispositivos conectados a Internet basados en ARM Cortex-M. Utiliza los lenguajes de programación C y C++, lo que es una buena noticia para quienes los dominen. Una gran solución para dispositivos IoT. mBed OS es bastante parecido a Arduino. Hablando de Arduino, hay varias placas que soportan directamente STM32. Uno de ellos es el proyecto STM32Duino basado en placas Nucleo.. Ambos marcos son todo acerca de la simplicidad, pero el inconveniente es que hay características limitadas STM32 en términos de control de hardware, y la calidad de las bibliotecas podría no estar garantizada.
Por último, pero no por ello menos importante, está el lenguaje Pure C, que garantiza resultados bien optimizados en términos de rendimiento. C puro utilizará menos memoria y seguirá siendo superrápido. Pero esas ventajas sólo se consiguen con conocimiento y experiencia, por lo que no se recomienda para principiantes.
¿Qué herramientas de programación para STM32?
Si elige el enfoque recomendado del ecosistema ST, podrá empezar a utilizar gratuitamente una serie de herramientas de software proporcionadas por STMicroelectronics. Existen herramientas de desarrollo, herramientas de evaluación, entorno de desarrollo, software integrado, etc. Estas son algunas de las principales herramientas que debe conocer:
STM32CubeMX – una herramienta gráfica para la configuración de MCU y la generación de código de inicialización;
STM32CubeIDE – herramienta todo en uno para el desarrollo avanzado en C/C++ en el ecosistema STM32: selector de microcontroladores, configurador de periféricos, generador de código, compilador, depurador y programador;
STM32CubeProgrammer – herramienta todo en uno para la programación de productos STM32;
TouchGFX Designer – marco de software gráfico avanzado para crear GUI en un método WYSIWYG;
STM32CubeMonitor – herramienta de monitorización en tiempo de ejecución para ajustar y diagnosticar aplicaciones STM32 basadas en la visualización de variables en tiempo real.
Un breve vistazo a TouchGFX Designer
TouchGFX Designer es un diseñador GUI optimizado para los productos Riverdi que se ejecutan en microcontroladores STM32 – proyectos de demostración Riverdi y presets están incrustados en la biblioteca TouchGFX. La herramienta TouchGFX es una solución de marco de software avanzada para crear magníficas GUI utilizando el método WYSIWYG, que hace que el diseño de GUI sea fácil de usar. La asociación de Riverdi con STMicroelectronics puede reducir el tiempo y el coste de creación de prototipos y mejorar la eficacia de la comercialización del proyecto.
¿Dónde obtener más información sobre las pantallas integradas STM32?
Al seleccionar el método de aprendizaje, siempre hay que tener en cuenta cuáles son los objetivos. ¿Es competencia en la creación de prototipos, en la programación, en el diseño de interfaces gráficas de usuario? ¿Es el conocimiento general de cómo aplicar el STM32 Embedded Displays en el dispositivo final? ¿Es curiosidad de aficionado? Plantearse objetivos le ayudará a conseguirlos rápidamente. Otras cuestiones se refieren a los recursos disponibles (como el tiempo asignado, el dinero), las pautas de aprendizaje y las preferencias individuales. Afortunadamente, cada vez hay más fuentes para adquirir conocimientos sobre STM32.
Vídeos
Los tutoriales en vídeo son una buena forma de aprender sobre STM32 y la mayoría de ellos se pueden encontrar en YouTube.
En primer lugar, suscríbase al boletín de la Universidad Riverdi y al canal de YouTube de Riverdi. Compartimos nuestros conocimientos y experiencia para ayudarle a sacar el máximo partido de sus pantallas embebidas Riverdi con STM32. Ofrecemos guías de inicio, tutoriales específicos, vídeos de unboxing y mucho más.
En segundo lugar, sigue el canal oficial de STMicroelectronics. ST organiza seminarios web en directo y completos MOOC (Massive Open Online Courses), que son un recurso inestimable para aprender a programar MCU.
Blogs
Los blogs son estupendos para resolver problemas concretos. La mayoría de ellos son gratuitos, pero como los conocimientos que hay se publican tal cual, a diario, lo que hay que hacer es buscar la solución exacta. También puede mantenerse al día y seguir las próximas publicaciones suscribiéndose a un boletín.
Riverdi ofrece entradas de blog constantemente actualizadas, guías de iniciación e intercambio de conocimientos a través de una serie de artículos y vídeos de la Universidad Riverdi.
También puede probar: Blog de Controllerstech: https://controllerstech.com/
Cursos
Los cursos, tanto en línea como fuera de línea (estos últimos bastante infrecuentes hoy en día), ofrecen un proceso de aprendizaje completo en varios niveles de competencia. Sin embargo, tenga en cuenta que se trata de un compromiso a largo plazo y que, en la mayoría de los casos, tendrá que pagar para poder participar. Otro enfoque que vale la pena considerar es obtener un curso gratuito en línea de programación en C, ya que siempre será útil en el desarrollo de STM32.
Wikis y guías
Cuando se buscan conocimientos en profundidad, siempre hay que remitirse a los fabricantes, como Riverdi o STMicroelectronics. Riverdi ofrece documentación completa para cada pantalla, que le ayudará a navegar a través de nuestros STM32 Embedded Displays. También compartimos conocimientos a través de la Universidad Riverdi y la serie Display 101. Lo que también podrías intentar es sumergirte en las Guías y Tutoriales publicados por STMicroelectronics, como su vasto Wiki dedicado a los MCUs STM32.