Atmega128 / 328, çeşitli uygulama alanlarında kullanılan güçlü bir mikrodenetleyicidir. Geniş bir yelpazede çevre birimleri ve özelliklere sahip, yüksek entegrasyonlu bir 8 bit mikrodenetleyicidir. Bu blog yazısında, Atmega128 / 328’in farklı özelliklerine, pin yapılandırmasına, programlama tekniklerine ve uygulamalarına göz atacağız. Ayrıca, Atmega128 / 328 mikrodenetleyicinin diğer mikrodenetleyicilere göre avantajlarını tartışacak ve onunla çalışmak için bazı en iyi uygulamaları sunacağız.
Atmega128 / 328 nedir?
Atmega128 / 328, Atmel Corporation tarafından üretilen 8 bitlik bir mikrodenetleyicidir. AVR mimarisine dayalıdır ve gömülü sistemlerde kullanılan en popüler mikrodenetleyicilerden biridir. 40 pimli PDIP, 44 pimli TQFP ve 64 pimli VQFP dahil olmak üzere çeşitli paket ve konfigürasyonlarda mevcuttur. Atmega128 / 328, RISC mimarisine dayanır ve 8 kanallı 10 bitlik bir A/D dönüştürücü, üç adet 16 bitlik zamanlayıcı, bir seri bağlantı noktası ve bir SPI bağlantı noktası dahil olmak üzere geniş bir yelpazede çevre birimlerine sahiptir. Toplam 128 KB program belleği ve 2 KB EEPROM'a sahiptir.

Atmega128 / 328'e Genel Bakış
Özellikler
Atmega128 / 328, geniş bir yelpazede yeteneklere sahip olması sayesinde çok yönlü ve güçlü bir mikrodenetleyicidir. 16 bit RISC mimarisine sahip olması, komutları hızlı ve verimli bir şekilde yürütmesini sağlar. 8 MHz, 16 MHz veya 20 MHz hızlarında çalışabilmesi, onu çok çeşitli uygulamalar için uygun hale getirir. Atmega128 / 328 ayrıca 8 kanallı 10 bitlik bir A/D dönüştürücü, üç adet 16 bitlik zamanlayıcı, bir seri bağlantı noktası ve bir SPI bağlantı noktası dahil olmak üzere çok çeşitli çevre birimlerine sahiptir. Ayrıca 128 Kbayt / 328 Kbayt program belleği ve 2 Kbayt EEPROM'a sahiptir, bu da büyük miktarda veriyi depolamasına olanak tanır.
Atmega128 / 328 ayrıca yüksek düzeyde entegre olduğundan, gömülü sistemlerde kullanım için idealdir. Yonga üzerinde osilatör, yonga üzerinde sıfırlama devresi ve yonga üzerinde voltaj regülasyonu bulunur. Ayrıca, güç verildiğinde mikrodenetleyicinin sıfırlanmasını sağlayan yonga üzerinde güç açma sıfırlama devresine sahiptir. Buna ek olarak, Atmega128 çok çeşitli G/Ç bağlantı noktalarına sahiptir, bu da çeşitli harici cihazlarla arayüz oluşturmasına olanak tanır.
Çam Yapılandırması
Atmega128 / 328, iki sıra halinde düzenlenmiş toplam 64 pime sahiptir. Pimler iki kategoriye ayrılır: dijital G/Ç pimleri ve analog G/Ç pimleri. Dijital G/Ç pimleri dijital sinyalleri kontrol etmek için kullanılırken, analog G/Ç pimleri analog sinyalleri kontrol etmek için kullanılır. Atmega128/328 ayrıca bir seri bağlantı noktası, bir SPI bağlantı noktası ve bir I2C bağlantı noktasına sahiptir.

