Introducción a las placas de desarrollo STM32H7

Índice

A hand carefully holds a small STM32H7 development board connected with colorful jumper wires, with other electronic components blurred in the background and the title "Getting Started with STM32H7 Development Boards" overlaid.

La serie STM32H7 es una potencia en el mundo de los microcontroladores. Conocida por su alto rendimiento, es una de las favoritas de los desarrolladores.

Estos microcontroladores, diseñados por STMicroelectronics, líder en la industria de semiconductores, ofrecen velocidades de procesamiento impresionantes y funciones avanzadas.

Las placas de desarrollo STM32H7 son perfectas para proyectos que requieren rendimiento en tiempo real y alta potencia computacional. Son compatibles con una amplia gama de aplicaciones.

Tanto si eres ingeniero como aficionado, las placas STM32H7 te ofrecen las herramientas que necesitas. Son versátiles y se adaptan a diversos requisitos de proyecto.

En esta guía, exploraremos la serie STM32H7 en detalle. Desde sus características hasta su programación, aprenderá todo lo necesario para comenzar.

¿Qué es la serie de microcontroladores STM32H7?

La serie STM32H7 destaca como una excelente opción para microcontroladores de alto rendimiento. Estos chips ofrecen una impresionante capacidad de procesamiento, lo que los convierte en la solución ideal para tareas exigentes.

Impulsados ​​por el núcleo ARM Cortex-M7, pueden alcanzar velocidades de hasta 480 MHz. Esto los hace ideales para aplicaciones que requieren una gran potencia computacional y eficiencia.

Los atributos clave de la serie STM32H7 incluyen:

  • Hasta 2 MB de memoria Flash y 1 MB de RA
  • Opciones de conectividad avanzadas como Ethernet, USB y CAN
  • Compatibilidad con FreeRTOS y otros sistemas operativos en tiempo real
Close-up of an STM32H7 series microcontroller chip, black in color with silver pins and the STMicroelectronics logo.
A close-up view of an STM32H7 series microcontroller

Estos microcontroladores se adaptan a diversas aplicaciones, como la automatización industrial, la electrónica de consumo y los sistemas automotrices. Su diseño robusto garantiza una fiabilidad a largo plazo, fundamental en muchas industrias.

Con robustas funciones de seguridad, los microcontroladores STM32H7 garantizan la integridad y seguridad de los datos. Características como la criptografía de hardware y el arranque seguro los hacen ideales para aplicaciones seguras.

En resumen, la serie STM32H7 ofrece versatilidad, rendimiento y fiabilidad. Es una excelente opción para desarrolladores que buscan construir sistemas embebidos eficientes y seguros.

Placas de desarrollo STM32H7 populares

La serie STM32H7 ofrece una variedad de placas de desarrollo, cada una adaptada a diferentes requisitos de proyecto. Estas placas vienen en diversos formatos y configuraciones, lo que las hace versátiles para numerosas aplicaciones.

Placa de núcleo STM32H743ZI

Una opción destacada es la placa Nucleo STM32H743ZI. Es popular entre los desarrolladores gracias a su diseño intuitivo y su amplia compatibilidad con periféricos. Esta placa es ideal para proyectos de control de motores y automatización industrial. Su compatibilidad con el ecosistema Arduino aumenta su flexibilidad para el prototipado.

Top and bottom views of the STM32H743ZI Nucleo Board, showcasing its various pins, connectors, and integrated components
STM32H743ZI Nucleo Board, presented with both its top and bottom views

Kit de descubrimiento STM32H750B-DK

Otra placa popular es el kit STM32H750B-DK Discovery. Esta placa está diseñada para aplicaciones que requieren gráficos mejorados e interfaces táctiles. Cuenta con una pantalla LCD, lo que la hace ideal para aplicaciones de interfaz hombre-máquina (HMI).

Top and bottom views of the STM32H750B-DK Discovery kit, showing the integrated display on the top view and the densely populated mainboard on the bottom view.
STM32H750B-DK Discovery kit, displaying both the top view with its integrated display and the detailed bottom view of the development board

