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ı kaynaklar2^N − 1kullanı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ör | Etki / çö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 / DNL | Doğ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 |
| Kuantalama | Ortalama 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.
İlgili Mikrodenetleyiciler soruları
- Kesme (interrupt) nedir? ISR yazarken nelere dikkat edilir?
- Watchdog timer nedir, ne işe yarar?
- Bir bootloader nasıl çalışır? Uygulamaya atlama ve güvenli firmware güncellemesi nasıl tasarlanır?
- Mekanik bir butonun debounce işlemi neden gereklidir ve yazılımda nasıl yapılır?
- DMA nedir, ne zaman kullanılır? DMA kullanırken cache coherency ve double buffering gibi konularda nelere dikkat edilmelidir?
- Timer ile PWM sinyali nasıl üretilir? Frekans ve duty cycle nasıl hesaplanır?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.