luokka ADCAll – pääsy kaikkiin ADC-kanaviin¶
ADCAll tarjoaa pääsyn jokaiseen MCU:n ADC-kanavaan yhden objektin kautta – sekä ulkoisiin analogiatulonastoihin että sisäisiin kanaviin sirun lämpötilaa, 1,21 V:n referenssiä ja VBAT:ia varten. Se on hyödyllinen MCU:n syöttöjännitekiskon ja sirun sisäisten sensoreiden valvonnassa luomatta erillistä ADC-objektia kullekin nastalle.
Esimerkki:
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()
Konstruktorit¶
- class pyb.ADCAll(resolution: int, mask: int = 0xffffffff)¶
Tarjoaa samanaikaisen pääsyn jokaiseen MCU:n ADC-kanavaan, mukaan lukien sisäiset kanavat sirun lämpötilaa, sisäistä 1,21 V:n referenssiä ja
VBAT:ia varten. Tämän objektin luominen vaihtaa kaikki maskatut ulkoiset ADC-nastat analogiatulotilaan.resolutionon ADC-muunnoksen resoluutio bitteinä (tyypillisesti8,10tai12).maskon 32-bittinen bittimaski, joka valitsee otettavat kanavat käyttöön; bittiNottaa käyttöön kanavanN. Oletusarvo on0xffffffff(kaikki kanavat). Sisäiset kanavat sijaitsevat biteissä16(lämpötila),17(VBAT) ja18(VREF), joten ottaaksesi käyttöön vain sisäiset kanavat välitä0x70000.
Sirun sisäinen lämpötilasensori on tehtaalla kalibroitu ja tarkkuudeltaan noin ±1 °C, mutta se mittaa sirun lämpötilaa – joka on tyypillisesti kymmeniä asteita ympäristön lämpötilan yläpuolella MCU:n ollessa aktiivinen. Lukemat ovat merkityksellisiä ympäristön lämpötilan arviona vain juuri herätetyllä piirilevyllä.
Varoitus
Analogiatulojännitteet eivät saa koskaan ylittää todellista syöttöjännitettä.
Metodit¶
- read_channel(channel: int) int¶
Lue annettu ADC-kanava. Ulkoiset kanavat (
0–15) palauttavat skaalaamattomia raaka-arvoja määritetyllä resoluutiolla; sisäiset kanavat (16–18) palauttavat myös raaka-arvoja, mutta alla olevat erilliset apufunktiot muuntavat ne jännitteiksi.
- read_core_temp() float¶
Palauta sirun lämpötila celsiusasteina, laskettuna sisäisestä lämpötilakanavasta ja MCU:hun tallennetuista tehtaan kalibrointiarvoista.
- read_core_vbat() float¶
Palauta varmistusakun jännite voltteina. Lukema otetaan sirun sisäisen jännitejaon kautta (jotta marginaali ei rajoita ADC:n tuloaluetta) ja skaalataan takaisin todelliseksi akkujännitteeksi. Jännitejako on aktiivinen vain ADC-muunnoksen aikana, joten varmistusakun lepovirta on häviävän pieni.
- read_core_vref() float¶
Palauta sisäinen 1,21 V:n (nimellinen) referenssijännite voltteina, mitattuna MCU:n syöttöjännite ADC:n referenssinä. Tämä on raaka muunnostulos.
- read_vref() float¶
Palauta MCU:n syöttöjännite voltteina. Lasketaan mittaamalla sisäinen jänniteviite ja skaalaamalla takaisin sen tehtaan kalibrointiarvolla. Terveellä 3,3 V:n kiskolla lukema on lähellä arvoa
3.3. MCU jatkaa toimintaansa – ja ADC-muunnokset pysyvät merkityksellisinä – jopa noin 2 V:n syöttöjännitteellä, edellyttäen että asianmukaisia MCU:n kellotaajuus-, flash-muistin käyttönopeus- ja ohjelmointitila-asetuksia noudatetaan.