class ADCAll – tüm ADC kanallarına erişim

ADCAll, MCU üzerindeki her ADC kanalını tek bir nesne aracılığıyla sunar – hem harici analog giriş pinlerini hem de çip sıcaklığı, 1,21 V referans ve VBAT için dahili kanalları. Her pin için bir ADC örneği oluşturmadan MCU’nun besleme hattını ve çip üzerindeki sensörleri izlemek için kullanışlıdır.

Örnek:

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

Yapıcılar

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

MCU üzerindeki her ADC kanalına eşzamanlı erişim sağlar; buna çip sıcaklığı, dahili 1,21 V referans ve VBAT için dahili kanallar da dahildir. Bu nesneyi oluşturmak, maskelenmiş tüm harici ADC pinlerini analog giriş moduna geçirir.

  • resolution, bit cinsinden ADC dönüşüm çözünürlüğüdür (genellikle 8, 10 veya 12).

  • mask, hangi kanalların etkinleştirileceğini seçen 32 bitlik bir bit maskesidir; N biti N kanalını etkinleştirir. Varsayılan değeri 0xffffffff (tüm kanallar) şeklindedir. Dahili kanallar 16 (sıcaklık), 17 (VBAT) ve 18 (VREF) bitlerinde bulunur, bu nedenle yalnızca dahili kanalları etkinleştirmek için 0x70000 değerini geçirin.

Çip üzerindeki sıcaklık sensörü fabrikada kalibre edilmiştir ve yaklaşık ±1 °C doğruluğa sahiptir, ancak çip sıcaklığını ölçer – ki bu, MCU aktif olduğunda genellikle ortam sıcaklığının onlarca derece üzerindedir. Okumalar yalnızca yeni uyandırılmış bir kartta ortam sıcaklığı için bir vekil değer olarak anlamlıdır.

Uyarı

Analog giriş gerilimleri asla gerçek besleme gerilimini aşmamalıdır.

Metotlar

read_channel(channel: int) int

Verilen ADC kanalını okur. Harici kanallar (015), yapılandırılan çözünürlükte ölçeklenmemiş ham değerler döndürür; dahili kanallar (1618) de ham değerler döndürür, ancak aşağıdaki özel yardımcılar bunları gerilimlere dönüştürür.

read_core_temp() float

Dahili sıcaklık kanalından ve MCU içinde saklanan fabrika kalibrasyon değerlerinden hesaplanan, çip üzerindeki sıcaklığı santigrat derece cinsinden döndürür.

read_core_vbat() float

Yedek pil gerilimini volt cinsinden döndürür. Okuma, çip üzerindeki bir gerilim bölücü aracılığıyla alınır (böylece pay alanı ADC’nin giriş aralığını kısıtlamaz) ve gerçek pil gerilimine geri ölçeklendirilir. Bölücü yalnızca ADC dönüşümü sırasında aktiftir, bu nedenle yedek pildeki bekleme akımı tüketimi ihmal edilebilir düzeydedir.

read_core_vref() float

MCU beslemesi ADC referansı olarak kullanılarak ölçülen, dahili 1,21 V (nominal) referans gerilimini volt cinsinden döndürür. Bu, ham dönüşüm sonucudur.

read_vref() float

MCU besleme gerilimini volt cinsinden döndürür. Dahili gerilim referansı ölçülerek ve fabrika kalibrasyon değeri kullanılarak geri ölçeklendirilerek hesaplanır. Sağlıklı bir 3,3 V hat ile okuma 3.3 değerine yakın olacaktır. Uygun MCU saati, flash erişim hızı ve programlama modu ayarlarına uyulması koşuluyla, MCU yaklaşık 2 V kadar düşük bir besleme ile çalışmaya devam eder – ve ADC dönüşümleri anlamlı kalır.