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 VBAT belső csatornáit is. Az objektum létrehozása az összes maszkolt külső ADC-lábat analóg bemeneti módba kapcsolja.

  • A resolution az ADC átalakítási felbontása bitekben (jellemzően 8, 10 vagy 12).

  • A mask egy 32 bites bitmaszk, amely kiválasztja, mely csatornák legyenek engedélyezve; az N bit engedélyezi az N csatornát. Alapértelmezett értéke 0xffffffff (minden csatorna). A belső csatornák a 16 (hőmérséklet), 17 (VBAT) és 18 (VREF) biteken találhatók, így ha csak a belső csatornákat szeretnéd engedélyezni, add át a 0x70000 é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 (015) skálázatlan nyers értékeket adnak vissza a beállított felbontáson; a belső csatornák (1618) 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.