Uygulamalar
- Robotik kollar ve otonom robotlar gibi robotik projeleri.
- Bluetooth ve Wi-Fi modülleri gibi iletişim projeleri.
- Veri toplama ve kontrol için veri toplama sistemleri ve gömülü sistemler.
- Motor kontrol sistemleri ve araç içi bilgi-eğlence sistemleri gibi otomotiv uygulamaları.
- Uzaktan kumandalar, dijital kameralar ve ev aletleri gibi tüketici ürünleri.
Atmega128 / 328'in Programlanması
Atmega128 / 328 yongası, C dili veya assembler dili kullanılarak programlanabilir. Çok sayıda G/Ç bağlantı noktası, yonga üzerinde osilatör ve yonga üzerinde voltaj regülatörü dahil olmak üzere, programlamayı kolaylaştıran geniş bir özellik yelpazesine sahiptir.
Atmega128 / 328'i programlamak istiyorsanız, bir programlayıcıya ihtiyacınız olacaktır. Programlayıcı, program kodunu bilgisayardan Atmega128 / 328'e aktarmak için kullanılan bir cihazdır. Program kodu aktarıldıktan sonra, IC uygun yazılım kullanılarak programlanabilir. Tüm adımlar aşağıdaki gibi 4 bölüme ayrılabilir:
- Bölüm 1: Gerekli Bileşenleri Hazırlama.
- Bölüm 2: Breadboard Üzerinde Arduino Devreleri Oluşturma.
- Bölüm 3: Bootloader'ı Atmega128 / 328 IC'ye yazma.
- Bölüm 4: Atmega128 / 328 IC'yi programlama.
1. Bölüm: Parçaların Hazırlanması
Atmega128 / 328: Devre tahtasındaki ana bileşen ve pin çıkışı şeması yukarıda verilmiştir.
Deney tahtası (LM7805): Elektronik bileşenleri atlama kablolarıyla bağlamak için kullanılan lehim gerektirmeyen bir cihaz.
Osilatörler (16 MHz): IC için saat sinyallerini sağlar, Pin 23 ve Pin 24'e bağlanır.
Kapasitör (10uF): LM7805'in giriş ve çıkış bölümlerinde, AC bileşenlerini toprağa atlamak için kullanılır.
Atlama Teli: Devre kartı veya breadboard üzerindeki iki noktayı birbirine bağlayan metal tel.
2. Bölüm: Lehim gerektirmeyen devre tahtası üzerinde Arduino devreleri oluşturma
1. Adım: Öncelikle, devre şemasında gösterildiği gibi güç bölümünü bağlayın ve LM7805'in harici güç kaynağıyla test edin. Şu şekilde görünür:

Adım 2: Ardından, devre şemasında gösterildiği gibi mikrodenetleyici kısmını bağlayın.

Adım 3: Şimdi, kablo atlama kablolarını kullanarak güç kaynağını ve mikrodenetleyici bölümünü bağlayın.

3. Bölüm: Önyükleyiciyi Atmega128 / 328 yongasına yazma
Önyükleyici, mikrodenetleyicinin belleğinde kalıcı olarak depolanan küçük bir yürütülebilir kod parçasıdır. Bu kod, 1 KB’den az bellek alanı kaplar. Önyükleyici, devre kartının bilgisayardan gelen kodu almasını ve mikrodenetleyicinin belleğine yerleştirmesini sağlar.
Piyasadan yeni bir Atmega128 / 328 satın aldığınızda, bu cihazda bootloader bulunmaz. Bu nedenle, Arduino IDE kullanarak programlamak için önce bootloader'ı yüklemeniz gerekir.
Bootloader'ı yüklemek için iki yöntemimiz vardır:
- USBasp Programlayıcıyı Kullanma
- Arduino UNO kartı kullanma
İlk yönteme kıyasla, ikinci yöntem daha kolaydır. Çünkü daha az bağlantı gerektirir ve Arduino IDE'nin en son sürümleri USBasp programlayıcılarla daha az uyumludur.
Bu nedenle, bu eğitimde bootloader'ı yüklemek için Arduino UNO kartını kullanacağız.
1. Adım: Arduino IDE'yi açın. Şu menüye gidin: Dosya -> Örnekler -> ArduinoISP. Ardından ArduinoISP'yi seçin.

Adım 2: Şimdi, bu kodu Arduino kartınıza yüklemeniz gerekiyor. Araçlar menüsünden com portunu ve kartı seçin ve yükle düğmesine tıklayın.
Adım 3: Yükleme tamamlandıktan sonra, Arduino kartını bilgisayardan çıkarın. Ardından, aşağıdaki resimde gösterildiği gibi Arduino kartını Atmega128 / 328 IC ile bağlayın.

Adım 4: Arduino kartını bilgisayarınıza bağladıktan sonra lütfen Arduino IDE'yi açın. Ardından, menüye gidin: Araçlar -> Kart: "Arduino/Genuin0 Uno" ve kartınız için doğru bağlantı noktasını seçin. Sonra, Programlayıcı: seçeneğini "Arduino as ISP" olarak seçin.

Adım 5: Şimdi, tekrar Araçlar menü çubuğuna gidin ve Programlayıcı seçeneğinin altındaki Bootloader'ı Yaz'a tıklayın. Birkaç saniye sonra, bootloader başarıyla yüklenir. Yükleme sırasında herhangi bir hata olursa, lütfen bağlantıyı kontrol edin.

4. Bölüm: Atmega128 / 328 IC'sinin Programlanması
Arduino Atmega128 / 328 yongası, aşağıdakiler dahil olmak üzere çeşitli yöntemlerle programlanabilir:
- Atmega128 / 328 IC'si olmayan bir Arduino kartı kullanın.
- USB-seri TTL dönüştürme modülünü (FTDI modülü) kullanın.
- Bir USBasp programlayıcı kullanın (eğer çok sayıda bağlantı varsa).
Burada, Atmega128 / 328 IC'yi programlamanın birinci ve ikinci yollarını tanıtıyoruz.
4.1 Arduino Kartı Kullanarak Atmega128 / 328 IC'sini Programlama
1. Adım: Atmega128 / 328 yongası bulunmayan bir Arduino kartı alın. Ardından Arduino kartını gösterildiği gibi devre tahtamıza bağlayın.

