klasa ADCAll – pristup svim ADC kanalima

ADCAll izlaže svaki ADC kanal na MCU-u kroz jedan objekt – i vanjske pinove analognog ulaza i interne kanale za temperaturu čipa, referencu od 1,21 V te VBAT. Korisno je za nadzor naponske šine MCU-a i senzora na čipu bez instanciranja ADC za svaki pin.

Primjer:

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()

Konstruktori

class pyb.ADCAll(resolution: int, mask: int = 0xffffffff)

Pruža istovremeni pristup svakom ADC kanalu na MCU-u, uključujući interne kanale za temperaturu čipa, internu referencu od 1,21 V i VBAT. Stvaranje ovog objekta prebacuje sve maskirane vanjske ADC pinove u način rada analognog ulaza.

  • resolution je razlučivost ADC pretvorbe u bitovima (obično 8, 10 ili 12).

  • mask je 32-bitna bitna maska koja odabire koje kanale omogućiti; bit N omogućuje kanal N. Zadana vrijednost je 0xffffffff (svi kanali). Interni kanali nalaze se na bitovima 16 (temperatura), 17 (VBAT) i 18 (VREF), pa za omogućavanje samo internih kanala proslijedite 0x70000.

Temperaturni senzor na čipu tvornički je kalibriran i točan na otprilike ±1 °C, ali mjeri temperaturu čipa – koja je obično desetke stupnjeva iznad okolne kada je MCU aktivan. Očitanja su smislena kao zamjena za okolnu temperaturu samo na tek probuđenoj pločici.

Upozorenje

Naponi analognog ulaza nikada ne smiju premašiti stvarni napon napajanja.

Metode

read_channel(channel: int) int

Čita zadani ADC kanal. Vanjski kanali (015) vraćaju neskalirane sirove vrijednosti na konfiguriranoj razlučivosti; interni kanali (1618) također vraćaju sirove vrijednosti, ali ih namjenske pomoćne funkcije navedene u nastavku pretvaraju u napone.

read_core_temp() float

Vraća temperaturu na čipu u stupnjevima Celzija, izračunatu iz internog temperaturnog kanala i tvorničkih kalibracijskih vrijednosti pohranjenih u MCU-u.

read_core_vbat() float

Vraća napon pričuvne baterije u voltima. Očitanje se uzima kroz djelitelj napona na čipu (pa zalihu ne ograničava ulazni raspon ADC-a) i ponovno se skalira na stvarni napon baterije. Djelitelj je aktivan samo tijekom ADC pretvorbe, pa je potrošnja pričuvne baterije u stanju mirovanja zanemariva.

read_core_vref() float

Vraća internu (nazivnu) referentnu napon od 1,21 V u voltima, izmjeren s napajanjem MCU-a kao referencom ADC-a. Ovo je sirovi rezultat pretvorbe.

read_vref() float

Vraća napon napajanja MCU-a u voltima. Izračunava se mjerenjem interne naponske reference i povratnim skaliranjem pomoću njezine tvorničke kalibracijske vrijednosti. S ispravnom šinom od 3,3 V očitanje će biti blizu 3.3. MCU nastavlja raditi – a ADC pretvorbe ostaju smislene – s napajanjem niskim do oko 2 V, pod uvjetom da se poštuju odgovarajuće postavke takta MCU-a, brzine pristupa flash memoriji i načina programiranja.