ORTA 11 dk okuma CANLI SİMÜLATÖR Güncelleme: 1 Kas 2026

Pull-up ve Pull-down Direnci: Yüzen Giriş, Değer Seçimi ve I²C Hattı

Pull-up ve pull-down direnci nedir, ne işe yarar? Yüzen giriş sorunu, pull-up değeri seçimi (4,7 kΩ mı, 10 kΩ mu?), tuş bağlantısı, I²C pull-up hesabı ve yükselme süresi; gürültü ve hat kapasitansını gösteren canlı simülatörle.

BU YAZIDAN SONRA ŞUNU BİLECEKSİN

  • Bir giriş pininin bağlı değilken neden rastgele okunduğunu
  • Pull-up ve pull-down'ın farkını ve hangisini ne zaman seçeceğini
  • Pull direncinin değerini (kΩ ya da MΩ) gürültü, akım ve hız arasında seçmeyi
  • I²C hattında pull-up değerinin neden iki sınırın arasında seçildiğini

Bağlı olmayan pin ne okur? Hiçbir şeyi, ama bir şeyler#

Dijital bir giriş pininin içinde son derece yüksek dirençli bir kapı vardır (MΩ, hatta GΩ seviyesinde). Pine hiçbir şey sürmüyorsa pin, bir kablo ucu gibi ortamın elektrik alanını dinleyen küçük bir antene dönüşür: 50 Hz şebeke, komşu hatlardaki sinyaller, parmağın yakınlığı. Okuma 0 ile 1 arasında rastgele gider gelir; buna yüzen (floating) giriş denir.

