GPIO pinlerinde push-pull, open-drain, pull-up ve pull-down yapılandırmaları ne işe yarar?

Cevap

Çıkış modları

ModDavranışKullanım
Push-pullPin aktif olarak hem HIGH (VDD) hem LOW (GND) sürülürLED, chip select, genel dijital çıkış
Open-drainPin yalnızca LOW'a çeker; HIGH için harici/dahili pull-up gerekirI2C, paylaşılan interrupt hattı, farklı voltaj seviyesine sürme

Open-drain'de birden fazla cihaz aynı hatta bağlanabilir; biri LOW çektiğinde hat LOW olur (wired-AND). Push-pull çıkışlar birbirine bağlanırsa biri HIGH, diğeri LOW sürdüğünde kısa devre oluşur.

Giriş modları

  • Floating (high-Z): Pin hiçbir yere bağlı değilse gürültüden rastgele 0/1 okunur ve giriş tamponu fazla akım çekebilir.
  • Pull-up: Pin direnç üzerinden VDD'ye bağlanır; varsayılan HIGH. Butonun diğer ucu GND'ye bağlanır, basınca LOW okunur (aktif-düşük).
  • Pull-down: Pin GND'ye çekilir; varsayılan LOW.
  • Analog: Dijital tampon kapatılır; ADC için ve güç tasarrufu için kullanılmayan pinlerde tercih edilir.

Dahili pull-up'lar genelde 30-50 kΩ civarındadır; I2C gibi hızlı hatlarda yetersiz kalır, harici 2.2-4.7 kΩ kullanılır.

STM32 HAL örneği

GPIO_InitTypeDef g = {0};
g.Pin   = GPIO_PIN_0;
g.Mode  = GPIO_MODE_INPUT;
g.Pull  = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &g);

g.Pin   = GPIO_PIN_5;
g.Mode  = GPIO_MODE_OUTPUT_PP;      /* push-pull */
g.Pull  = GPIO_NOPULL;
g.Speed = GPIO_SPEED_FREQ_LOW;      /* EMI için gerekenden hızlı seçmeyin */
HAL_GPIO_Init(GPIOA, &g);

Diğer önemli ayarlar: slew rate/speed (yüksek hız EMI artırır), drive strength, alternate function (UART/SPI gibi çevresel birime bağlama) ve pinin 5V tolerant olup olmadığı.

  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. ADC çözünürlüğü, referans voltajı ve örnekleme hızı nedir? ADC okumasında doğruluğu etkileyen faktörler nelerdir?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