ATmega328P Mikrodenetleyici Rehberi: Devre Tasarımı
Kendi Arduino Uno’nuzu yapmak, sandığınızdan daha kolay..

Atmega328P, Atmel (artık Microchip) tarafından üretilen 8-bit AVR mimarisine sahip popüler bir mikrodenetleyicidir. Özellikle düşük güç tüketimi, geniş destek ve kolay programlanabilirliği sayesinde hobi projelerinden endüstriyel uygulamalara kadar geniş bir kullanım alanına sahiptir.
1. Atmega328P Nedir?
Atmega328P, 8-bit AVR RISC mimarisine sahip, düşük güç tüketimli ve yüksek performanslı bir mikrodenetleyicidir. "P" takısı, "pico-power" teknolojisini ifade eder, yani düşük güç tüketimi için optimize edilmiştir.
Atmega328P Paket (Kılıf) Tipleri
Atmega328P, farklı kullanım senaryolarına uygun olarak çeşitli fiziksel paket (IC kılıf) tipleriyle üretilir. Bu paketler, lehimleme yöntemi, PCB tasarımı ve uygulama alanlarına göre değişiklik gösterir. En yaygın kullanılan Atmega328P paketleri şunlardır:
- DIP-28 (Dual In-Line Package - 28 Pin)
- En yaygın kullanılan modeldir, özellikle prototipleme ve breadboard projelerinde tercih edilir.
- Elle lehimlenebilir ve soketli tasarımlar için uygundur.
- Arduino Uno gibi kartlarda kullanılan versiyon budur.
- 2.54 mm pin aralığına sahiptir ve genellikle delikli (through-hole) PCB'lere lehimlenir.
- TQFP-32 (Thin Quad Flat Package - 32 Pin)
- Yüzey montajlı (SMD) bir pakettir, DIP versiyonuna göre daha küçük boyuttadır.
- Ekstra 4 adet GND/VCC pini içerir, toplamda 32 pindir.
- Arduino Nano ve Pro Mini gibi küçük boyutlu kartlarda kullanılır.
- PCB tasarımında daha az yer kaplar ancak elle lehimlemek zor olabilir.
- QFN-32 (Quad Flat No-Lead - 32 Pin)
- En kompakt ve en az yer kaplayan pakettir.
- Altında lehim pad’leri bulunduğu için reflow fırını veya sıcak hava lehimleme gerektirir.
- Endüstriyel uygulamalar ve seri üretim için idealdir.
- TQFP-32 gibi fazladan 4 pin içerir, ancak DIP veya TQFP kadar yaygın değildir.
2. Hangi Kartlarda Kullanılır?
Atmega328P aşağıdaki popüler kartlarda kullanılır:
- Arduino Uno (DIP/SMD versiyonları)
- Arduino Nano (SMD versiyonu – Atmega328P-AU)
- Arduino Pro Mini (3.3V ve 5V versiyonları)
- Standart DIP veya SMD devreler (kendi PCB tasarımlarında kullanılabilir)
Bu kartlar dışında Atmega328P, gömülü sistem projelerinde, IoT cihazlarında, robotik uygulamalarda ve hobi elektroniğinde yaygın olarak kullanılır.
3. Teknik Özellikleri
Özellik | Değer |
---|---|
Mikroişlemci | 8-bit AVR RISC |
Çalışma Gerilimi | 1.8V - 5.5V (Arduino Uno için 5V) |
Saat Hızı | 16 MHz (Harici kristal) veya dahili 8 MHz osilatör |
Flash Bellek | 32 KB (Arduino Bootloader varsa 28 KB kullanılabilir) |
SRAM | 2 KB |
EEPROM | 1 KB |
GPIO Pin Sayısı | 23 Adet (20 Tanesi Arduino’da Kullanılır) |
PWM Pinleri | 6 Adet |
ADC Kanalları | 6 veya 8 Adet (10-bit çözünürlük) |
İletişim Protokolleri | UART, I2C (TWI), SPI |
Güç Tüketimi | Düşük güç modlarında birkaç mikroamper |
4. Avantajları
Atmega328P’nin öne çıkan avantajları şunlardır:
- Düşük Güç Tüketimi: PicoPower teknolojisi sayesinde düşük güç modları destekler.
- Geniş Destek ve Topluluk: Arduino ekosisteminde çok yaygın olduğundan dökümantasyon ve destek fazladır.
- Harici Kristal ile Stabil Saat Hızı: 16 MHz ile kararlı çalışır, ancak düşük güç modlarında 8 MHz dahili osilatör de kullanılabilir.
- Kolay Programlama: Arduino Bootloader sayesinde USB-TTL dönüştürücü ile kolayca programlanabilir.
- Gömülü Sistemler İçin İdeal: Küçük boyutu ve düşük maliyeti sayesinde özel PCB tasarımlarında tercih edilir.
5. Programlama
Bootloader, mikrodenetleyicinin harici bir programlayıcı olmadan USB veya seri port üzerinden yazılım yükleyebilmesini sağlayan bir küçük programdır. Atmega328P'ye Arduino Bootloader yüklendiğinde:
- Flash belleğin 0.5 KB ila 2 KB arasındaki bir bölümü bootloader için ayrılır.
- Bootloader sayesinde Arduino IDE ile doğrudan kod yüklenebilir.
- Bootloader olmadan programlama yapmak için ISP (In-System Programming) yöntemiyle Atmel AVR programlayıcı veya Arduino’nun ICSP pini kullanılır.
Bootloader Yüklenmiş ve Yüklenmemiş Atmega328P Farkı:
- Bootloader Yüklü: Doğrudan Arduino IDE ile USB üzerinden programlanabilir.
- Bootloader Yok: Harici programlayıcı (USBasp, USBtinyISP vb.) ile doğrudan programlanması gerekir.
Atmega328P'nin doğrudan USB bağlantısını ve USB HID (Human Interface Device) protokolünü desteklememesinin temel sebebi, içinde yerleşik bir USB donanım kontrolcüsü bulunmamasıdır. Atmega328P, UART (seri haberleşme), SPI ve I2C gibi standart haberleşme protokollerini destekler, ancak USB cihazı olarak doğrudan tanınabilmesi için gereken donanıma sahip değildir.
Bu nedenle, Atmega328P'yi bir bilgisayara USB üzerinden bağlamak ve programlamak için ek bir USB-UART dönüştürücü veya bir USB destekli mikrodenetleyiciye ihtiyaç duyulur. Arduino Uno ve benzeri kartlarda genellikle şu ek çipler kullanılır:
- CH340, CP2102 veya FT232RL gibi USB-UART çeviriciler
- Atmega328P'nin seri portunu USB'ye çevirerek bilgisayar ile haberleşmesini sağlar.
- Sadece seri iletişim sağlar, USB HID gibi gelişmiş fonksiyonları desteklemez.
- Arduino klonlarında genellikle CH340 kullanılır çünkü maliyeti düşüktür.
- ATmega16U2 (Arduino Uno R3 üzerinde kullanılan çip)
- USB desteği bulunan bir Atmega mikrodenetleyicidir.
- Atmega328P ile UART üzerinden haberleşir ve USB bağlantısını sağlar.
- Alternatif firmware yüklenerek, klavye veya fare gibi USB HID cihazı olarak kullanılabilir.
- Atmega32U4 (Arduino Leonardo, Pro Micro gibi kartlarda kullanılır)
- Doğrudan USB desteğine sahiptir, ek bir dönüştürücüye gerek kalmaz.
- USB HID desteği içerdiği için doğrudan klavye, fare, joystick gibi cihazlar olarak tanıtılabilir.
- Ancak Atmega328P'ye kıyasla daha az yaygındır ve bazı durumlarda daha maliyetlidir.

