v3.8.0

v3.8.0 aktualizuje jádro na MicroPython 1.13, zamrazuje do firmwaru rozsáhlou sadu pomocných knihoven, přidává podporu Portenta Ethernet (s příklady síťování), podporu HDMI CEC do modulu lcd, konfiguraci přenosové rychlosti / vzorkovacího bodu pro pyb.CAN a vlnu oprav nízkopříkonového režimu H7 a HAL. Moduly time / utime byly sloučeny a DMA pro F4 pyb.DAC bylo zakázáno — přečtěte si nekompatibilní změny níže.

Hlavní novinky

  • MicroPython 1.13 — přibalené jádro MicroPython bylo aktualizováno.

  • Zamrazené knihovnyuasyncio, mqtt, rpc, rtsp, modbus, bno055, pid, ssd1306 a další jsou nyní zamrazeny do firmwaru.

  • Portenta Ethernet — podpora Ethernetu plus příklady HTTP / SSL / peer-to-peer.

  • HDMI CEC — nové CEC API v modulu lcd (Pure Thermal).

  • pyb.CAN — časování bitů z klíčových slov baudrate / sampling_point.

  • Nekompatibilní: moduly time / utime byly sloučeny a funkce DMA pro F4 pyb.DAC byly zakázány — viz nekompatibilní změny.

Nové funkce

  • Zamrazený manifestuasyncio, mqtt, rpc, rtsp, modbus, bno055, mutex, pid, ssd1306, tb6612 a vl53l1x jsou nyní zamrazeny do firmwaru na OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.

  • Portenta Ethernet — povolen Ethernet s příklady http_client, http_client_ssl a peer_to_peer.

  • HDMI CEC — přidáno HDMI CEC API do modulu lcd (Pure Thermal).

  • pyb.CAN — konstruktor / init() nyní odvozuje časování bitů z klíčových slov baudrate a sampling_point (ruční forma s prescalerem stále funguje); příklady CAN byly odpovídajícím způsobem aktualizovány.

Další změny a vylepšení

  • REPL banner nyní obsahuje řetězec verze HAL; příklad Audio FFT byl aktualizován pro novější API ulab.

Opravy chyb

Kamera a senzory:

  • Opraveno škálování frekvence hodin senzoru OV2640 a PCLK senzoru OV5640 na zařízeních STM32H7 rev Y; obnova sběrnice FIR I2C ze stavu ztracené arbitráže pulzováním SCL a opakování inicializace AMG8833 při softwarovém resetu F7.

Napájení a časovače:

  • Opraven vstup do nízkopříkonového režimu H7 (stop/standby) — škálování napětí pro rev V, opětovné povolení oscilátoru/PLL při probuzení, nízkopříkonový režim SDRAM se zachováním obsahu DRAM, zakázání Systicku při vstupu do stop a povolení DBGMCU pouze v ladicích buildech. Opraven stav HAL machine.Timer po aktualizaci HAL pro H7 a vrácena změna priority přerušení čtení/zápisu SD.

Displej a konektivita:

  • Opravena konfigurace 8/16bitové velikosti dat F4 SPI LCD (chybné makro MCU_SERIES), vrácena chyba při selhání inicializace SPI sběrnice WINC1500 namísto tichého pokračování a použit statický SPI handle pro zamezení konfliktům SPI sběrnice WINC1500. Opravena chyba GC-collect v MicroPythonu.

Systém:

  • unittests.py již neoznačuje sadu jako neúspěšnou, když je test zakázán nebo nedostupný; odstraněny nefunkční příklady camera_lcd pro Thermopile-shield.

Hardware a podpora desek

  • OpenMV Pure Thermal — deska aktualizována a přejmenována (OPENMVPURETHERMALOPENMVPT), s HDMI CEC.

  • OpenMV 2 — povolen ovladač kamery OV2640.

  • Arduino Portenta H7 — podpora Ethernetu.

Nekompatibilní změny API

Změny API viditelné pro uživatele mezi v3.7.0 a v3.8.0. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.

Každá změna je označena podle svého dopadu:

  • minor — úzké API; ovlivňuje pouze skripty, které ho používaly.

  • behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.

Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete pouze přenést svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.

Moduly time / utime sloučeny (minor)

Moduly time a utime byly sloučeny a třída OpenMV clock byla přesunuta do utime. Všechny přibalené příklady byly aktualizovány na import utime / clock = utime.clock(). Skripty, které spoléhaly na import time pro třídu clock, by měly místo toho importovat utime.

Commity: 20587f308

Funkce DMA pro F4 pyb.DAC zakázány (minor)

Na deskách založených na F4 byly funkce pyb.DAC, které vyžadují DMA, zakázány, protože halda F4 se nachází v CCM, která není přístupná pro DMA. Skripty pro F4, které používaly zápisy do DMA bufferu DAC, se těmto funkcím musí vyhnout.

Commity: d61f236f2

MicroPython aktualizován na 1.13 (behavior)

Přibalené jádro MicroPython bylo aktualizováno na 1.13. Chování standardní knihovny a jazyka odpovídá upstreamovému MicroPythonu 1.13; znovu zkontrolujte skripty, které závisí na chování micropython / standardních modulů specifickém pro danou verzi.

Commity: fb0a5e26d

Podporované frekvence cpufreq závisí na revizi (behavior)

Bylo přidáno více CPU frekvencí, které nyní zohledňují revizi křemíku: cpufreq.get_supported_frequencies() nyní na H7 vrací seznam závislý na revizi (50/100/200/400 MHz na rev X/Y, 60/120/240/480 MHz na rev V). Skripty, které měly natvrdo zakódovanou frekvenci ze starého pevného seznamu, by se měly za běhu dotazovat na seznam podporovaných frekvencí.

Commity: 825dd0742

Kontrolní seznam migrace

Pro čistý přechod na v3.8.0 je typická práce následující:

  1. Změňte import time na import utime tam, kde používáte třídu clock (sloučení time/utime).

  2. Na deskách F4 přestaňte používat funkce DMA bufferu pyb.DAC (změna F4 DAC).

  3. Znovu ověřte skripty, které závisí na chování MicroPythonu specifickém pro danou verzi, proti 1.13 (aktualizace MicroPythonu) a za běhu se dotazujte na cpufreq.get_supported_frequencies() namísto natvrdo zakódovaných hodnot (změna cpufreq).

Všechny ostatní skripty běží beze změny.