class ADCAll – גישה לכל ערוצי ה-ADC¶
ADCAll חושף כל ערוץ ADC על ה-MCU דרך אובייקט יחיד – הן את פיני הכניסה האנלוגיים החיצוניים והן את הערוצים הפנימיים עבור טמפרטורת השבב, מתח הייחוס של 1.21 V ו-VBAT. הוא שימושי לניטור פס המתח של ה-MCU ושל החיישנים שעל השבב מבלי ליצור מופע ADC לכל פין.
דוגמה:
import pyb
# 12-bit resolution, internal channels only (temp + VBAT + VREF).
adcall = pyb.ADCAll(12, 0x70000)
temp = adcall.read_core_temp()
vbat = adcall.read_core_vbat()
vref = adcall.read_core_vref()
vdda = adcall.read_vref()
בנאים¶
- class pyb.ADCAll(resolution: int, mask: int = 0xffffffff)¶
מספק גישה בו-זמנית לכל ערוץ ADC על ה-MCU, כולל הערוצים הפנימיים עבור טמפרטורת השבב, מתח הייחוס הפנימי של 1.21 V ו-
VBAT. יצירת אובייקט זה מעבירה את כל פיני ה-ADC החיצוניים הממוסכים למצב כניסה אנלוגית.resolutionהיא רזולוציית ההמרה של ה-ADC בביטים (בדרך כלל8,10או12).maskהיא מסכת ביטים בת 32 ביט הבוחרת אילו ערוצים להפעיל; ביטNמפעיל את ערוץN. ברירת המחדל היא0xffffffff(כל הערוצים). הערוצים הפנימיים שוכנים בביטים16(טמפרטורה),17(VBAT) ו-18(VREF), כך שכדי להפעיל רק את הערוצים הפנימיים העבירו0x70000.
חיישן הטמפרטורה שעל השבב מכויל במפעל ומדויק עד כדי ±1 °C בקירוב, אך הוא מודד את טמפרטורת השבב – שהיא בדרך כלל עשרות מעלות מעל הסביבה כאשר ה-MCU פעיל. הקריאות משמעותיות רק כקירוב לטמפרטורת הסביבה על לוח שזה עתה התעורר.
אזהרה
מתחי הכניסה האנלוגיים אסור שיחרגו לעולם ממתח האספקה בפועל.
מתודות¶
- read_channel(channel: int) int¶
קריאת ערוץ ה-ADC הנתון. ערוצים חיצוניים (
0–15) מחזירים ערכים גולמיים לא מנורמלים ברזולוציה המוגדרת; הערוצים הפנימיים (16–18) מחזירים אף הם ערכים גולמיים, אך הפונקציות העזר הייעודיות שלהלן ממירות אותם למתחים.
- read_core_temp() float¶
החזרת טמפרטורת השבב במעלות צלזיוס, המחושבת מהערוץ הפנימי לטמפרטורה ומערכי כיול המפעל המאוחסנים ב-MCU.
- read_core_vbat() float¶
החזרת מתח סוללת הגיבוי בוולטים. הקריאה נלקחת דרך מחלק מתח שעל השבב (כך שהמרווח אינו מגביל את טווח הכניסה של ה-ADC) ומונרמלת בחזרה למתח הסוללה בפועל. מחלק המתח פעיל רק במהלך ההמרה של ה-ADC, כך שצריכת הזרם במצב המתנה מסוללת הגיבוי זניחה.
- read_core_vref() float¶
החזרת מתח הייחוס הפנימי של 1.21 V (נומינלי) בוולטים, הנמדד כאשר אספקת ה-MCU משמשת כייחוס ה-ADC. זוהי תוצאת ההמרה הגולמית.
- read_vref() float¶
החזרת מתח האספקה של ה-MCU בוולטים. מחושב על ידי מדידת מתח הייחוס הפנימי ונרמול חזרה באמצעות ערך כיול המפעל שלו. עם פס מתח תקין של 3.3 V הקריאה תהיה קרובה ל-
3.3. ה-MCU ממשיך לפעול – והמרות ה-ADC נותרות משמעותיות – עם אספקה נמוכה עד כדי כ-2 V, בתנאי שמקפידים על הגדרות שעון ה-MCU, מהירות גישה ל-flash ומצב התכנות המתאימות.