Kit de descubrimiento STM32H7S78-DK

El kit STM32H7S78-DK Discovery destaca como una potente plataforma para aplicaciones de alto rendimiento. Equipado con capacidades gráficas avanzadas y una pantalla de alta resolución, es perfecto para desarrollar interfaces de usuario sofisticadas y experiencias multimedia de alta calidad. Este kit también ofrece robustas opciones de conectividad y un completo conjunto de periféricos, lo que lo hace muy versátil para proyectos integrados exigentes que requieren potencia de procesamiento y una salida visual avanzada.

Top and bottom views of the STM32H7S78-DK Discovery kit, featuring an integrated display on the top and complex circuitry on the bottom.
STM32H7S78-DK Discovery kit, showing both the top view with its embedded display and the comprehensive bottom view of the board

STM32H7 vs ESP32: Una comparación detallada

Al elegir un microcontrolador, es fundamental comparar el STM32H7 y el ESP32. Ambos tienen ventajas únicas y satisfacen necesidades diferentes.

El STM32H7 destaca por su excepcional potencia de procesamiento. Alcanza hasta 480 MHz, lo que lo hace ideal para cálculos intensivos. Por el contrario, el ESP32 ofrece una potencia de procesamiento moderada, pero integra Wi-Fi y Bluetooth, lo que lo convierte en una opción popular para IoT.

Los desarrolladores suelen elegir el STM32H7 por su amplia compatibilidad con periféricos e interfaces. Es ideal para aplicaciones que requieren múltiples protocolos de comunicación como I₂C, SPI y UART. Por otro lado, el ESP32 destaca en conectividad inalámbrica. Su robusta conectividad Wi-Fi y

Las capacidades de Bluetooth son adecuadas para dispositivos inteligentes y automatización del hogar.

A continuación se muestra una rápida comparación de características:

STM32H7

CPU: Arm Cortex-M7 (Single or Dual Core, up to 600 MHz)

RAM: Up to 1.4 MB SRAM, plus other RAM

Flash Memory: Up to 2 MB embedded Flash

Connectivity: Ethernet, USB, SPI, I2C, UART, CAN, etc.

Peripherals: ADC, DAC, Timers, PWM, RNG, LCD Controller, etc.

Power Consumption: As low as 32 µA in Stop mode, total current consumption as low as 4µA

Main Applications: High-performance industrial control, graphical interfaces, real-time processing, complex embedded systems

Ecosystem: Extensive STM32 ecosystem, including STM32CubeMX, HAL libraries, etc.

Price: Typically higher

ESP32

CPU: Xtensa LX6 Dual-Core (up to 240 MHz)

RAM: 520 KB SRAM

Flash Memory: 448 KB ROM (built-in), external Flash expandable

Connectivity: Wi-Fi (802.11 b/g/n), Bluetooth (v4.2 BR/EDR & BLE), SPI, I2S, I2C, UART, SD/SDIO, etc.

Peripherals: ADC, DAC, Touch Sensors, PWM, IR Remote, Pulse Counter, etc.

Power Consumption: Deep sleep current 5 µA

Main Applications: Internet of Things (IoT), wireless communication, smart home, low-power applications

Ecosystem: ESP-IDF, Arduino IDE, MicroPython, etc.

Price: Typically lower

Summary:

The **STM32H7** series are high-performance microcontrollers designed for applications requiring significant processing power, rich peripherals, and real-time capabilities, such as advanced industrial control, graphical user interfaces, and complex embedded systems. They generally feature more memory and higher clock frequencies.

The **ESP32** series, on the other hand, is a microcontroller with integrated Wi-Fi and Bluetooth, making it ideal for Internet of Things (IoT) applications, wireless communication, and scenarios requiring low-power connectivity. Its strengths lie in its wireless connectivity features and more accessible price point.

The choice between these microcontrollers depends on your specific project needs, including performance requirements, power budget, connectivity demands, and cost considerations.