Adım 2: Arduino kartını bilgisayara bağlayın ve Arduino IDE'yi açın. Araçlar menüsündeki Kart seçeneğinden Arduino Uno'yu, Programlayıcı seçeneğinden USBasp'yi ve kartın doğru com portunu seçin.
Adım 3: Blink programını yükleyerek başlayacağız. Örneklerden blink programını seçin ve yükle düğmesine basın.

Artık devre kartındaki LED'in yanıp sönmeye başladığını görebilirsiniz.
4.2 USB-Seri Dönüştürücü Kullanarak Atmega128 / 328'i Programlama
Arduino kartınız yoksa, Atmega128 / 328'i programlamanın en iyi yolu budur.
Adım 1: USB-seri dönüştürücü bağlantılarını şu şekilde kurun:
FTDI'nin RXD pini -> Atmega128 / 328'in Tx pini (pin 3)
FTDI'nin TXD pini -> Atmega128 / 328'in Rx pini (pin 2)
GND -> GND (pin 8)
5v -> Vcc (pin 7)
Bazı FTDI modüllerinde, Atmega128 / 328'in Reset pimine (pin 20) bağlanması gereken, DTR pimi olarak da bilinen bir Reset pimi bulunur.
Adım 2: Şimdi, FTDI'yi bilgisayara bağlayın ve kontrol panelinden aygıt yöneticisini açın. Bağlantı Noktaları bölümünü göreceksiniz, bu bölümü genişletin. Sürücünün önünde sarı bir işaret varsa, modül sürücüsünün güncellenmesi gerekir.

İşaret yoksa, com bağlantı noktası numarasını not edin ve Arduino IDE'yi açın. Araçlar -> Bağlantı Noktaları -> Not ettiğiniz com'u seçin.
Adım 3: Son olarak, Blink programını Breadboard Arduino'muza yükleyeceğiz. Dosya -> Örnekler -> Temel Bilgiler -> Blink'e gidin. Araçlar'daki Kart menüsünden Arduino Uno'yu, Programlayıcı olarak USBasp'yi ve doğru kart com portunu seçin.
Ardından yükle düğmesine tıklayın.
(Not: FTDI modülünüzde DTR pini yoksa, breadboard üzerindeki sıfırlama düğmesine basın ve yükle düğmesine basın. "Compiling sketch…" yazıyorsa, "Uploading…" yazısı görünene kadar düğmeyi basılı tutun ve ardından düğmeyi bırakın.)
Şimdi program, Arduino Bootloader Atmega128 / 328 yongasına başarıyla yüklenecektir.
Atmega128 / 328 ile Diğer Mikrodenetleyiciler
Atmega128 / 328, güçlü ve çok yönlü bir mikrodenetleyicidir; ancak belirli uygulamalar için daha uygun olabilecek başka mikrodenetleyiciler de mevcuttur. Örneğin, ARM Cortex-M işlemcisi, daha yüksek performans gerektiren uygulamalar için daha uygundur. ARM işlemcisi ayrıca daha az güç tüketir ve düşük güç tüketen uygulamalar için daha uygundur.
Atmega128 / 328, diğer bazı mikrodenetleyicilere göre daha pahalıdır. Ancak, güçlü ve çok yönlü bir mikrodenetleyicidir ve çok çeşitli uygulamalar için uygundur. Bu nedenle, bir mikrodenetleyici seçerken uygulama gereksinimlerini dikkate almak önemlidir.
Atmega128 / 328 ile Çalışırken Uygulanması Önerilen En İyi Uygulamalar
Atmega128 / 328, güçlü ve çok yönlü bir mikrodenetleyicidir ve bu cihazla çalışırken dikkate alınması gereken birkaç iyi uygulama vardır. Statik elektrik mikrodenetleyiciye zarar verebileceğinden, mikrodenetleyiciyi statik elektriğin olmadığı bir ortamda tutmak önemlidir. Ayrıca, mikrodenetleyiciye doğru voltajın sağlandığından ve yonga üzerindeki voltaj regülatörünün düzgün çalıştığından emin olmak da önemlidir. Buna ek olarak, saat sinyalini üretmek için kullanılan yonga üzerinde bulunan osilatörün düzgün çalıştığından emin olmak da önemlidir.
Geliştirme araçlarının güncel olduğundan ve programlama kodunun mikrodenetleyicide kullanılmadan önce kapsamlı bir şekilde test edildiğinden emin olmak da önemlidir. Ayrıca, mikrodenetleyiciyle çalışırken uygun güvenlik yönetmeliklerine uymak önemlidir.




