v3.8.0

v3.8.0 päivittää ytimen versioon MicroPython 1.13, jäädyttää suuren joukon aputkirjastoja laiteohjelmistoon, lisää Portenta Ethernet -tuen (verkkoesimerkkeineen), HDMI CEC -tuen lcd-moduuliin, pyb.CAN -siirtonopeuden/näytteenottopisteen määrityksen sekä joukon H7:n pienitehoisuus- ja HAL-korjauksia. time / utime -moduulit yhdistettiin ja F4:n pyb.DAC DMA poistettiin käytöstä — lue alla olevat rikkovat muutokset.

Kohokohdat

  • MicroPython 1.13 — mukana toimitettu MicroPython-ydin päivitettiin.

  • Jäädytetyt kirjastotuasyncio, mqtt, rpc, rtsp, modbus, bno055, pid, ssd1306 ja muita on nyt jäädytetty laiteohjelmistoon.

  • Portenta Ethernet — Ethernet-tuki sekä HTTP- / SSL- / vertaisverkkoesimerkit.

  • HDMI CEC — uusi CEC-API lcd-moduulissa (Pure Thermal).

  • pyb.CAN — bittiajoitus baudrate- / sampling_point -avainsanoista.

  • Rikkova: time / utime -moduulit yhdistettiin ja F4:n pyb.DAC DMA-funktiot poistettiin käytöstä — katso rikkovat muutokset.

Uudet ominaisuudet

  • Jäädytetty manifestiuasyncio, mqtt, rpc, rtsp, modbus, bno055, mutex, pid, ssd1306, tb6612 ja vl53l1x on nyt jäädytetty laiteohjelmistoon OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta -laitteilla.

  • Portenta Ethernet — Ethernet otettiin käyttöön http_client-, http_client_ssl- ja peer_to_peer -esimerkkeineen.

  • HDMI CEClcd-moduuliin lisättiin HDMI CEC -API (Pure Thermal).

  • pyb.CAN — konstruktori / init() johtaa nyt bittiajoituksen baudrate- ja sampling_point -avainsanoista (manuaalinen esijakajamuoto toimii yhä); CAN-esimerkit päivitettiin vastaavasti.

Muut muutokset ja parannukset

  • REPL-bannerissa näkyy nyt HAL-versiomerkkijono; Audio FFT -esimerkki päivitettiin uudemmalle ulab -API:lle.

Korjaukset

Kamera ja sensorit:

  • Korjattiin OV2640-sensorin kello ja OV5640:n PCLK-taajuuden skaalaus STM32H7 rev Y -laitteilla; FIR I2C -väylä palautetaan arbitration-lost-tilasta pulssittamalla SCL:ää, ja AMG8833:n alustus uusitaan F7:n ohjelmistonollauksen jälkeen.

Teho ja ajastimet:

  • Korjattiin H7:n pienitehotilaan (stop/standby) siirtyminen — jännitteen skaalaus rev V:lle, oskillaattorin/PLL:n uudelleenkäyttöönotto herätyksessä, SDRAM-pienitehoisuus DRAM-säilytyksellä, Systickin poisto stop-siirtymässä ja DBGMCU:n käyttöönotto vain debug-käännöksissä. Korjattiin machine.Timer -HAL-tila H7:n HAL-päivityksen jälkeen ja palautettiin SD:n luku/kirjoitus-IRQ-prioriteetin muutos.

Näyttö ja liitettävyys:

  • Korjattiin F4:n SPI LCD 8/16-bittisen datakoon määritys (väärä MCU_SERIES -määrittely), palautettiin virhe WINC1500 SPI -väylän alustuksen epäonnistuessa hiljaisen jatkamisen sijaan ja käytettiin staattista SPI-kahvaa WINC1500 SPI -väyläristiriitojen välttämiseksi. Korjattiin MicroPythonin GC-collect-virhe.