Introducción a la programación STM32H7

Sumergirse en la programación del STM32H7 puede ser emocionante y gratificante. Esta serie ofrece una alta potencia de procesamiento, lo que la convierte en una de las favoritas para aplicaciones complejas. Comprender cómo programar estos microcontroladores es crucial para aprovechar al máximo su potencial.
STM32CubeIDE es el principal entorno de desarrollo para la programación STM32H7. Ofrece un conjunto integrado de herramientas para codificar, depurar e implementar aplicaciones. Este IDE es compatible con múltiples lenguajes de programación, incluyendo C y C++, adaptándose a las diversas preferencias de los desarrolladores.

STM32H7 es compatible con varios sistemas operativos en tiempo real (RTOS), incluido FreeRTOS. Un RTOS permite a los desarrolladores crear aplicaciones con un control preciso de la sincronización, crucial para los sistemas en tiempo real. Incorporar un RTOS puede mejorar significativamente el rendimiento de sus proyectos STM32H7.

Para comenzar, siga estos pasos:

  • Instalar STM32CubeIDE: Descargue y configure el IDE.
  • Configurar la cadena de herramientas: configurar los compiladores y los complementos necesarios.
  • Aprenda los conceptos básicos: explore la interfaz y las funciones de STM32CubeIDE.
  • Proyectos de ejemplo: comience con las plantillas proporcionadas para comprender el flujo de trabajo.
  • Explorar bibliotecas: utilizar bibliotecas periféricas y de middleware.

Ejemplo de programación: Hacer parpadear un LED

En este caso, aprenderá a configurar un proyecto básico para hacer parpadear un LED. Este tutorial básico de programación embebida le presentará el control GPIO (Entrada/Salida de Propósito General), el entorno de desarrollo STM32CubeIDE y los pasos esenciales para configurar, codificar, compilar y flashear su placa STM32H7.

Al finalizar esta guía, habrás logrado que un LED en tu placa de desarrollo parpadee, sentando una base sólida para proyectos más complejos.

Requisitos de hardware

Antes de comenzar, asegúrese de tener el siguiente hardware:

  • Placa de desarrollo STM32H7:

    • Cualquier kit de descubrimiento STM32H7 (por ejemplo, STM32H750B-DK, STM32H7S78-DK)
    • O una placa Nucleo STM32H7 (por ejemplo, STM32H743ZI Nucleo)
    • (La mayoría de estas placas tienen al menos un LED programable por el usuario integrado, normalmente conectado a un pin GPIO como PC13, PB0, PB1 o PE1)

  • Cable USB tipo A a Micro-B/Tipo-C:Para alimentar la placa y conectarla a su computadora para programar/depurar.

  • Ordenador personal:Ejecutar Windows, macOS o Linux.

Requisitos de software

Necesitarás tener el siguiente software instalado en tu computadora:

Tutorial paso a paso

Parte 1: Configuración del proyecto STM32CubeIDE
  1. Inicie STM32CubeIDE: Abre la aplicación. Si es la primera vez que la usas, podría pedirte la ubicación de tu espacio de trabajo. Elige un directorio adecuado.

STM32CubeIDE Launcher window prompting the user to select a directory as workspace.
Selecting the workspace directory for STM32CubeIDE before launching the IDE
  1. Crear un nuevo proyecto STM32:

Ir a Archivo > Nuevo > Proyecto STM32.

STM32CubeIDE menu showing "File > New > STM32 Project" option selected.
Navigating the STM32CubeIDE menu to create a new STM32 Project

Después de que el sistema inicialice el selector de destino STM32, puede especificar su microcontrolador STM32H7 exacto en la ventana «Selección de destino».

STM32CubeIDE initializing the target microcontroller selector
STM32CubeIDE initializing the target microcontroller selector

Puede usar la barra de búsqueda «Número de pieza». Por ejemplo:

        • Si tienes una Núcleo STM32H743ZI, tipo STM32H743ZI.
        • Si tienes una STM32H750B-DK, tipo STM32H750VB.
        • Si tienes una STM32H7S78-DK, tipo STM32H7S78.

