v3.8.0

A v3.8.0 a magot a MicroPython 1.13 verzióra frissíti, számos segédkönyvtárt befagyaszt a firmware-be, hozzáadja a Portenta Ethernet támogatást (hálózati példákkal), HDMI CEC támogatást a lcd modulhoz, a pyb.CAN baudrate/mintavételezési pont beállítását, valamint egy sor H7 alacsony fogyasztású és HAL javítást. A time / utime modulok egyesítésre kerültek, az F4 pyb.DAC DMA pedig le lett tiltva — olvasd el az alábbi törést okozó változásokat.

Kiemelt változások

  • MicroPython 1.13 — a beépített MicroPython mag frissítve lett.

  • Befagyasztott könyvtárak — az uasyncio, a mqtt, az rpc, az rtsp, a modbus, a bno055, a pid, az ssd1306 és továbbiak mostantól be vannak fagyasztva a firmware-be.

  • Portenta Ethernet — Ethernet támogatás, valamint HTTP / SSL / peer-to-peer példák.

  • HDMI CEC — új CEC API a lcd modulban (Pure Thermal).

  • pyb.CAN — bitidőzítés a baudrate / sampling_point kulcsszavakból.

  • Törést okozó: a time / utime modulok egyesítésre kerültek, az F4 pyb.DAC DMA-funkciói pedig le lettek tiltva — lásd a törést okozó változásokat.

Új funkciók

  • Befagyasztott manifeszt — az uasyncio, a mqtt, az rpc, az rtsp, a modbus, a bno055, a mutex, a pid, az ssd1306, a tb6612 és a vl53l1x mostantól be vannak fagyasztva a firmware-be az OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta eszközökön.

  • Portenta Ethernet — engedélyezett Ethernet http_client, http_client_ssl és peer_to_peer példákkal.

  • HDMI CEC — HDMI CEC API hozzáadva a lcd modulhoz (Pure Thermal).

  • pyb.CAN — a konstruktor / init() mostantól a bitidőzítést a baudrate és a sampling_point kulcsszavakból származtatja (a kézi előosztós forma továbbra is működik); a CAN példák ennek megfelelően frissültek.

Egyéb változások és fejlesztések

  • A REPL banner mostantól tartalmazza a HAL verziósztringet; az Audio FFT példa az újabb ulab API-hoz lett frissítve.

Hibajavítások

Kamera és érzékelők:

  • Javítva az OV2640 érzékelő órajele és az OV5640 PCLK frekvencia-skálázása az STM32H7 rev Y eszközökön; a FIR I2C busz helyreállítása az arbitráció-vesztett állapotból az SCL impulzálásával, valamint az AMG8833 inicializálás újrapróbálása F7 szoftveres újraindításkor.

Tápellátás és időzítők:

  • Javítva a H7 alacsony fogyasztású (stop/standby) belépés — feszültségskálázás a rev V esetén, az oszcillátor/PLL újraengedélyezése ébredéskor, SDRAM alacsony fogyasztás DRAM-megőrzéssel, a Systick letiltása stop belépéskor, valamint a DBGMCU engedélyezése csak debug buildekben. Javítva a machine.Timer HAL állapota a H7 HAL frissítés után, és visszavonva az SD olvasási/írási IRQ-prioritás módosítása.

Kijelző és kapcsolat:

  • Javítva az F4 SPI LCD 8/16 bites adatméret-konfigurációja (hibás MCU_SERIES definíció), hiba visszaadása a WINC1500 SPI busz-inicializálás meghibásodásakor a néma folytatás helyett, valamint statikus SPI handle használata a WINC1500 SPI busz-ütközések elkerülésére. Javítva egy MicroPython GC-collect hiba.

Rendszer:

  • Az unittests.py többé nem jelöli sikertelennek a tesztkészletet, ha egy teszt le van tiltva vagy nem érhető el; eltávolítva a hibás Thermopile-shield camera_lcd példák.

Hardver- és lapkatámogatás

  • OpenMV Pure Thermal — a lap frissítve és átnevezve (OPENMVPURETHERMALOPENMVPT), HDMI CEC-vel.

  • OpenMV 2 — OV2640 kameravezérlő engedélyezve.

  • Arduino Portenta H7 — Ethernet támogatás.

Törést okozó API-változások

Felhasználó által észlelhető API-törések a v3.7.0 és a v3.8.0 között. Hatókör: Python C-modulok a modules/ mappában és Python könyvtárak a scripts/libraries/ mappában.

Minden változás a hatása szerint van címkézve:

  • minor — szűk API; csak az azt használó szkripteket érinti.

  • behavior — ugyanaz az API, más eredmények; ellenőrizd újra a hangolt szkripteket.

A változások a hatás szerint, ebben a sorrendben vannak csoportosítva. Ha csak a kódodat szeretnéd átültetni, ugorj a migrációs ellenőrzőlistához a végén. Minden commit hash a hozzá tartozó diffre mutat a GitHubon.

time / utime modulok egyesítve (minor)

A time és az utime modulok egyesítésre kerültek, az OpenMV clock osztálya pedig átkerült az utime modulba. Minden mellékelt példa az import utime / clock = utime.clock() formára lett frissítve. Azoknak a szkripteknek, amelyek az import time formára támaszkodtak a clock osztály miatt, helyette az utime modult kell importálniuk.

Commitok: 20587f308

F4 pyb.DAC DMA-funkciók letiltva (minor)

Az F4 alapú lapokon a pyb.DAC DMA-t igénylő funkciói le lettek tiltva, mert az F4 heap a CCM-ben helyezkedik el, amely nem érhető el DMA-n keresztül. Azoknak az F4 szkripteknek, amelyek DAC DMA-pufferírásokat használtak, kerülniük kell ezeket a funkciókat.

Commitok: d61f236f2

MicroPython 1.13-ra frissítve (behavior)

A beépített MicroPython mag az 1.13 verzióra lett frissítve. A standard könyvtár és a nyelvi viselkedés az upstream MicroPython 1.13-at követi; ellenőrizd újra azokat a szkripteket, amelyek verzióspecifikus micropython / standard modulbeli viselkedésre támaszkodnak.

Commitok: fb0a5e26d

A cpufreq által támogatott frekvenciák revíziófüggők (behavior)

Több CPU-frekvencia került hozzáadásra és lett szilícium-revízió-tudatossá téve: a cpufreq.get_supported_frequencies() mostantól revíziófüggő listát ad vissza a H7-en (50/100/200/400 MHz a rev X/Y esetén, 60/120/240/480 MHz a rev V esetén). Azoknak a szkripteknek, amelyek a régi fix listából egy frekvenciát kódoltak be, futásidőben kell lekérdezniük a támogatott listát.

Commitok: 825dd0742

Migrációs ellenőrzőlista

A v3.8.0-ra való tiszta átültetéshez a tipikus teendők a következők:

  1. Cseréld le az import time sort import utime sorra ott, ahol a clock osztályt használod (a time/utime egyesítés).

  2. Az F4 lapokon ne használd a pyb.DAC DMA-puffer funkcióit (az F4 DAC változás).

  3. Ellenőrizd újra a verzióspecifikus MicroPython viselkedésre támaszkodó szkripteket az 1.13 ellenében (a MicroPython frissítés), és futásidőben kérdezd le a cpufreq.get_supported_frequencies() függvényt a bekódolás helyett (a cpufreq változás).

Minden más szkript változtatás nélkül fut.