class ADCAll – åtkomst till alla ADC-kanaler

ADCAll exponerar varje ADC-kanal på MCU:n genom ett enda objekt – både de externa analoga ingångsstiften och de interna kanalerna för die-temperatur, 1,21 V-referensen och VBAT. Den är användbar för att övervaka MCU:ns matningsspänning och on-chip-sensorer utan att instansiera en ADC per stift.

Exempel:

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

Konstruktorer

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

Ger samtidig åtkomst till varje ADC-kanal på MCU:n, inklusive de interna kanalerna för die-temperatur, den interna 1,21 V-referensen och VBAT. Att konstruera detta objekt ställer om alla maskade externa ADC-stift till analogt ingångsläge.

  • resolution är ADC-omvandlingens upplösning i bitar (vanligtvis 8, 10 eller 12).

  • mask är en 32-bitars bitmask som väljer vilka kanaler som ska aktiveras; bit N aktiverar kanal N. Standardvärdet är 0xffffffff (alla kanaler). De interna kanalerna finns på bitarna 16 (temperatur), 17 (VBAT) och 18 (VREF), så för att endast aktivera de interna kanalerna skickar du 0x70000.

On-chip-temperatursensorn är fabrikskalibrerad och noggrann till ungefär ±1 °C, men den mäter die-temperaturen – som vanligtvis ligger tiotals grader över omgivningstemperaturen när MCU:n är aktiv. Avläsningar är endast meningsfulla som ett mått på omgivningstemperaturen på ett nyss uppvaknat kort.

Varning

Analoga ingångsspänningar får aldrig överskrida den faktiska matningsspänningen.

Metoder

read_channel(channel: int) int

Läser den angivna ADC-kanalen. Externa kanaler (015) returnerar oskalade råvärden vid den konfigurerade upplösningen; de interna kanalerna (1618) returnerar också råvärden, men de dedikerade hjälpfunktionerna nedan omvandlar dem till spänningar.

read_core_temp() float

Returnerar die-temperaturen i grader Celsius, beräknad från den interna temperaturkanalen och de fabrikskalibreringsvärden som lagras i MCU:n.

read_core_vbat() float

Returnerar backup-batteriets spänning i volt. Avläsningen sker genom en on-chip-spänningsdelare (så att marginalen inte begränsar ADC:ns ingångsområde) och skalas tillbaka till den faktiska batterispänningen. Delaren är endast aktiv under ADC-omvandlingen, så standby-strömförbrukningen från backup-batteriet är försumbar.

read_core_vref() float

Returnerar den interna 1,21 V-referensspänningen (nominellt) i volt, mätt med MCU:ns matningsspänning som ADC-referens. Detta är det råa omvandlingsresultatet.

read_vref() float

Returnerar MCU:ns matningsspänning i volt. Beräknas genom att mäta den interna spänningsreferensen och baklänges skala med dess fabrikskalibreringsvärde. Med en frisk 3,3 V-skena ligger avläsningen nära 3.3. MCU:n fortsätter att fungera – och ADC-omvandlingar förblir meningsfulla – med en matning så låg som omkring 2 V, förutsatt att lämpliga inställningar för MCU-klocka, flashåtkomsthastighet och programmeringsläge följs.