v3.8.0¶
v3.8.0 actualiza el núcleo a MicroPython 1.13, congela un amplio conjunto de bibliotecas auxiliares en el firmware, añade Portenta Ethernet (con ejemplos de red), compatibilidad con HDMI CEC en el módulo lcd, la configuración de velocidad en baudios y punto de muestreo de pyb.CAN, y una oleada de correcciones de bajo consumo y de la HAL para el H7. Los módulos time / utime se fusionaron y se deshabilitó el DMA de pyb.DAC en el F4 — lee los cambios incompatibles a continuación.
Aspectos destacados¶
MicroPython 1.13 — se actualizó el núcleo de MicroPython incluido.
Bibliotecas congeladas —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,pid,ssd1306y más ahora están congeladas en el firmware.Portenta Ethernet — compatibilidad con Ethernet más ejemplos HTTP / SSL / punto a punto.
HDMI CEC — nueva API CEC en el módulo
lcd(Pure Thermal).pyb.CAN— temporización de bits a partir de las palabras clavebaudrate/sampling_point.Incompatible: los módulos
time/utimese fusionaron y se deshabilitaron las funciones de DMA depyb.DACen el F4 — consulta los cambios incompatibles.
Nuevas características¶
Manifiesto congelado —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,mutex,pid,ssd1306,tb6612yvl53l1xahora están congeladas en el firmware en OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.Portenta Ethernet — se habilitó Ethernet con ejemplos
http_client,http_client_sslypeer_to_peer.HDMI CEC — se añadió una API HDMI CEC al módulo
lcd(Pure Thermal).pyb.CAN— el constructor /init()ahora deriva la temporización de bits de las palabras clavebaudrateysampling_point(la forma manual con prescaler sigue funcionando); los ejemplos de CAN se actualizaron en consecuencia.
Otros cambios y mejoras¶
El banner del REPL ahora incluye la cadena de versión de la HAL; el ejemplo de Audio FFT se actualizó para la API más reciente de
ulab.
Corrección de errores¶
Cámara y sensores:
Se corrigió el reloj del sensor OV2640 y el escalado de frecuencia del PCLK del OV5640 en dispositivos STM32H7 rev Y; se recupera el bus I2C del FIR de un estado de pérdida de arbitraje mediante pulsos en SCL, y se reintenta la inicialización del AMG8833 en un reinicio en caliente del F7.
Alimentación y temporizadores:
Se corrigió la entrada en bajo consumo (stop/standby) del H7 — el escalado de voltaje para rev V, la reactivación del oscilador/PLL al despertar, el bajo consumo de la SDRAM con retención de DRAM, la deshabilitación del Systick al entrar en stop y la habilitación del DBGMCU solo en compilaciones de depuración. Se corrigió el estado de la HAL de
machine.Timertras la actualización de la HAL del H7 y se revirtió el cambio de prioridad de IRQ de lectura/escritura de la SD.
Pantalla y conectividad:
Se corrigió la configuración del tamaño de datos de 8/16 bits del LCD SPI del F4 (definición incorrecta de
MCU_SERIES), se devuelve un error al fallar la inicialización del bus SPI del WINC1500 en lugar de continuar silenciosamente, y se utilizó un manejador SPI estático para evitar conflictos en el bus SPI del WINC1500. Se corrigió un error de recolección de basura (GC) de MicroPython.
Sistema:
unittests.pyya no marca la suite como fallida cuando una prueba está deshabilitada o no disponible; se eliminaron los ejemploscamera_lcdrotos del shield Thermopile.
Hardware y compatibilidad de placas¶
OpenMV Pure Thermal — placa actualizada y renombrada (
OPENMVPURETHERMAL→OPENMVPT), con HDMI CEC.OpenMV 2 — se habilitó el controlador de la cámara OV2640.
Arduino Portenta H7 — compatibilidad con Ethernet.
Cambios incompatibles en la API¶
Cambios en la API visibles para el usuario entre v3.7.0 y v3.8.0. Alcance: módulos C de Python en modules/ y bibliotecas de Python en scripts/libraries/.
Cada cambio está etiquetado con su impacto:
menor — API reducida; solo afecta a los scripts que la usaban.
comportamiento — misma API, resultados distintos; vuelve a revisar los scripts ajustados.
Los cambios se agrupan por impacto en ese orden. Si solo quieres portar tu código, salta a la lista de verificación de migración al final. Cada hash de commit enlaza a su diff en GitHub.
Módulos time / utime fusionados (menor)¶
Los módulos time y utime se fusionaron y la clase clock de OpenMV se trasladó a utime. Todos los ejemplos incluidos se actualizaron a import utime / clock = utime.clock(). Los scripts que dependían de import time para la clase clock deberían importar utime en su lugar.
Commits: 20587f308
Funciones de DMA de pyb.DAC en el F4 deshabilitadas (menor)¶
En las placas basadas en F4, las funciones de pyb.DAC que requieren DMA se deshabilitaron porque el heap del F4 reside en CCM, que no es accesible por DMA. Los scripts del F4 que usaban escrituras de búfer DMA del DAC deben evitar esas funciones.
Commits: d61f236f2
MicroPython actualizado a 1.13 (comportamiento)¶
El núcleo de MicroPython incluido se actualizó a 1.13. El comportamiento de la biblioteca estándar y del lenguaje sigue al de MicroPython 1.13 upstream; vuelve a revisar los scripts que dependan del comportamiento de micropython / módulos estándar específico de la versión.
Commits: fb0a5e26d
Las frecuencias admitidas por cpufreq dependen de la revisión (comportamiento)¶
Se añadieron más frecuencias de CPU y se hicieron conscientes de la revisión del silicio: cpufreq.get_supported_frequencies() ahora devuelve una lista dependiente de la revisión en el H7 (50/100/200/400 MHz en rev X/Y, 60/120/240/480 MHz en rev V). Los scripts que codificaban de forma fija una frecuencia de la antigua lista fija deberían consultar la lista admitida en tiempo de ejecución.
Commits: 825dd0742
Lista de verificación de migración¶
Para una portación limpia a v3.8.0, el trabajo típico es:
Cambia
import timeporimport utimedonde uses la claseclock(la fusión de time/utime).En las placas F4, deja de usar las funciones de búfer DMA de
pyb.DAC(el cambio del DAC del F4).Vuelve a validar contra 1.13 los scripts que dependan del comportamiento de MicroPython específico de la versión (la actualización de MicroPython) y consulta
cpufreq.get_supported_frequencies()en tiempo de ejecución en lugar de codificarla de forma fija (el cambio de cpufreq).
Todos los demás scripts se ejecutan sin cambios.