5. Devre Tasarımı
Arduino Uno referans tasarımını incelerseniz ihtiyacınız olmayan çok sayıda komponent görebilirsiniz. Bu sebeple aşağıda sadece zorunlu komponentler belirtilmiştir. Atmega328P DIP-28 paketi için 28 pini bulunur. Temel bağlantılar için aşağıdaki bacaklar kullanılır:
Pin No | Adı | Açıklama |
---|---|---|
1 | PC6 (RESET) | Harici reset için kullanılır. Pull-up direnç gerektirir. |
2-6 | PD0 - PD4 | Dijital giriş/çıkış pinleri. PD0 (RX) ve PD1 (TX) UART için kullanılır. |
7 | VCC | Çalışma gerilimi girişi (+5V veya +3.3V). |
8 | GND | Toprak bağlantısı. |
9 | XTAL1 | Harici kristal bağlantısı (Saat sinyali için). |
10 | XTAL2 | Harici kristal bağlantısı (Saat sinyali için). |
11-13 | PD5 - PD7 | Dijital giriş/çıkış pinleri. PD5, PD6, PD7 PWM destekler. |
14 | AVCC | Analog besleme voltajı (ADC için VCC'ye bağlanmalı). |
15 | AREF | ADC referans voltajı (Dış referans olarak bağlanabilir). |
16 | GND | İkinci toprak bağlantısı. |
17-19 | PC0 - PC2 | Analog girişler (ADC0-ADC2) veya dijital giriş/çıkış. |
20-21 | PC3 - PC4 | Analog girişler (ADC3-ADC4) veya dijital giriş/çıkış. |
22 | PC5 | Analog giriş (ADC5) veya dijital giriş/çıkış. |
23 | PB6 (XTAL1) | Harici kristal veya dijital giriş/çıkış. |
24 | PB7 (XTAL2) | Harici kristal veya dijital giriş/çıkış. |
25-26 | PB0 - PB1 | Dijital giriş/çıkış pinleri. |
27-28 | PB2 - PB3 | Dijital giriş/çıkış ve SPI (MISO, MOSI) pinleri. |
Atmega328P İçin Zorunlu En Minimal Bileşen Listesi
Zorunlu Bileşenler Listesi
Bileşen | Değer / Model | Açıklama |
---|---|---|
Mikrodenetleyici | Atmega328P-PU (DIP-28) | Mikrodenetleyicinin kendisi |
Kristal Osilatör | 16 MHz | Daha kararlı çalışma için harici saat kaynağı |
Kondansatör | 22pF (2 Adet, Seramik) | Kristalin her iki ucuna GND’ye bağlanacak |
Pull-up Direnç | 10kΩ | Reset pinini VCC’ye çekmek için |
Jumper (Reset için) | 2 pin header + Jumper | Reset işlemini manuel yapmak için |
Güç Kaynağı (Harici) | 5V Regüle Edilmiş | VCC ve AVCC için gerekli besleme |
Bağlantı Kablosu | Çeşitli | Güç ve programlama bağlantıları için |
Basit Atmega328P Devre Şeması
Aşağıda temel bir Atmega328P devre tasarımının nasıl olması gerektiğini özetleyen bir bağlantı listesi bulunmaktadır:
- VCC → 5V
- GND → Toprak
- RESET → 10kΩ direnç ile VCC’ye, ayrıca buton ile GND’ye bağlanır.
- XTAL1 ve XTAL2 → 16 MHz kristal + 22pF kapasitörlerle GND’ye çekilir.

Programladığınız çipi Arduino Uno'dan söküp buradaki devrenize kurarsanız istediğiniz şekilde çalışacaktır. İlk deneme için blink kodunu yazıp örneğin D9 pinine uygun bir dirençle led bağlayıp test edebilirsiniz.

Güç Bağlantıları (VCC, GND, AVCC, AREF)
Atmega328P'nin çalışması için VCC, GND, AVCC ve AREF pinleri doğru şekilde bağlanmalıdır.
- VCC (7. pin) → +5V veya +3.3V’a bağlanır.
- GND (8. ve 16. pinler) → Toprak hattına bağlanır.
- AVCC (14. pin, ADC için güç beslemesi) → +5V’a bağlanmalıdır.
- AREF (15. pin, Analog Referans Voltajı) → ADC kullanılıyorsa harici referans bağlanabilir veya GND’ye 100nF kondansatör ile bağlanmalıdır.
Not: Eğer ADC kullanıyorsanız AVCC’nin de VCC’ye bağlı olduğundan emin olmalısınız.

Saat (Clock) Devresi
Atmega328P, dahili 8 MHz osilatöre sahiptir ancak harici 16 MHz kristal kullanarak daha kararlı bir saat kaynağı sağlayabiliriz.
Harici Kristal Kullanımı
- XTAL1 (9. pin) ve XTAL2 (10. pin) → 16 MHz kristale bağlanır.
- 22pF kondansatörler → Kristalin her iki bacağına bağlanarak GND’ye çekilir.
- Kristal osilatör ve kapasitörlerin yakın yerleştirilmesi gereklidir, aksi takdirde gürültü sorunları oluşabilir.
🔹 Alternatif olarak: Eğer harici kristal kullanılmayacaksa, dahili 8 MHz osilatör ile de çalıştırılabilir, ancak zamanlama doğruluğu harici kristale göre daha düşüktür.
Reset Devresi
Reset pinini düzgün çalıştırmak için 10kΩ pull-up direnç kullanılması gerekir.
- PC6 (1. pin) → 10kΩ direnç ile VCC’ye bağlanır.
- Ek olarak, bir push-button (buton) ekleyerek GND’ye çekebilirsin.
- 100nF kapasitör de eklenebilir (istenmeyen reset durumlarını önlemek için).
Programlama Arayüzü (ICSP - In-System Programming)
Atmega328P’yi programlamak için ICSP (In-System Programming) pinleri kullanılabilir.
- MOSI (Pin 17, PB3)
- MISO (Pin 18, PB4)
- SCK (Pin 19, PB5)
- RESET (Pin 1)
- VCC (Pin 7)
- GND (Pin 8)
Not: Eğer bootloader yüklü değilse, programlama için USBasp, USBtinyISP gibi bir programlayıcıya ihtiyacınız olacak.
USB-UART Haberleşmesi
Eğer devreni Arduino IDE ile programlamak istiyorsan, USB-TTL çevirici (CH340, CP2102, FT232RL) kullanmalısınız.
- RX (Pin 2) → TX (USB-TTL çeviricinin TX'ine)
- TX (Pin 3) → RX (USB-TTL çeviricinin RX'ine)
- GND (Pin 8) → USB-TTL çeviricinin GND’sine bağlanır.
- VCC (Pin 7) → +5V veya +3.3V (USB-TTL çeviricinin çıkışına göre)
Eğer otomatik reset özelliğini kullanmak istiyorsanız, DTR pinini 100nF kondansatör üzerinden RESET pinine bağlamalısın.
Örnek bir çalışma
Daha ileri bir çalışma olarak aşağıdaki bağlantıyı kullanarak SMD çalışmaların nasıl yapıldığını inceleyebilirsiniz. Özellikle microdenetleyici etrafında dekupaj kapasitörlerini incelemenizi öneririm.
SMD örmek bir çalışma
Bu blog yazısında Atmega328P, AVR mikrodenetleyici ailesinin en popüler üyelerinden biri olarak ele alındı ve Arduino Uno, Nano, Pro Mini gibi yaygın kullanılan geliştirme kartlarında nasıl kullanıldığı detaylıca incelendi. Düşük güç tüketimi, kolay programlanabilirlik ve geniş topluluk desteği sayesinde hem hobi projeleri hem de endüstriyel uygulamalar için ideal bir seçenek olan Atmega328P’nin DIP-28, TQFP-32 ve QFN-32 gibi farklı paket türleri, teknik özellikleri, ISP ve USB-TTL ile programlama yöntemleri, güç bağlantıları, reset devresi, harici kristal osilatör kullanımı, PWM ve ADC fonksiyonları gibi konular kapsamlı bir şekilde ele alındı. Ayrıca, CH340, CP2102, FT232RL gibi USB-Seri dönüştürücüler, AMS1117 voltaj regülatörü, ICSP programlama arayüzü, bootloader yükleme süreçleri ve Atmega328P devre tasarımı gibi konulara değinilerek, kendi elektronik projelerinizi geliştirebilmeniz için rehber niteliğinde bir içerik sunuldu. Gömülü sistemler, IoT projeleri, robotik uygulamalar ve sensör tabanlı çalışmalar gibi birçok alanda yaygın olarak kullanılan Atmega328P, esnek yapısı, düşük maliyeti ve geniş destek ekosistemi ile mikrodenetleyici tabanlı projeler için vazgeçilmez bir çözüm olmaya devam ediyor. Siz de kendi Atmega328P devrenizi oluşturarak Arduino Uno benzeri bir sistem tasarlayabilir ve projelerinizi hayata geçirebilirsiniz.
Kaynaklar
Arduino Uno Şematik Diyagramı: Arduino. Arduino Uno Schematic. Arduino, www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf. Accessed 9 Feb. 2025.
ATmega328P Veri Sayfası: Microchip Technology Inc. ATmega328P Datasheet. Microchip, https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf Accessed 9 Feb. 2025.