Bir tuşun "boşta ne olacağını" tanımlamak için pini bir dirençle bilinen bir seviyeye çekmek gerekir. Bu dirence, çektiği yöne göre pull-up (Vdd'ye) ya da pull-down (toprağa) denir.

PULL-UPVddGPIORTuşBoşta: 1 · Basılı: 0PULL-DOWNVddGPIORTuşBoşta: 0 · Basılı: 1
Pull-up: boşta 1, basınca 0 (mantık tersine döner). Pull-down: boşta 0, basınca 1.

Pull-up Tezgâhı: yüzen pini yakala, değeri seç, I²C hattını ölç

CANLI SİMÜLATÖR

Tuş girişi sekmesinde önce "Dirençsiz (yüzen)" seç ve gürültünün pini nasıl sürüklediğine bak. Sonra pull-up ekle, değeri 1 MΩ'a doğru büyüt ve gürültüde tekrar tetiklendiğini gör. I²C hattı sekmesinde direnç ve kapasitansı oynat; yükselme süresini ve hız sınırlarını izle.

Bu simülatör JavaScript ile çalışır; tarayıcında JavaScript kapalı görünüyor.

Hikâye: "boş" bir pin neden boş değildir#

1960'larda TTL ailesinde bazı çıkışlar açık kolektör üretildi: transistör hattı yalnızca toprağa çekebiliyor, yukarı çekmek için dışarıdan bir dirence ihtiyaç vardı. Bu zayıflık bir erdeme dönüştü: birkaç çıkış aynı hatta bağlanabilir ve hiçbiri diğerine karşı kısa devre yapmaz (wired-AND). 1982'de Philips'in I²C veriyolunu tasarlarken kullandığı mantık da buydu: hat boşta yüksektir (pull-up), herhangi bir cihaz onu alçaltabilir.

Giriş tarafındaki sorun ise fizikseldir: bir CMOS girişi, yalıtılmış kapılı bir MOSFET'tir (transistör yazısındaki gibi). Kapı bir kapasitör gibi yük toplar; boşta bırakırsan çevreden gelen alanlarla (50 Hz gürültü, parmak teması) rastgele okur. Pull-up ya da pull-down bu yüzen kapıya tanımlı bir akım yolu verir ve hattı güvenilir biçimde 0 ya da 1'e çeker.

Kaç kΩ? Üç şeyin tartışması#

"Genellikle 10 kΩ" cevabı doğrudur ama bir sebebi var. Değeri belirleyen üç etki birbiriyle çelişir:

Küçük direnç → sağlam

Gürültü akımı küçük dirençte çok az gerilim oluşturur; hat sağlam tutulur. Kapasitans da hızlı şarj olur. Ama tuşa basılınca Vdd / R kadar akım boşa akar.

Büyük direnç → ekonomik

Basılı tuşta çok az akım harcar: pil dostu. Ama hattı zayıf tutar; gürültüye, kaçak akıma ve kablo kapasitansına açıktır; kenarlar yavaşlar.

Orta yol: 4,7 kΩ – 100 kΩ

Tuş için 10 kΩ klasik bir uzlaşmadır: 3,3 V'ta basılınca 0,33 mA, gürültüye karşı fazlasıyla yeterli. Pille çalışan ve sık basılmayan tuşlar için 100 kΩ; uzun kablolu ya da gürültülü ortam için 1–4,7 kΩ.

I²C hattı: pull-up'ın asıl zor sınavı#

I²C'de SDA ve SCL hatları açık drenajdır: cihazlar hattı yalnızca aşağı çekebilir; yukarı çıkarmak pull-up'ın işidir. Bu yüzden her bit, bir RC yükselişidir: direnç hattı Vdd'ye doğru kapasitansı (kablo + pin + cihaz) üzerinden şarj eder.

I²C YÜKSELME SÜRESİ (30 % – 70 %) tr = 0,8473 · R · C Rmin = Vdd − 0,4 V3 mA
tr üst sınırları: 100 kHz için 1000 ns, 400 kHz için 300 ns, 1 MHz için 120 nsRmin: cihazın 3 mA akımla hattı 0,4 V altına çekebilmesi için

Sonuç: pull-up değeri iki sınır arasında kalır. Altta sink akımı (çok küçük direnç, cihaz hattı yeterince aşağı çekemez), üstte yükselme süresi (çok büyük direnç, kenarlar yavaşlar). 3,3 V ve 100 pF için: alt sınır ≈ 970 Ω, 400 kHz için üst sınır ≈ 300 ns / (0,8473 × 100 pF) ≈ 3,5 kΩ. 4,7 kΩ 100 kHz için güzeldir ama 400 kHz'de tutmaz; 2,2 kΩ tutar.

Kendini sına#

KENDİNİ SINA

Bir tuş pull-up ile bağlanmış (tuşun diğer ucu toprakta). Tuşa basılmadığında GPIO ne okur?

Pull-up hattı boşta Vdd'ye çeker, yani 1. Tuşa basınca pin toprağa bağlanır ve 0 okunur: mantık tersine döner.

KENDİNİ SINA

3,3 V'ta 10 kΩ pull-up'lı bir tuşa sürekli basılı kalırsa (kapı sensörü gibi) akım kaç mA olur?

I = V / R = 3,3 / 10 000 = 0,33 mA. Pille çalışan bir cihazda sürekli kapalı bir tuş için bu bile fazladır; 100 kΩ yaparak 33 µA'e inebilirsin.

KENDİNİ SINA

Bir I²C hattı 400 kHz'te çalışacak, hat kapasitansı 100 pF. 4,7 kΩ pull-up neden uygun değildir?

tr = 0,8473 × 4700 × 100 pF ≈ 398 ns. 400 kHz Fast-mode için üst sınır 300 ns. Direnci 2,2 kΩ'a indirirsen tr ≈ 186 ns olur.

Sık sorulan sorular#

Pull-up ve pull-down direnci nedir?

Bir hattı boşta bilinen bir mantık seviyesine çeken dirençlerdir. Pull-up hattı Vdd'ye (boşta 1), pull-down toprağa (boşta 0) bağlar. Böylece bağlı olmayan ya da açık devre bir giriş rastgele okunmaz.

Pull-up direnci kaç ohm olmalı?

Tuş girişleri için çoğu zaman 10 kΩ; pille çalışan ve nadiren basılan tuşlarda 47–100 kΩ; gürültülü ortam ya da uzun kablolarda 1–4,7 kΩ. I²C için R, (Vdd − 0,4 V) / 3 mA ile trmax / (0,8473 × C) arasında seçilir.

Yüzen (floating) giriş neden sorun çıkarır?

Sürülmeyen yüksek empedanslı giriş çevresel gürültüyü alır, okuma rastgele 0/1 olur ve CMOS girişi eşik bölgesinde kalırsa her iki transistör kısmen iletip fazladan akım çekebilir. Kullanılmayan girişleri bir pull ile ya da çıkış yaparak tanımla.

Dahili pull-up yeterli mi?

Kısa kablolu, gürültüsüz bir tuş için evet. Ama değeri geniş toleranslıdır (20–50 kΩ), uzun kablo ya da gürültülü ortamda zayıf kalır ve I²C gibi hızlı hatlar için genellikle çok büyüktür; orada harici direnç gerekir.

I²C pull-up direnci nasıl hesaplanır?

İki sınır arasında seçilir: alt sınır Rmin = (Vdd − 0,4 V) / 3 mA, üst sınır Rmax = tr / (0,8473 × Cbus). tr limitleri 100 kHz için 1000 ns, 400 kHz için 300 ns, 1 MHz için 120 ns. 3,3 V ve 100 pF için 400 kHz'te yaklaşık 1–3,5 kΩ arası uygundur.

Bu sayfada cevabını bulabileceğin aramalar#

İnsanlar bu konuyu genelde şu kelimelerle arıyor; hepsinin cevabı yukarıdaki yazıda ve simülatörde var:

  • pull up direnci nedir
  • pull down direnci nedir
  • pull-up pull-down devresi
  • pull up pull down farkı
  • pull up direnci değeri
  • pull up direnci kaç ohm olmalı
  • 10k pull up direnci neden
  • yüzen giriş floating pin nedir
  • buton bağlantısı pull up direnci
  • Arduino buton pull up pull down
  • INPUT_PULLUP nedir
  • I2C pull up direnci değeri
  • I2C pull up direnci hesaplama
  • açık kollektör pull up
  • mikrodenetleyici dahili pull up
  • pull up direnci simülatörü
  • pull-up direnci neden gerekli

Kaynaklar ve ileri okuma#

Bu yazıyı yazarken ve ders çalışırken baktığım kaynaklar. Bölüm numaraları baskıya göre değiştiği için konu adıyla ararsın.

  • The Art of Electronics Horowitz, HillDijital arayüz bölümleri: yüzen giriş, pull-up/pull-down ve açık kollektör fikri.
  • UM10204: I²C-bus specification and user manual (NXP)Bu yazıdaki pull-up değeri hesabının bir adım ötesi: yükselme süresine göre Rp aralığı. nxp.com
  • MCU datasheet: iç pull-up/pull-down değerleriDahili dirençlerin tipik değeri (genelde yaklaşık 20-50 kΩ) ve geniş toleransı.

Bir yanlış, eksik ya da merak ettiğin bir şey mi var?

Bu notları öğrenirken yazıyorum; hata yaptıysam düzeltmek, eksik bıraktığım yeri tamamlamak isterim. İstediğin konuyu yaz, sıraya alayım. Bu devrelerin gerçek kart karşılıklarını da projelerimde bulabilirsin.