v3.8.0¶
v3.8.0 оновлює ядро до MicroPython 1.13, заморожує великий набір допоміжних бібліотек у мікропрограмі, додає Portenta Ethernet (з прикладами мережевої роботи), підтримку HDMI CEC у модулі lcd, конфігурацію швидкості передачі / точки вибірки pyb.CAN, а також низку виправлень для H7 з низьким споживанням та HAL. Модулі time / utime були об’єднані, а DMA pyb.DAC для F4 вимкнено — ознайомтеся зі змінами, що порушують сумісність, нижче.
Основні нововведення¶
MicroPython 1.13 — оновлено вбудоване ядро MicroPython.
Заморожені бібліотеки —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,pid,ssd1306та інші тепер заморожені у мікропрограмі.Portenta Ethernet — підтримка Ethernet з прикладами HTTP / SSL / peer-to-peer.
HDMI CEC — новий CEC API у модулі
lcd(Pure Thermal).pyb.CAN— часові параметри передачі з ключовими словамиbaudrate/sampling_point.Порушення сумісності: модулі
time/utimeбули об’єднані, а функції DMApyb.DACдля F4 вимкнено — дивіться зміни, що порушують сумісність.
Нові функції¶
Заморожений маніфест —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,mutex,pid,ssd1306,tb6612таvl53l1xтепер заморожені у мікропрограмі для OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.Portenta Ethernet — увімкнено Ethernet з прикладами
http_client,http_client_sslтаpeer_to_peer.HDMI CEC — додано HDMI CEC API до модуля
lcd(Pure Thermal).pyb.CAN— конструктор /init()тепер виводить часові параметри з ключових слівbaudrateтаsampling_point(ручна форма з prescaler також працює); приклади CAN оновлено відповідно.
Інші зміни та покращення¶
Банер REPL тепер включає рядок версії HAL; приклад Audio FFT оновлено для нового API
ulab.
Виправлення помилок¶
Камера та датчики:
Виправлено масштабування тактового сигналу OV2640 та PCLK-частоти OV5640 на пристроях STM32H7 версії Y; відновлення шини FIR I2C після стану втрати арбітражу шляхом імпульсного подачі SCL, а також повторна ініціалізація AMG8833 при м’якому скиданні F7.
Живлення та таймери:
Виправлено вхід у режим низького споживання H7 (зупинка/резервний режим) — масштабування напруги для версії V, повторне вмикання генератора/PLL при пробудженні, низьке споживання SDRAM із збереженням даних DRAM, вимкнення Systick при переході в режим зупинки та вмикання DBGMCU лише у відлагоджувальних збірках. Виправлено стан HAL
machine.Timerпісля оновлення H7 HAL та повернено зміну пріоритету переривань читання/запису SD.
Дисплей та підключення:
Виправлено конфігурацію розміру даних 8/16 біт F4 SPI LCD (неправильне визначення
MCU_SERIES), повернення помилки при невдалій ініціалізації шини SPI WINC1500 замість тихого продовження, а також використання статичного дескриптора SPI для уникнення конфліктів шини SPI WINC1500. Виправлено помилку GC-collect у MicroPython.
Система:
unittests.pyбільше не позначає набір тестів як невдалий, якщо тест вимкнено або недоступний; видалено несправні прикладиcamera_lcdдля Thermopile-shield.
Апаратне забезпечення та підтримка плат¶
OpenMV Pure Thermal — плату оновлено та перейменовано (
OPENMVPURETHERMAL→OPENMVPT), з HDMI CEC.OpenMV 2 — увімкнено драйвер камери OV2640.
Arduino Portenta H7 — підтримка Ethernet.
Зміни API, що порушують сумісність¶
Видимі користувачу зміни API між v3.7.0 та v3.8.0. Область: C-модулі Python у modules/ та бібліотеки Python у scripts/libraries/.
Кожна зміна позначена рівнем впливу:
незначний — вузький API; стосується лише скриптів, що його використовували.
поведінковий — той самий API, інші результати; перевірте налаштовані скрипти.
Зміни згруповані за рівнем впливу у такому порядку. Якщо ви просто хочете портувати код, перейдіть до контрольного списку міграції в кінці. Кожен хеш коміту веде до його різниці на GitHub.
Модулі time / utime об’єднано (незначний)¶
Модулі time та utime були об’єднані, а клас OpenMV clock переміщено до utime. Усі вбудовані приклади оновлено до import utime / clock = utime.clock(). Скрипти, що використовували import time для класу clock, повинні використовувати utime натомість.
Коміти: 20587f308
Функції DMA pyb.DAC для F4 вимкнено (незначний)¶
На платах на базі F4 функції pyb.DAC, що потребують DMA, були вимкнені, оскільки купа F4 знаходиться в CCM, який недоступний для DMA. Скрипти F4, що використовували запис у буфер DMA DAC, повинні уникати цих функцій.
Коміти: d61f236f2
MicroPython оновлено до 1.13 (поведінковий)¶
Вбудоване ядро MicroPython оновлено до 1.13. Поведінка стандартної бібліотеки та мови відповідає upstream MicroPython 1.13; перевірте скрипти, що залежать від специфічної для версії поведінки micropython / стандартних модулів.
Коміти: fb0a5e26d
Підтримувані частоти cpufreq залежать від версії (поведінковий)¶
Додано більше частот CPU та враховано версію кристала: cpufreq.get_supported_frequencies() тепер повертає список, що залежить від версії, на H7 (50/100/200/400 МГц для версій X/Y, 60/120/240/480 МГц для версії V). Скрипти, які жорстко кодували частоту зі старого фіксованого списку, повинні запитувати список підтримуваних частот під час виконання.
Коміти: 825dd0742
Контрольний список міграції¶
Для чистого порту до v3.8.0 типова робота полягає в:
Змінити
import timeнаimport utimeтам, де використовується класclock(об’єднання time/utime).На платах F4 припинити використання функцій DMA-буфера
pyb.DAC(зміна F4 DAC).Повторно перевірити скрипти, що залежать від специфічної для версії поведінки MicroPython, відносно 1.13 (оновлення MicroPython) та запитувати
cpufreq.get_supported_frequencies()під час виконання замість жорсткого кодування (зміна cpufreq).
Усі інші скрипти працюють без змін.