v3.8.0¶
v3.8.0 cập nhật nhân lõi lên MicroPython 1.13, đóng băng một tập hợp lớn các thư viện trợ giúp vào firmware, bổ sung hỗ trợ Ethernet cho Portenta (kèm các ví dụ mạng), hỗ trợ HDMI CEC cho mô-đun lcd, cấu hình tốc độ baud/điểm lấy mẫu cho pyb.CAN, cùng hàng loạt bản vá lỗi tiết kiệm điện và HAL cho H7. Các mô-đun time / utime đã được hợp nhất và DMA của pyb.DAC trên F4 đã bị vô hiệu hóa — hãy đọc phần thay đổi không tương thích bên dưới.
Điểm nổi bật¶
MicroPython 1.13 — nhân MicroPython được đóng gói đã được cập nhật.
Thư viện đóng băng —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,pid,ssd1306và nhiều hơn nữa hiện đã được đóng băng vào firmware.Ethernet cho Portenta — hỗ trợ Ethernet cùng các ví dụ HTTP / SSL / ngang hàng.
HDMI CEC — API CEC mới trong mô-đun
lcd(Pure Thermal).pyb.CAN— định thời bit từ các từ khóabaudrate/sampling_point.Thay đổi không tương thích: các mô-đun
time/utimeđã được hợp nhất và các hàm DMA củapyb.DACtrên F4 đã bị vô hiệu hóa — xem phần thay đổi không tương thích.
Tính năng mới¶
Manifest đóng băng —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,mutex,pid,ssd1306,tb6612vàvl53l1xhiện đã được đóng băng vào firmware trên OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.Ethernet cho Portenta — đã kích hoạt Ethernet với các ví dụ
http_client,http_client_sslvàpeer_to_peer.HDMI CEC — đã thêm API HDMI CEC vào mô-đun
lcd(Pure Thermal).pyb.CAN— hàm khởi tạo /init()giờ đây tự suy ra định thời bit từ các từ khóabaudratevàsampling_point(dạng prescaler thủ công vẫn hoạt động); các ví dụ CAN đã được cập nhật tương ứng.
Các thay đổi và cải tiến khác¶
Banner REPL giờ bao gồm chuỗi phiên bản HAL; ví dụ Audio FFT đã được cập nhật cho API
ulabmới hơn.
Sửa lỗi¶
Camera và cảm biến:
Đã sửa tần số xung nhịp OV2640 và tần số chia tỷ lệ PCLK của OV5640 trên thiết bị STM32H7 rev Y; khôi phục bus I2C FIR khỏi trạng thái mất phân xử bằng cách bật xung SCL, và thử lại khởi tạo AMG8833 khi reset mềm F7.
Nguồn điện và bộ định thời:
Đã sửa lỗi vào chế độ tiết kiệm điện H7 (stop/standby) — điều chỉnh điện áp cho rev V, bật lại bộ dao động/PLL khi thức dậy, SDRAM tiết kiệm điện với giữ lại DRAM, vô hiệu hóa Systick khi vào chế độ stop, và chỉ bật DBGMCU trong bản debug. Đã sửa trạng thái HAL của
machine.Timersau bản cập nhật HAL H7 và hoàn nguyên thay đổi ưu tiên IRQ đọc/ghi SD.
Màn hình và kết nối:
Đã sửa cấu hình kích thước dữ liệu 8/16-bit của F4 SPI LCD (định nghĩa
MCU_SERIESsai), trả về lỗi khi khởi tạo bus SPI WINC1500 thất bại thay vì tiếp tục âm thầm, và dùng xử lý SPI tĩnh để tránh xung đột bus SPI WINC1500. Đã sửa lỗi GC-collect trong MicroPython.
Hệ thống:
unittests.pykhông còn đánh dấu bộ kiểm tra là thất bại khi một bài kiểm tra bị vô hiệu hóa hoặc không khả dụng; đã xóa các ví dụcamera_lcdcủa Thermopile-shield bị lỗi.
Phần cứng và hỗ trợ bo mạch¶
OpenMV Pure Thermal — bo mạch đã được cập nhật và đổi tên (
OPENMVPURETHERMAL→OPENMVPT), với HDMI CEC.OpenMV 2 — đã bật driver camera OV2640.
Arduino Portenta H7 — hỗ trợ Ethernet.
Thay đổi API không tương thích¶
Các thay đổi API hiển thị với người dùng giữa v3.7.0 và v3.8.0. Phạm vi: các C-module Python trong modules/ và thư viện Python trong scripts/libraries/.
Mỗi thay đổi được gắn thẻ theo mức độ ảnh hưởng:
nhỏ — API hẹp; chỉ ảnh hưởng đến tập lệnh đã sử dụng nó.
hành vi — cùng API, kết quả khác; hãy kiểm tra lại các tập lệnh đã tinh chỉnh.
Các thay đổi được nhóm theo mức độ ảnh hưởng theo thứ tự đó. Nếu bạn chỉ muốn chuyển đổi code, hãy chuyển đến danh sách kiểm tra di chuyển ở cuối trang. Mỗi mã băm commit liên kết đến diff trên GitHub.
Hợp nhất mô-đun time / utime (nhỏ)¶
Các mô-đun time và utime đã được hợp nhất và class clock của OpenMV đã được chuyển sang utime. Tất cả các ví dụ đi kèm đã được cập nhật thành import utime / clock = utime.clock(). Các tập lệnh dựa vào import time để lấy class clock nên chuyển sang dùng utime.
Commits: 20587f308
Các hàm DMA của pyb.DAC trên F4 bị vô hiệu hóa (nhỏ)¶
Trên các bo mạch F4, các hàm của pyb.DAC cần DMA đã bị vô hiệu hóa vì heap F4 nằm trong CCM, không thể truy cập DMA. Các tập lệnh F4 sử dụng ghi bộ đệm DMA DAC phải tránh những hàm đó.
Commits: d61f236f2
MicroPython cập nhật lên 1.13 (hành vi)¶
Nhân MicroPython được đóng gói đã được cập nhật lên 1.13. Hành vi thư viện chuẩn và ngôn ngữ theo MicroPython 1.13 thượng nguồn; hãy kiểm tra lại các tập lệnh phụ thuộc vào hành vi micropython / mô-đun chuẩn theo phiên bản cụ thể.
Commits: fb0a5e26d
Các tần số được hỗ trợ của cpufreq phụ thuộc vào phiên bản silicon (hành vi)¶
Đã bổ sung thêm tần số CPU và làm cho chúng nhận biết phiên bản silicon: cpufreq.get_supported_frequencies() giờ trả về danh sách phụ thuộc phiên bản trên H7 (50/100/200/400 MHz trên rev X/Y, 60/120/240/480 MHz trên rev V). Các tập lệnh đã mã hóa cứng tần số từ danh sách cố định cũ nên truy vấn danh sách được hỗ trợ tại thời gian chạy.
Commits: 825dd0742
Danh sách kiểm tra di chuyển¶
Để chuyển đổi sạch sang v3.8.0, công việc thông thường là:
Thay
import timethànhimport utimekhi bạn dùng classclock(phần hợp nhất time/utime).Trên bo mạch F4, dừng sử dụng các hàm bộ đệm DMA của
pyb.DAC(thay đổi DAC F4).Xác nhận lại các tập lệnh phụ thuộc vào hành vi MicroPython theo phiên bản cụ thể so với 1.13 (phần nâng cấp MicroPython) và truy vấn
cpufreq.get_supported_frequencies()tại thời gian chạy thay vì mã hóa cứng (thay đổi cpufreq).
Tất cả các tập lệnh khác chạy không thay đổi.