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
VBATiç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 (genellikle8,10veya12).mask, hangi kanalların etkinleştirileceğini seçen 32 bitlik bir bit maskesidir;NbitiNkanalını etkinleştirir. Varsayılan değeri0xffffffff(tüm kanallar) şeklindedir. Dahili kanallar16(sıcaklık),17(VBAT) ve18(VREF) bitlerinde bulunur, bu nedenle yalnızca dahili kanalları etkinleştirmek için0x70000değ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 (
0–15), yapılandırılan çözünürlükte ölçeklenmemiş ham değerler döndürür; dahili kanallar (16–18) 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.3değ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.