🛠 MicroPython sur le Nucleo STM32H743ZI : le REPL 480 MHz via le port série ST-LINK
Qué vas a construir
Ejecuta MicroPython de forma interactiva en la STM32H743ZI — existe un port oficial en el repositorio upstream de MicroPython bajo ports/stm32/boards/NUCLEO_H743ZI (también existe un directorio de port NUCLEO_H743ZI2). Obtienes un prompt de Python 3 a 480 MHz a través del puerto COM virtual del ST-LINK: perfecto para experimentos rápidos con sensores antes de comprometerse con C.
Hardware
- 1 Nucleo-144 STM32H743ZI + cable de datos USB
- Un programa de terminal (PuTTY, screen, minicom) o el editor Thonny
Paso 1 — Obtener el firmware
El port oficial se encuentra en github.com/micropython/micropython/tree/master/ports/stm32/boards/NUCLEO_H743ZI. Compílalo desde las fuentes de MicroPython (make en ports/stm32 con la placa configurada como NUCLEO_H743ZI), luego grábalo a través del ST-LINK/V2-1 integrado — la misma ruta de programador utilizada por STM32CubeProgrammer y OpenOCD, sin necesidad de una sonda externa.
Paso 2 — Abrir el REPL
- Conecta el conector USB del ST-LINK de la placa; aparece un puerto COM virtual (el mismo VCP utilizado como consola a 115200 8N1 en el mapeo de Zephyr).
- Ábrelo a 115200 baudios y pulsa Ctrl-C — el prompt
>>>responde.
Paso 3 — Primeros comandos
>>> import machine, time
>>> led = machine.Pin("LED_GREEN", machine.Pin.OUT) # board-name alias per the
... # MicroPython board definition
>>> while True:
... led.value(not led.value)
... time.sleep_ms(250)
...
> NO VERIFICADO: la cadena exacta del alias de placa de MicroPython "LED_GREEN" y el UART del REPL por defecto — el archivo mpconfigboard.h del directorio del port no se obtuvo durante la investigación. Consulta la definición de la placa en el port para ver los nombres de pines que exporta.
Prueba también la parte analógica — el H743 tiene 3 ADCs (16 bits) y 2 DACs:
>>> from machine import ADC, Pin
>>> a = ADC(Pin('A0')) # the STM32 silicon offers 36 ADC channels
>>> a.read_u16 # 16-bit-ish sampling on the 480 MHz M7
Paso 4 — Hacerlo permanente
Coloca un archivo main.py en el sistema de archivos (el port incluye un sistema de archivos flash) y tu script se ejecutará en cada arranque — el flujo de trabajo clásico de sistemas embebidos: prototipa en el REPL, congela en main.py, y más tarde migra a C si necesitas el último microsegundo.
Resultado esperado
El LED verde parpadea a 2 Hz desde el bucle del REPL; Ctrl-C te devuelve a >>>. Todo se ejecuta en el Cortex-M7 a hasta 480 MHz con su FPU de doble precisión — el código de MicroPython intensivo en operaciones con punto flotante es inusualmente rápido en este port.
Problemas comunes
- Abrir el puerto serie incorrecto: el VCP del ST-LINK y los UART propios del MCU pueden aparecer ambos — la ruta de consola documentada para esta familia de placas es el VCP del ST-LINK a 115200.
- Esperar números de pines de Arduino: MicroPython utiliza los nombres propios de la definición de la placa — lee el directorio de la placa en el port.
- Compilar con una cadena de herramientas obsoleta: la serie H7 se anunció a 400 MHz en octubre de 2016 y ahora está clasificada hasta 480 MHz — las hojas de datos antiguas y las cadenas de herramientas obsoletas pueden seguir limitando la frecuencia a 400 MHz.
Otros tutoriales para esta placa
- Premiers pas sur le Nucleo-144 STM32H743ZI : core STM32duino, ST-LINK et premier Blink
- GPIO, ADC 16 bits et DAC sur le Nucleo STM32H743ZI : bouton, LED et potentiomètre
- Zephyr RTOS sur le Nucleo STM32H743ZI : west build, flash et le piège des 96 MHz
- STM32Cube HAL à 480 MHz sur le STM32H743ZI : VOS0, latence flash et HSE bypass
- FreeRTOS sur le Nucleo STM32H743ZI : le projet officiel CubeH7, tâches et file d'attente
- Serveur web sur l'Ethernet du STM32H743ZI : démo LwIP officielle, RMII et errata