v3.8.0

v3.8.0 ažurira jezgru na MicroPython 1.13, zamrzava velik skup pomoćnih biblioteka u ugrađeni program, dodaje Portenta Ethernet (s primjerima umrežavanja), podršku za HDMI CEC u modulu lcd, konfiguraciju brzine prijenosa / točke uzorkovanja za pyb.CAN, te niz ispravaka za H7 nisku potrošnju i HAL. Moduli time / utime su spojeni, a DMA za F4 pyb.DAC je onemogućen — pročitajte promjene koje narušavaju kompatibilnost u nastavku.

Istaknuto

  • MicroPython 1.13 — priložena MicroPython jezgra je ažurirana.

  • Zamrznute bibliotekeuasyncio, mqtt, rpc, rtsp, modbus, bno055, pid, ssd1306 i druge sada su zamrznute u ugrađeni program.

  • Portenta Ethernet — podrška za Ethernet uz primjere HTTP / SSL / peer-to-peer.

  • HDMI CEC — novi CEC API u modulu lcd (Pure Thermal).

  • pyb.CAN — vremenski parametri bitova iz ključnih riječi baudrate / sampling_point.

  • Narušava kompatibilnost: moduli time / utime su spojeni, a DMA funkcije za F4 pyb.DAC su onemogućene — vidi promjene koje narušavaju kompatibilnost.

Nove značajke

  • Zamrznuti manifestuasyncio, mqtt, rpc, rtsp, modbus, bno055, mutex, pid, ssd1306, tb6612 i vl53l1x sada su zamrznuti u ugrađeni program na OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.

  • Portenta Ethernet — omogućen Ethernet uz primjere http_client, http_client_ssl i peer_to_peer.

  • HDMI CEC — dodan HDMI CEC API u modul lcd (Pure Thermal).

  • pyb.CAN — konstruktor / init() sada izvode vremenske parametre bitova iz ključnih riječi baudrate i sampling_point (ručni oblik s predskalerom i dalje radi); CAN primjeri su odgovarajuće ažurirani.

Ostale promjene i poboljšanja

  • REPL natpis sada uključuje niz s verzijom HAL-a; primjer Audio FFT je ažuriran za noviji ulab API.

Ispravci grešaka

Kamera i senzori:

  • Ispravljeno skaliranje frekvencije sata OV2640 senzora i PCLK frekvencije OV5640 na STM32H7 rev Y uređajima; oporavak FIR I2C sabirnice iz stanja izgubljene arbitraže pulsiranjem SCL te ponovni pokušaj inicijalizacije AMG8833 pri F7 mekanom resetu.

Napajanje i mjerači vremena:

  • Ispravljen ulazak H7 u nisku potrošnju (stop/standby) — skaliranje napona za rev V, ponovno omogućavanje oscilatora/PLL-a pri buđenju, SDRAM niska potrošnja uz zadržavanje DRAM-a, onemogućavanje Systicka pri ulasku u stop te omogućavanje DBGMCU samo u debug verzijama. Ispravljeno stanje HAL-a za machine.Timer nakon ažuriranja H7 HAL-a i poništena promjena prioriteta SD read/write IRQ-a.

Prikaz i povezivost:

  • Ispravljena konfiguracija veličine podataka 8/16-bit za F4 SPI LCD (pogrešna MCU_SERIES definicija), vraćana je greška pri neuspjeloj inicijalizaciji WINC1500 SPI sabirnice umjesto tihog nastavka rada te korišten statički SPI handle radi izbjegavanja sukoba na WINC1500 SPI sabirnici. Ispravljena greška u MicroPython GC-collect mehanizmu.

Sustav:

  • unittests.py više ne označava paket kao neuspio kada je test onemogućen ili nedostupan; uklonjeni neispravni Thermopile-shield camera_lcd primjeri.

Hardver i podrška za ploče

  • OpenMV Pure Thermal — ploča ažurirana i preimenovana (OPENMVPURETHERMALOPENMVPT), s HDMI CEC.

  • OpenMV 2 — omogućen upravljački program za OV2640 kameru.

  • Arduino Portenta H7 — podrška za Ethernet.

Promjene API-ja koje narušavaju kompatibilnost

Korisniku vidljive promjene API-ja koje narušavaju kompatibilnost između v3.7.0 i v3.8.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.

Svaka je promjena označena svojim utjecajem:

  • minor — uski API; utječe samo na skripte koje su ga koristile.

  • behavior — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.

Promjene su grupirane po utjecaju tim redoslijedom. Ako samo želite prilagoditi svoj kod, skočite na kontrolni popis za migraciju na kraju. Svaki hash commita vodi na njegov diff na GitHubu.

Moduli time / utime spojeni (minor)

Moduli time i utime su spojeni, a OpenMV clock klasa premještena je u utime. Svi priloženi primjeri ažurirani su na import utime / clock = utime.clock(). Skripte koje su se oslanjale na import time za clock klasu trebale bi umjesto toga uvoziti utime.

Commits: 20587f308

DMA funkcije za F4 pyb.DAC onemogućene (minor)

Na pločama temeljenim na F4, pyb.DAC funkcije koje zahtijevaju DMA su onemogućene jer F4 gomila (heap) živi u CCM-u, kojem DMA ne može pristupiti. F4 skripte koje su koristile DAC zapise u DMA međuspremnik moraju izbjegavati te funkcije.

Commits: d61f236f2

MicroPython ažuriran na 1.13 (behavior)

Priložena MicroPython jezgra ažurirana je na 1.13. Ponašanje standardne biblioteke i jezika slijedi izvorni MicroPython 1.13; ponovno provjerite skripte koje ovise o ponašanju micropython / standardnih modula specifičnom za verziju.

Commits: fb0a5e26d

Podržane cpufreq frekvencije ovise o reviziji (behavior)

Dodano je više CPU frekvencija koje su sada svjesne revizije silicija: cpufreq.get_supported_frequencies() sada vraća popis ovisan o reviziji na H7 (50/100/200/400 MHz na rev X/Y, 60/120/240/480 MHz na rev V). Skripte koje su čvrsto kodirale frekvenciju iz starog fiksnog popisa trebale bi tijekom izvođenja upitati podržani popis.

Commits: 825dd0742

Kontrolni popis za migraciju

Za čistu prilagodbu na v3.8.0 uobičajeni posao je:

  1. Promijenite import time u import utime gdje koristite clock klasu (spajanje time/utime).

  2. Na F4 pločama prestanite koristiti pyb.DAC DMA funkcije s međuspremnikom (F4 DAC promjena).

  3. Ponovno provjerite skripte koje ovise o ponašanju MicroPythona specifičnom za verziju u odnosu na 1.13 (nadogradnja MicroPythona) i tijekom izvođenja upitajte cpufreq.get_supported_frequencies() umjesto čvrstog kodiranja (cpufreq promjena).

Sve ostale skripte rade nepromijenjene.