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 (vanligtvis8,10eller12).maskär en 32-bitars bitmask som väljer vilka kanaler som ska aktiveras; bitNaktiverar kanalN. Standardvärdet är0xffffffff(alla kanaler). De interna kanalerna finns på bitarna16(temperatur),17(VBAT) och18(VREF), så för att endast aktivera de interna kanalerna skickar du0x70000.
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 (
0–15) returnerar oskalade råvärden vid den konfigurerade upplösningen; de interna kanalerna (16–18) 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.