v3.8.0¶
v3.8.0 atualiza o núcleo para o MicroPython 1.13, congela um grande conjunto de bibliotecas auxiliares no firmware, adiciona suporte a Ethernet no Portenta (com exemplos de rede), HDMI CEC no módulo lcd, configuração de baudrate/ponto-de-amostragem em pyb.CAN, e uma série de correções de baixo consumo e HAL no H7. Os módulos time / utime foram fundidos e o DMA do pyb.DAC no F4 foi desativado — leia as alterações incompatíveis abaixo.
Destaques¶
MicroPython 1.13 — o núcleo MicroPython incluído foi atualizado.
Bibliotecas congeladas —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,pid,ssd1306, e mais estão agora congelados no firmware.Ethernet no Portenta — suporte a Ethernet mais exemplos de HTTP / SSL / ponto a ponto.
HDMI CEC — nova API CEC no módulo
lcd(Pure Thermal).pyb.CAN— temporização de bits através das palavras-chavebaudrate/sampling_point.Incompatível: os módulos
time/utimeforam fundidos e as funções DMA dopyb.DACno F4 foram desativadas — consulte as alterações incompatíveis.
Novas funcionalidades¶
Manifesto congelado —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,mutex,pid,ssd1306,tb6612, evl53l1xestão agora congelados no firmware do OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.Ethernet no Portenta — Ethernet ativada 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()deriva agora a temporização de bits a partir das palavras-chavebaudrateesampling_point(a forma manual com prescaler continua a funcionar); exemplos CAN atualizados em conformidade.
Outras alterações e melhorias¶
O banner do REPL inclui agora a string de versão do HAL; o exemplo de FFT de áudio foi atualizado para a API mais recente do
ulab.
Correções de erros¶
Câmara e sensores:
Corrigido o relógio do sensor OV2640 e o escalonamento de frequência PCLK do OV5640 em dispositivos STM32H7 rev Y; recuperação do barramento I2C FIR de um estado de arbitragem perdida ao pulsar o SCL, e nova tentativa de inicialização do AMG8833 num soft-reset do F7.
Energia e temporizadores:
Corrigida a entrada em baixo consumo do H7 (stop/standby) — escalonamento de tensão para a rev V, reativação do oscilador/PLL ao acordar, baixo consumo da SDRAM com retenção de DRAM, desativação do Systick na entrada em stop, e ativação do DBGMCU apenas em compilações de depuração. Corrigido o estado HAL do
machine.Timerapós a atualização do HAL do H7 e revertida a alteração de prioridade de IRQ de leitura/escrita no SD.
Ecrã e conetividade:
Corrigida a configuração do tamanho de dados 8/16 bits do LCD SPI no F4 (define
MCU_SERIESerrado), retornado um erro na falha de inicialização do barramento SPI do WINC1500 em vez de continuar silenciosamente, e utilizado um handle SPI estático para evitar conflitos de barramento SPI no WINC1500. Corrigido um erro de GC-collect no MicroPython.
Sistema:
unittests.pyjá não marca a suíte como falhada quando um teste está desativado ou indisponível; removidos os exemploscamera_lcddo escudo Thermopile defeituosos.
Hardware e suporte a placas¶
OpenMV Pure Thermal — placa atualizada e renomeada (
OPENMVPURETHERMAL→OPENMVPT), com HDMI CEC.OpenMV 2 — driver da câmara OV2640 ativado.
Arduino Portenta H7 — suporte a Ethernet.
Alterações incompatíveis na API¶
Alterações visíveis na API entre v3.7.0 e v3.8.0. Âmbito: módulos C Python em modules/ e bibliotecas Python em scripts/libraries/.
Cada alteração está marcada com o seu impacto:
menor — API restrita; afeta apenas scripts que a utilizavam.
comportamento — mesma API, resultados diferentes; rever scripts ajustados.
As alterações estão agrupadas por impacto nessa ordem. Se pretende apenas portar o seu código, salte para a lista de verificação de migração no final. Cada hash de commit tem uma ligação para o seu diff no GitHub.
Módulos time / utime fundidos (menor)¶
Os módulos time e utime foram fundidos 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 DMA do pyb.DAC no F4 desativadas (menor)¶
Nas placas baseadas em F4, as funções do pyb.DAC que requerem DMA foram desativadas porque o heap do F4 reside na CCM, que não é acessível por DMA. Scripts F4 que utilizavam escritas em buffer DMA do DAC devem evitar essas funções.
Commits: d61f236f2
MicroPython atualizado para 1.13 (comportamento)¶
O núcleo MicroPython incluído foi atualizado para 1.13. O comportamento da biblioteca padrão e da linguagem segue o MicroPython 1.13 upstream; rever scripts que dependem do comportamento específico de versão do micropython / módulos padrão.
Commits: fb0a5e26d
Frequências suportadas pelo cpufreq dependem da revisão (comportamento)¶
Foram adicionadas mais frequências de CPU com consciência da revisão de silício: cpufreq.get_supported_frequencies() devolve agora 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 codificavam diretamente uma frequência da antiga lista fixa devem consultar a lista de frequências suportadas em tempo de execução.
Commits: 825dd0742
Lista de verificação de migração¶
Para uma migração limpa para v3.8.0, o trabalho típico é:
Altere
import timeparaimport utimeonde utilizar a classeclock(a fusão time/utime).Nas placas F4, deixe de usar as funções de buffer DMA do
pyb.DAC(a alteração do DAC F4).Re-valide scripts que dependem do comportamento específico de versão do MicroPython contra a versão 1.13 (a atualização do MicroPython) e consulte
cpufreq.get_supported_frequencies()em tempo de execução em vez de usar valores fixos (a alteração do cpufreq).
Todos os outros scripts funcionam sem alterações.