Seleccione su dispositivo específico de la lista y haga clic Próximo.

STM32CubeIDE "Target Selection" window showing STM32H743ZI selected in the Part Number filter.
Selecting the STM32H743ZI microcontroller in the STM32CubeIDE target selection wizard
  1. Nombre del proyecto y configuración:
    • Nombre del proyecto: Introduzca un nombre descriptivo, por ejemplo, H7_LED_Parpadeo.
    • Tipo de proyecto objetivo: Dejar como Vacío.
    • Hacer clic Finalizar.
    • Si se le solicita que inicialice todos los periféricos con su modo predeterminado, haga clic en . Esto abrirá la interfaz de configuración de STM32CubeMX.
STM32CubeIDE "Setup STM32 project" window showing the Project Name "H7_LED_Blink".
Naming the new STM32 project "H7_LED_Blink" in STM32CubeIDE
Parte 2: Configuración de STM32CubeMX (dentro de STM32CubeIDE)

Una vez creado el proyecto, el .ioc Se abrirá el archivo de configuración STM32CubeMX. Aquí es donde se configura gráficamente el microcontrolador.

  1. Pinout y configuración:

    • Identificar el pin del LED: Consulta el manual de usuario de tu placa de desarrollo para saber a qué pin GPIO está conectado el LED de usuario integrado. Los pines comunes incluyen PC13 (para placas Nucleo-144), PB0, PB1, o PE1.

    • Configurar el pin GPIO:

      • Encuentre el pin identificado en el diagrama del chip o en la «Vista de distribución de pines» (por ejemplo, PC13).

      • Clic izquierdo en el pin y seleccione Salida GPIO. El pin se volverá verde, lo que indica que está configurado como salida.

      • Opcional – Etiqueta de usuario: Es recomendable etiquetar tus pines. Puedes hacer clic derecho en el pin y seleccionar Introducir etiqueta de usuario. Tipo LED integrado (o un nombre descriptivo similar).

STM32CubeIDE Pinout & Configuration tab showing PC13 pin selected on the chip diagram with "GPIO_Output" option in a context menu.
Configuring pin PC13 as a GPIO Output on the STM32H7 microcontroller in STM32CubeIDE
    • Configurar los ajustes de GPIO:
      • En la pestaña «Pinout y configuración», expanda Núcleo del sistema > GPIO.
      • Encuentre la fila correspondiente a su pin LED configurado (por ejemplo, PC13).
      • En la columna «Nivel de salida GPIO», configúrelo en Bajo. (Queremos que el LED comience apagado).
      • Asegúrese de que el «modo GPIO» esté activado. Salida Push Pull.
      • Deje las demás configuraciones (Pull-up/Pull-down, Velocidad máxima de salida) como predeterminadas para este ejemplo básico.
STM32CubeIDE Pinout & Configuration tab showing GPIO settings for PC13, including "GPIO output level" set to "Low"
Setting the GPIO output level for PC13 to "Low" in STM32CubeIDE
  1. Núcleo del sistema -> Configuración del sistema:
    • En la pestaña «Pinout y configuración», expanda Núcleo del sistema > SYS.
    • En «Configuración», configure la Depurar opción a Cable serial. Esto es crucial para la depuración y el flasheo.
  1. Configuración del reloj:
    • Ir a la Configuración del reloj pestaña.
    • Para un simple parpadeo de LED, la configuración de reloj predeterminada generada por CubeIDE suele ser suficiente. No suele ser necesario realizar cambios a menos que se requieran velocidades de reloj muy específicas.
  1. Gerente de Proyecto y Generación de Código:
    • Ir a la Gerente de proyecto pestaña.
    • Verificar el Nombre del proyecto y Cadena de herramientas/IDE (debería ser STM32CubeIDE).
    • Generar código: Haga clic en el Generar código botón (el icono del engranaje o Proyecto > Generar código).
    • Si se le solicita que guarde los cambios, haga clic en .
    • Esta acción generará todo el código de inicialización necesario para su proyecto en función de su configuración de CubeMX.
