v3.8.0¶
A v3.8.0 atualiza o núcleo para o MicroPython 1.13, congela um grande conjunto de bibliotecas auxiliares no firmware, adiciona Portenta Ethernet (com exemplos de rede), suporte a HDMI CEC no módulo lcd, configuração de baudrate/ponto de amostragem da pyb.CAN e uma série de correções de baixo consumo do H7 e da HAL. Os módulos time / utime foram unificados e o DMA do pyb.DAC no F4 foi desabilitado — leia as mudanças incompatíveis abaixo.
Destaques¶
MicroPython 1.13 — o núcleo do MicroPython incluído foi atualizado.
Bibliotecas congeladas —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,pid,ssd1306e outras agora estão congeladas no firmware.Portenta Ethernet — suporte a Ethernet além de exemplos de HTTP / SSL / ponto a ponto.
HDMI CEC — nova API CEC no módulo
lcd(Pure Thermal).pyb.CAN— temporização de bits a partir das palavras-chavebaudrate/sampling_point.Incompatível: os módulos
time/utimeforam unificados e as funções de DMA dopyb.DACno F4 foram desabilitadas — veja as mudanças incompatíveis.
Novos recursos¶
Manifesto congelado —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,mutex,pid,ssd1306,tb6612evl53l1xagora estão congelados no firmware no OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.Portenta Ethernet — Ethernet habilitada com exemplos
http_client,http_client_sslepeer_to_peer.HDMI CEC — adicionada uma API HDMI CEC ao módulo
lcd(Pure Thermal).pyb.CAN— o construtor /init()agora deriva a temporização de bits das palavras-chavebaudrateesampling_point(a forma manual de prescaler ainda funciona); os exemplos de CAN foram atualizados de acordo.
Outras mudanças e melhorias¶
O banner do REPL agora inclui a string de versão da HAL; o exemplo de FFT de áudio foi atualizado para a API mais recente do
ulab.
Correções de bugs¶
Câmera e sensores:
Corrigido o clock do sensor OV2640 e o escalonamento de frequência do PCLK do OV5640 em dispositivos STM32H7 rev Y; recuperação do barramento I2C do FIR a partir de um estado de perda de arbitragem pulsando o SCL e nova tentativa de inicialização do AMG8833 em um soft-reset do F7.
Energia e timers:
Corrigida a entrada em baixo consumo (stop/standby) do H7 — escalonamento de tensão para a rev V, reativação do oscilador/PLL ao acordar, baixo consumo da SDRAM com retenção da DRAM, desativação do Systick na entrada em stop e ativação do DBGMCU apenas em builds de depuração. Corrigido o estado da HAL do
machine.Timerapós a atualização da HAL do H7 e revertida a mudança de prioridade de IRQ de leitura/escrita do SD.
Display e conectividade:
Corrigida a configuração de tamanho de dados de 8/16 bits do LCD SPI do F4 (define
MCU_SERIESincorreto), passou a retornar erro em falha de inicialização do barramento SPI do WINC1500 em vez de continuar silenciosamente e usou um handle SPI estático para evitar conflitos no barramento SPI do WINC1500. Corrigido um bug de coleta de lixo (GC) do MicroPython.
Sistema:
O
unittests.pynão marca mais a suíte como falha quando um teste é desabilitado ou está indisponível; removidos os exemploscamera_lcdquebrados do shield Thermopile.
Hardware e suporte a placas¶
OpenMV Pure Thermal — placa atualizada e renomeada (
OPENMVPURETHERMAL→OPENMVPT), com HDMI CEC.OpenMV 2 — driver da câmera OV2640 habilitado.
Arduino Portenta H7 — suporte a Ethernet.
Mudanças incompatíveis na API¶
Quebras de API visíveis ao usuário entre a v3.7.0 e a v3.8.0. Escopo: módulos C do Python em modules/ e bibliotecas Python em scripts/libraries/.
Cada mudança é marcada com seu impacto:
minor — API restrita; afeta apenas scripts que a usaram.
behavior — mesma API, resultados diferentes; reavalie scripts ajustados.
As mudanças são agrupadas por impacto nessa ordem. Se você só quer portar seu código, vá direto para o checklist de migração no final. Cada hash de commit possui um link para o seu diff no GitHub.
Módulos time / utime unificados (minor)¶
Os módulos time e utime foram unificados e a classe clock do OpenMV foi movida para utime. Todos os exemplos incluídos foram atualizados para import utime / clock = utime.clock(). Scripts que dependiam de import time para a classe clock devem importar utime em vez disso.
Commits: 20587f308
Funções de DMA do pyb.DAC no F4 desabilitadas (minor)¶
Em placas baseadas no F4, as funções do pyb.DAC que exigem DMA foram desabilitadas porque o heap do F4 reside na CCM, que não é acessível por DMA. Scripts do F4 que usavam escritas em buffer de DMA do DAC devem evitar essas funções.
Commits: d61f236f2
MicroPython atualizado para 1.13 (behavior)¶
O núcleo do MicroPython incluído foi atualizado para 1.13. O comportamento da biblioteca padrão e da linguagem segue o MicroPython 1.13 upstream; reavalie scripts que dependem de comportamento específico de versão do micropython / módulos padrão.
Commits: fb0a5e26d
As frequências suportadas pelo cpufreq dependem da revisão (behavior)¶
Mais frequências de CPU foram adicionadas e tornadas cientes da revisão de silício: cpufreq.get_supported_frequencies() agora retorna uma lista dependente da revisão no H7 (50/100/200/400 MHz nas rev X/Y, 60/120/240/480 MHz na rev V). Scripts que fixaram uma frequência da antiga lista fixa devem consultar a lista suportada em tempo de execução.
Commits: 825dd0742
Checklist de migração¶
Para um port limpo para a v3.8.0, o trabalho típico é:
Mude
import timeparaimport utimeonde você usa a classeclock(a unificação time/utime).Em placas F4, pare de usar as funções de buffer de DMA do
pyb.DAC(a mudança do DAC do F4).Revalide scripts que dependem de comportamento específico de versão do MicroPython contra a 1.13 (a atualização do MicroPython) e consulte
cpufreq.get_supported_frequencies()em tempo de execução em vez de fixar valores (a mudança do cpufreq).
Todos os outros scripts funcionam sem alterações.