Järjestelmä:

  • unittests.py ei enää merkitse testisarjaa epäonnistuneeksi, kun testi on poistettu käytöstä tai ei ole saatavilla; poistettiin rikkinäiset Thermopile-shieldin camera_lcd -esimerkit.

Laitteisto- ja korttituki

  • OpenMV Pure Thermal — kortti päivitettiin ja nimettiin uudelleen (OPENMVPURETHERMALOPENMVPT), HDMI CEC -tuella.

  • OpenMV 2 — OV2640-kameraohjain otettiin käyttöön.

  • Arduino Portenta H7 — Ethernet-tuki.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-muutokset versioiden v3.7.0 ja v3.8.0 välillä. Laajuus: Python C -moduulit hakemistossa modules/ ja Python-kirjastot hakemistossa scripts/libraries/.

Jokainen muutos on merkitty vaikutuksensa mukaan:

  • vähäinen — kapea API; koskee vain sitä käyttäneitä skriptejä.

  • käyttäytyminen — sama API, eri tulokset; tarkista hienosäädetyt skriptit uudelleen.

Muutokset on ryhmitelty vaikutuksen mukaan tässä järjestyksessä. Jos haluat vain siirtää koodisi, hyppää lopussa olevaan siirtymistarkistuslistaan. Jokainen commit-tiiviste linkittää diffiinsä GitHubissa.

time / utime -moduulit yhdistettiin (vähäinen)

time- ja utime-moduulit yhdistettiin, ja OpenMV:n clock-luokka siirrettiin moduuliin utime. Kaikki mukana toimitetut esimerkit päivitettiin muotoon import utime / clock = utime.clock(). Skriptien, jotka luottivat clock-luokan saamiseen komennolla import time, tulisi tuoda utime sen sijaan.

Commitit: 20587f308

F4:n pyb.DAC DMA-funktiot poistettiin käytöstä (vähäinen)

F4-pohjaisilla korteilla DMA:ta vaativat pyb.DAC -funktiot poistettiin käytöstä, koska F4:n keko sijaitsee CCM:ssä, joka ei ole DMA:n käytettävissä. F4-skriptien, jotka käyttivät DAC DMA -puskurikirjoituksia, on vältettävä näitä funktioita.

Commitit: d61f236f2

MicroPython päivitettiin versioon 1.13 (käyttäytyminen)

Mukana toimitettu MicroPython-ydin päivitettiin versioon 1.13. Vakiokirjaston ja kielen käyttäytyminen noudattaa MicroPython 1.13:n yläjuurta; tarkista uudelleen skriptit, jotka riippuvat versiokohtaisesta micropython - / vakiomoduulikäyttäytymisestä.

Commitit: fb0a5e26d

cpufreq-tuetut taajuudet ovat versiokohtaisia (käyttäytyminen)

Lisää CPU-taajuuksia lisättiin ja tehtiin piiriversiotietoisiksi: cpufreq.get_supported_frequencies() palauttaa nyt H7:llä versiokohtaisen listan (50/100/200/400 MHz rev X/Y:llä, 60/120/240/480 MHz rev V:llä). Skriptien, jotka kovakoodasivat taajuuden vanhasta kiinteästä listasta, tulisi kysellä tuettua listaa ajonaikaisesti.

Commitit: 825dd0742

Siirtymistarkistuslista

Puhdas siirtyminen versioon v3.8.0 tarkoittaa tyypillisesti:

  1. Vaihda import time muotoon import utime siellä, missä käytät clock-luokkaa (time/utime-yhdistäminen).

  2. F4-korteilla lopeta pyb.DAC DMA-puskurifunktioiden käyttö (F4 DAC -muutos).

  3. Validoi uudelleen skriptit, jotka riippuvat versiokohtaisesta MicroPython-käyttäytymisestä versiota 1.13 vasten (MicroPython-päivitys) ja kysele cpufreq.get_supported_frequencies() ajonaikaisesti kovakoodaamisen sijaan (cpufreq-muutos).

Kaikki muut skriptit toimivat muuttumattomina.