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 הנתון. ערוצים חיצוניים (015) מחזירים ערכים גולמיים לא מנורמלים ברזולוציה המוגדרת; הערוצים הפנימיים (1618) מחזירים אף הם ערכים גולמיים, אך הפונקציות העזר הייעודיות שלהלן ממירות אותם למתחים.

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 ומצב התכנות המתאימות.