v3.8.0

גרסה v3.8.0 מעדכנת את הליבה ל-MicroPython 1.13, מקפיאה אוסף גדול של ספריות עזר לתוך הקושחה, מוסיפה Portenta Ethernet (עם דוגמאות רישות), תמיכת HDMI CEC למודול lcd, הגדרת baudrate/נקודת דגימה של pyb.CAN, וגל של תיקוני צריכת חשמל נמוכה ו-HAL ל-H7. המודולים time / utime מוזגו, ופונקציות DMA של pyb.DAC ב-F4 הושבתו — קראו את השינויים השוברים שלהלן.

עיקרי הדברים

  • MicroPython 1.13 — ליבת MicroPython המצורפת עודכנה.

  • ספריות מוקפאותuasyncio, mqtt, rpc, rtsp, modbus, bno055, pid, ssd1306 ועוד מוקפאות כעת לתוך הקושחה.

  • Portenta Ethernet — תמיכת Ethernet בתוספת דוגמאות HTTP / SSL / עמית-לעמית.

  • HDMI CEC — ממשק CEC חדש במודול lcd (Pure Thermal).

  • pyb.CAN — תזמון ביטים ממילות המפתח baudrate / sampling_point.

  • שובר: המודולים time / utime מוזגו ופונקציות DMA של pyb.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 למודול lcd (Pure Thermal).

  • pyb.CAN — הבנאי / init() גוזרים כעת את תזמון הביטים ממילות המפתח baudrate ו-sampling_point (צורת ה-prescaler הידנית עדיין פועלת); דוגמאות CAN עודכנו בהתאם.

שינויים ושיפורים נוספים

  • באנר ה-REPL כולל כעת את מחרוזת גרסת ה-HAL; דוגמת ה-Audio FFT עודכנה עבור ממשק ulab החדש יותר.

תיקוני באגים

מצלמה וחיישנים:

  • תוקנו שעון חיישן ה-OV2640 ושינוי קנה המידה של תדר ה-PCLK של OV5640 בהתקני STM32H7 rev Y; שחזור אפיק ה-I2C של ה-FIR ממצב של אובדן בוררות באמצעות פעימת SCL, וניסיון חוזר לאתחול AMG8833 באתחול רך של F7.

צריכת חשמל וטיימרים:

  • תוקנה הכניסה למצב צריכת חשמל נמוכה (stop/standby) ב-H7 — שינוי קנה מידה של מתח עבור rev V, הפעלה מחדש של המתנד/PLL ביקיצה, צריכת חשמל נמוכה של SDRAM עם שמירת DRAM, השבתת Systick בכניסה ל-stop, והפעלת DBGMCU רק בבנייות debug. תוקן מצב ה-HAL של machine.Timer לאחר עדכון ה-HAL של H7 ובוטל שינוי עדיפות פסיקת הקריאה/כתיבה של SD.

תצוגה וקישוריות:

  • תוקנה הגדרת גודל הנתונים 8/16 ביט של ה-SPI LCD ב-F4 (הגדרת MCU_SERIES שגויה), הוחזרה שגיאה בכישלון אתחול אפיק SPI של WINC1500 במקום המשך שקט, ונעשה שימוש בידית SPI סטטית כדי להימנע מהתנגשויות אפיק SPI של WINC1500. תוקן באג איסוף זבל (GC) של MicroPython.

מערכת:

  • unittests.py לא מסמן עוד את החבילה ככושלת כאשר בדיקה מושבתת או לא זמינה; הוסרו דוגמאות camera_lcd השבורות של מגן ה-Thermopile.

תמיכת חומרה ולוחות

  • OpenMV Pure Thermal — הלוח עודכן ושמו שונה (OPENMVPURETHERMALOPENMVPT), עם HDMI CEC.

  • OpenMV 2 — מנהל ההתקן של מצלמת OV2640 הופעל.

  • Arduino Portenta H7 — תמיכת Ethernet.

שינויי API שוברים

שינויי API גלויים למשתמש בין v3.7.0 ל-v3.8.0. היקף: מודולי C של Python ב-modules/ וספריות Python ב-scripts/libraries/.

כל שינוי מתויג לפי ההשפעה שלו:

  • minor — ממשק צר; משפיע רק על סקריפטים שהשתמשו בו.

  • behavior — אותו ממשק, תוצאות שונות; בדקו מחדש סקריפטים מכוונים.

השינויים מקובצים לפי השפעה בסדר זה. אם אתם רק רוצים להעביר את הקוד שלכם, דלגו אל רשימת ההגירה בסוף. כל hash של קומיט מקשר ל-diff שלו ב-GitHub.

המודולים time / utime מוזגו (minor)

המודולים time ו-utime מוזגו ומחלקת ה-clock של OpenMV הועברה ל-utime. כל הדוגמאות המצורפות עודכנו ל-import utime / clock = utime.clock(). סקריפטים שהסתמכו על import time עבור מחלקת ה-clock צריכים לייבא utime במקום.

קומיטים: 20587f308

פונקציות DMA של pyb.DAC ב-F4 הושבתו (minor)

בלוחות מבוססי F4, פונקציות pyb.DAC הדורשות DMA הושבתו מכיוון שה-heap של F4 שוכן ב-CCM, שאינו נגיש ל-DMA. סקריפטים של F4 שהשתמשו בכתיבות לחוצץ DMA של DAC חייבים להימנע מפונקציות אלו.

קומיטים: d61f236f2

MicroPython עודכן ל-1.13 (behavior)

ליבת MicroPython המצורפת עודכנה ל-1.13. התנהגות ספריית התקן והשפה עוקבת אחר MicroPython 1.13 שבמעלה הזרם; בדקו מחדש סקריפטים התלויים בהתנהגות ספציפית לגרסה של micropython / מודולים סטנדרטיים.

קומיטים: fb0a5e26d

התדרים הנתמכים של cpufreq תלויים ברוויזיה (behavior)

נוספו תדרי CPU נוספים והם נעשו מודעים לרוויזיית הסיליקון: cpufreq.get_supported_frequencies() מחזיר כעת רשימה תלוית-רוויזיה ב-H7 (50/100/200/400 MHz ב-rev X/Y, 60/120/240/480 MHz ב-rev V). סקריפטים שקידדו תדר באופן קשיח מהרשימה הקבועה הישנה צריכים לתשאל את הרשימה הנתמכת בזמן ריצה.

קומיטים: 825dd0742

רשימת הגירה

להעברה נקייה ל-v3.8.0 העבודה הטיפוסית היא:

  1. שנו import time ל-import utime היכן שאתם משתמשים במחלקת ה-clock (מיזוג time/utime).

  2. בלוחות F4, הפסיקו להשתמש בפונקציות חוצץ DMA של pyb.DAC (שינוי ה-DAC של F4).

  3. אמתו מחדש סקריפטים התלויים בהתנהגות ספציפית לגרסה של MicroPython מול 1.13 (קפיצת MicroPython) ותשאלו את cpufreq.get_supported_frequencies() בזמן ריצה במקום קידוד קשיח (שינוי cpufreq).

כל שאר הסקריפטים פועלים ללא שינוי.