ADCAll osztály – az összes ADC-csatorna elérése¶
Az ADCAll egyetlen objektumon keresztül teszi elérhetővé az MCU összes ADC-csatornáját – mind a külső analóg bemeneti lábakat, mind a lapkahőmérséklet, az 1,21 V-os referencia és a VBAT belső csatornáit. Hasznos az MCU tápsínjének és lapkán belüli érzékelőinek figyeléséhez anélkül, hogy lábanként egy-egy ADC objektumot kellene példányosítani.
Példa:
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()
Konstruktorok¶
- class pyb.ADCAll(resolution: int, mask: int = 0xffffffff)¶
Egyidejű hozzáférést biztosít az MCU összes ADC-csatornájához, beleértve a lapkahőmérséklet, a belső 1,21 V-os referencia és a
VBATbelső csatornáit is. Az objektum létrehozása az összes maszkolt külső ADC-lábat analóg bemeneti módba kapcsolja.A
resolutionaz ADC átalakítási felbontása bitekben (jellemzően8,10vagy12).A
maskegy 32 bites bitmaszk, amely kiválasztja, mely csatornák legyenek engedélyezve; azNbit engedélyezi azNcsatornát. Alapértelmezett értéke0xffffffff(minden csatorna). A belső csatornák a16(hőmérséklet),17(VBAT) és18(VREF) biteken találhatók, így ha csak a belső csatornákat szeretnéd engedélyezni, add át a0x70000értéket.
A lapkán belüli hőmérséklet-érzékelő gyárilag kalibrált és körülbelül ±1 °C pontosságú, de a lapka hőmérsékletét méri – amely jellemzően több tíz fokkal a környezeti hőmérséklet felett van, amikor az MCU aktív. A leolvasások csak egy frissen felébresztett panelen jelentenek értelmes közelítést a környezeti hőmérsékletre.
Figyelem
Az analóg bemeneti feszültségek soha nem haladhatják meg a tényleges tápfeszültséget.
Metódusok¶
- read_channel(channel: int) int¶
Beolvassa a megadott ADC-csatornát. A külső csatornák (
0–15) skálázatlan nyers értékeket adnak vissza a beállított felbontáson; a belső csatornák (16–18) szintén nyers értékeket adnak vissza, de az alábbi dedikált segédfüggvények feszültségekké alakítják őket.
- read_core_temp() float¶
Visszaadja a lapkán belüli hőmérsékletet Celsius-fokban, amelyet a belső hőmérsékleti csatornából és az MCU-ban tárolt gyári kalibrációs értékekből számít ki.
- read_core_vbat() float¶
Visszaadja a tartalék akkumulátor feszültségét voltban. A leolvasás egy lapkán belüli feszültségosztón keresztül történik (így a fejtér nem korlátozza az ADC bemeneti tartományát), majd visszaskálázódik a tényleges akkumulátorfeszültségre. Az osztó csak az ADC-átalakítás során aktív, így a tartalék akkumulátor készenléti lemerülése elhanyagolható.
- read_core_vref() float¶
Visszaadja a belső 1,21 V-os (névleges) referenciafeszültséget voltban, az MCU tápfeszültségét használva ADC-referenciaként. Ez a nyers átalakítási eredmény.
- read_vref() float¶
Visszaadja az MCU tápfeszültségét voltban. A belső feszültségreferencia mérésével és annak gyári kalibrációs értékével történő visszaskálázással számolja ki. Egy egészséges 3,3 V-os tápsín esetén a leolvasás közel lesz a
3.3értékhez. Az MCU továbbra is működik – és az ADC-átalakítások továbbra is értelmesek maradnak – akár körülbelül 2 V-os tápfeszültség mellett is, feltéve, hogy a megfelelő MCU-órajelet, flash-hozzáférési sebességet és programozási mód beállításokat betartják.