ADC çözünürlüğü, referans voltajı ve örnekleme hızı nedir? ADC okumasında doğruluğu etkileyen faktörler nelerdir?

Cevap

ADC, analog voltajı sayısal değere çevirir.

  • Çözünürlük (N bit): Toplam seviye sayısı 2^N. 12 bit ADC 0–4095 arası değer verir.
  • LSB: Vref / 2^N. 3.3 V referansla 12 bit ADC'de 1 LSB ≈ 0.806 mV.
  • Dönüşüm: V = raw * Vref / 2^N (bazı kaynaklar 2^N − 1 kullanır; fark çoğu uygulamada ihmal edilebilir).
uint16_t raw = adc_read(CH_TEMP);
uint32_t mv  = (uint32_t)raw * 3300U / 4096U;   /* tamsayı aritmetiği */

Örnekleme hızı

Nyquist kuralı: sinyaldeki en yüksek frekansın en az 2 katı hızla örneklemek gerekir. Pratikte 5–10 kat tercih edilir. Aksi hâlde yüksek frekanslar düşük frekans gibi görünür (aliasing); bunu önlemek için ADC önüne anti-aliasing low-pass filtre konur.

SAR ADC'lerde toplam dönüşüm süresi = sampling time + conversion time. Kaynak empedansı yüksekse (ör. 100 kΩ voltaj bölücü) sampling kondansatörü yetişemez; sampling time artırılmalı veya kaynak buffer'lanmalıdır.

Doğruluğu etkileyen faktörler

FaktörEtki / çözüm
Referans gürültüsüVref'i ayrı ve iyi filtrelenmiş tutun
Offset ve gain hatasıKalibrasyon (birçok MCU'da dahili kalibrasyon komutu vardır)
INL / DNLDoğrusallık hataları; datasheet'ten bakılır
Kaynak empedansıSampling time veya op-amp buffer
Dijital gürültüAyrı analog/dijital ground, dekuplaj kondansatörleri
KuantalamaOrtalama alma, oversampling

Oversampling

4 kat örnek alıp toplamı 1 bit sağa kaydırmak çözünürlüğü 1 bit artırır (gürültü varsa). Genel: 4^n örnek ile n bit kazanç.

Sürekli ve çok kanallı örneklemede ADC genelde timer tetiklemeli + DMA ile çalıştırılır; CPU her dönüşümü beklemez.

  1. Kesme (interrupt) nedir? ISR yazarken nelere dikkat edilir?OrtaMikrodenetleyicilerEmbedded
  2. Watchdog timer nedir, ne işe yarar?KolayMikrodenetleyicilerEmbedded
  3. Bir bootloader nasıl çalışır? Uygulamaya atlama ve güvenli firmware güncellemesi nasıl tasarlanır?ZorMikrodenetleyicilerEmbedded
  4. Mekanik bir butonun debounce işlemi neden gereklidir ve yazılımda nasıl yapılır?KolayMikrodenetleyicilerEmbedded
  5. DMA nedir, ne zaman kullanılır? DMA kullanırken cache coherency ve double buffering gibi konularda nelere dikkat edilmelidir?ZorMikrodenetleyicilerEmbedded
  6. Timer ile PWM sinyali nasıl üretilir? Frekans ve duty cycle nasıl hesaplanır?OrtaMikrodenetleyicilerEmbedded

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle