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.

  • resolution on ADC-muunnoksen resoluutio bitteinä (tyypillisesti 8, 10 tai 12).

  • mask on 32-bittinen bittimaski, joka valitsee otettavat kanavat käyttöön; bitti N ottaa käyttöön kanavan N. Oletusarvo on 0xffffffff (kaikki kanavat). Sisäiset kanavat sijaitsevat biteissä 16 (lämpötila), 17 (VBAT) ja 18 (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 (015) palauttavat skaalaamattomia raaka-arvoja määritetyllä resoluutiolla; sisäiset kanavat (1618) 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.