STM32CubeIDE project configuration window showing the "Project Manager" tab with project settings.
Viewing project settings under the "Project Manager" tab in STM32CubeIDE
Parte 3: Implementación del código

Ahora que la estructura básica del proyecto y las configuraciones periféricas están configuradas, escribiremos la lógica de parpadeo real.

  1. Navegar a principal.c:

    • En el panel Explorador de proyectos (lado izquierdo de STM32CubeIDE), navegue a: H7_LED_Parpadeo (nombre de tu proyecto) > Núcleo > Src > main.c

    • Haga doble clic principal.c para abrirlo en el editor.

  2. Localizar el mientras(1) Bucle:

    • Desplácese hacia abajo en principal.c hasta que encuentres el /* CÓDIGO DE USUARIO COMIENZA 3 */ y /* CÓDIGO DE USUARIO FIN 3 */ comentarios dentro del mientras(1) bucle. Aquí es donde agregarás el código de tu aplicación.

  3. Añadir lógica parpadeante:

    • Dentro de la mientras(1) bucle, agregue las siguientes dos líneas de código:

				
					/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(Onboard_LED_GPIO_Port, Onboard_LED_Pin); // Toggle the LED state
HAL_Delay(500); // Wait for 500 milliseconds (0.5 seconds)
/* USER CODE END 3 */
				
			

Explicación del código:

  • HAL_GPIO_TogglePin()Esta función pertenece a la biblioteca HAL (Capa de Abstracción de Hardware) de STM32Cube. Cambia el estado del pin GPIO especificado de alto a bajo o de bajo a alto.

    • Puerto GPIO LED integrado:Esta es una macro generada automáticamente por CubeMX, que representa el puerto GPIO (por ejemplo, GPIOC si su LED está en PC13).

    • Pin LED integrado:Esta es una macro generada automáticamente por CubeMX, que representa el número de PIN específico (por ejemplo, PIN GPIO_13 si su LED está en PC13).

  • HAL_Retraso(500)Esta función HAL crea un retardo de bloqueo durante el número especificado de milisegundos. En este caso, pausa la ejecución durante 500 ms (medio segundo).

Parte 4: Construir, flashear y verificar

¡Por último, compilemos tu código, carguémoslo en la placa y veamos cómo parpadea el LED!

  1. Conecte su tablero:

    • Conecte un extremo del cable USB al puerto USB apropiado en su placa de desarrollo STM32H7 (generalmente etiquetado como «USB ST-LINK» o «USB USER»).

    • Conecta el otro extremo a un puerto USB de tu computadora. Tu computadora debería reconocer la placa.

  2. Construir el proyecto:

    • Ir a Proyecto > Construir proyecto o haga clic en el icono del martillo en la barra de herramientas.

    • Revise la vista «Consola» para ver si hay errores o advertencias. Una compilación exitosa mostrará «Compilación finalizada» y no indicará errores.

  3. Envíe el programa a la placa:

    • Ir a Ejecutar > Depurar o haga clic en el ícono Depurar (un error verde).

    • STM32CubeIDE configurará automáticamente los ajustes del depurador (ST-LINK).

    • Hacer clic DE ACUERDO o Cambiar si se le solicita cambiar a la perspectiva de depuración.

    • El programa se compilará (si aún no lo está), se descargará a la memoria flash de la placa STM32H7 y se iniciará el depurador.

  4. Observa el parpadeo del LED:

    • Una vez que se complete el flasheo y el programa comience a ejecutarse, debería ver que el LED de usuario en su placa de desarrollo STM32H7 comienza a parpadear, con un intervalo de medio segundo.

  5. Salir de la depuración:

    • Para detener el depurador y permitir que el programa se ejecute libremente, haga clic en el botón rojo «Terminar» en la perspectiva de depuración y luego en el botón «Ejecutar» (botón verde de reproducción). También puede desconectar y volver a conectar el cable USB (el programa ya está en la memoria flash).

    • Para volver a la perspectiva C/C++, haga clic en Ventana > Perspectiva > Abrir perspectiva > C/C++.

