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.resolutionje razlučivost ADC pretvorbe u bitovima (obično8,10ili12).maskje 32-bitna bitna maska koja odabire koje kanale omogućiti; bitNomogućuje kanalN. Zadana vrijednost je0xffffffff(svi kanali). Interni kanali nalaze se na bitovima16(temperatura),17(VBAT) i18(VREF), pa za omogućavanje samo internih kanala proslijedite0x70000.
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 (
0–15) vraćaju neskalirane sirove vrijednosti na konfiguriranoj razlučivosti; interni kanali (16–18) 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.