Parte 5: Conclusión y próximos pasos

¡Felicitaciones! Has completado con éxito tu primer proyecto de programación embebida con STM32H7. Has aprendido a:

  • Cree un nuevo proyecto en STM32CubeIDE.

  • Configurar pines GPIO usando STM32CubeMX.

  • Escriba código C básico utilizando funciones HAL.

  • Compila, flashea y ejecuta tu programa en la placa STM32H7.

Próximos pasos:

  • Experimento con retraso: Cambiar el HAL_Delay() valor para hacer que el LED parpadee más rápido o más lento.

  • Controlar varios LED: Configure otro pin GPIO como salida y haga que varios LED parpadeen simultáneamente o en secuencia.

  • Entrada de botón: Configure un pin GPIO como entrada para leer el estado de un botón de usuario y controlar el LED en función de las pulsaciones del botón.

  • Explora más periféricos: Considere el uso de UART para comunicación serial, temporizadores para sincronización precisa o ADC para lecturas analógicas.

La programación de STM32H7 se beneficia de las extensas bibliotecas y middleware proporcionados por STMicroelectronics. Estos recursos simplifican la incorporación de funcionalidades complejas a sus aplicaciones. Gracias al sólido soporte de la comunidad y a la documentación detallada, comenzar a programar en STM32H7 es sencillo y factible.

Herramientas y software esenciales para el desarrollo de STM32H7

Para desarrollar STM32H7 se requiere un conjunto de herramientas y software esenciales. Estos recursos garantizan un flujo de trabajo eficiente y una gestión integral del proyecto. Elegir las herramientas adecuadas optimiza considerablemente el proceso de desarrollo.

El primer paso consiste en seleccionar un entorno de desarrollo integrado (IDE) compatible. STM32CubeIDE es ideal para la programación STM32H7. Integra múltiples funciones, ofreciendo capacidades de codificación, compilación y depuración en una sola plataforma. Esta comodidad es inigualable para los desarrolladores.

Además de STM32CubeIDE, considere usar STM32CubeMX. Esta herramienta gráfica simplifica la configuración del microcontrolador. Permite una fácil gestión de periféricos y configuraciones de pines, agilizando la fase de configuración de su proyecto.

Aquí hay una lista de herramientas esenciales para el desarrollo de STM32H7:

  • STM32CubeIDE: entorno de desarrollo integral.
  • STM32CubeMX: Simplifica la configuración periférica.
  • Herramientas de depuración/programación: ST-LINK/V2 para depuración en chip.
  • Bibliotecas y middleware: mejoran la funcionalidad de la aplicación.

ST-LINK/V2 es crucial para la depuración y programación en circuito. Permite a los desarrolladores conectar fácilmente sus placas de desarrollo STM32H7 a las computadoras, lo que proporciona información detallada y control durante la resolución de problemas. El uso de estas herramientas garantiza que el desarrollo de su STM32H7 sea eficaz y agradable.

Conclusión

La serie STM32H7 ofrece un rendimiento y una versatilidad inigualables. Es una opción ideal para proyectos que requieren una gran potencia de procesamiento y un control preciso. Gracias a su amplia gama de características, se adapta a diversas industrias y aplicaciones.

Antes de seleccionar el STM32H7, evalúe los requisitos específicos de su proyecto. Considere factores como la velocidad de procesamiento, la conectividad y el presupuesto. Si busca un alto rendimiento y funciones avanzadas, probablemente el STM32H7 sea la opción ideal para sus necesidades.

Suscríbete

Únete a nuestra lista de suscriptores para recibir actualizaciones mensuales del blog, noticias de tecnología y estudios de caso. Nunca enviaremos spam y puedes cancelar tu suscripción en cualquier momento.

Acerca del Autor

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

¿Necesitas ayuda?

Scroll al inicio

Cotización