Ders 4 - UART ve Seri Haberleşme
Atmega168, içerisinde dahili olarak birçok çevrebirim barındırmaktadır. Bunlardan biri de UART modülüdür. Bu yazıda Atmega168'in UART modülü kullanılarak bilgisayar ile nasıl seri haberleşme yapıldığını inceleyeceğiz.
Öncelikle RS232'nin tarihine kısaca değinelim;
RS232 ile iletişim,ilk başlarda bilgisayarların kendi aralarında haberleşmesi için kullanılan bir yöntemdi. Bugün ise kullanımı yaygınlaşmış olan bu yöntem, yazıcılar, tarayıcılar, jostickler gibi bilgisayara bağlanabilen donanımlar tarafından tercih edilmektedir. Fakat mikrodenetleyiciler gibi düşük gerilimle çalışan devre elemanlarına RS232 portunu doğrudan bağlamak uygun değildir. Çünkü RS232 portu +/-12v arası gerilim üretmektedir. Ve Atmega168 ise TTL(5v) bir devre elemanı olduğundan RS232 portu ile mikrodenetleyici arasında +/-12v u TTL seviyeye indirgeyen bir sistem kullanmak gerekmektedir. Bu iş için, kullanımı çok yaygın olan MAX232 entegresini kullanacağız.
MAX232 entegresi Maxim firması tarafından üretilmiş olan RS232 portundaki +-/12v gerilimi lojik devre elemanları için 5v seviyesine indirgeyen bir entegredir. Ve bu sayede mikrodenetleyici, yüksek gerilimden dolayı zarar görmeden seri haberleşme sağlanmış olur. Aşağıda bu entegre için breadboardunuza eklemeniz gereken bağlantılar verilmiştir.
MAX232 Devre Şeması - Eagle schematic / PDF MAX232 entegresinin sağlıklı çalışması için 0.1uF(c5,c6,c7) kondansatörlere ihtiyaç vardır(charge_pumps). İlerideki c8 kondansatörü ise dekuplaj kondansatörüdür. Bu kondansataör çıkışı filtre edip, daha temiz bir 5v gerilim elde etmemizi sağlar. Bu kondansatör, Vcc ve GND ye ne kadar yakın olursa filtre etme vazifesini o kadar iyi yapacaktır. Bu sebeple breadboard üzerinde bu kısmı devrenize eklerken, bu şartı da göz önünde bulundurunuz.
JP2 ise DB9 konektörüdür. Bu konektörü bilgisayarınızdan devrenize bağlamak, kabloları lehimleyebilmek için aşağıdaki gibi bir çevirici kullanmanız gerekmektedir.
MAX232 Devresinin Breadboard Üzerine Kurulmuş Hali. Tx ve Rx Uçları Birbirine Bağlı.Devreyi breadboard üzerine kurduktan ve bağlantıların doğru yapıldığından emin olduktan sonra bir terminal programı aracılığı ile seri haberleşmemizi yapabiliriz. Bunun için Windows altında çalışan HyperTerminal programını kullanacağız. Eğer HyperTerminal programını kullanmak istemiyorsanız kullanıcıların da önerdiğiTeraTerm programını kullanabilirsiniz.
Bağlantı İsmini Girin. Herhangi bir isim girebilirsiniz.Port Olarak COM1 Seçiliyor.
9600baps, 8-N-1, Flow Control devre dışı
9600bps ve 8-N-1 şu anlama gelmektedir; Bilgisayar ve mikrodenetleyici arasındaki iletişim hızı, saniyede 9600 bit olacaktır ve Parity(eşlik) bitleri kullanılmadan sadece 8 bitin bittiğini belirten bir dur(stop) biti kullanılacaktır. Partiy biti hakkında daha detaylı bilgiyi buradan edinebilirsiniz.
Şimdi tüm bağlantıların doğru olduğundan tekrar emin olup ilk denemelerimize başlayalım . Bilgisayarda herhangi bir karaktere bastığınız anda HyperTerminal programına bunun ASCII karşılığı gidecektir. ASCII, her karaktere özgü bir karşılık anlamına gelir ve 16 lık tabanda gösterilir. Örneğin ; Bilgisayar klavyesinden 'A' tuşuna bastınız, 'A' karakterinin ASCII karşılığı ikilik tabanda = 0b 01000001, onluk tabanda = 65, onaltılık tabanda = 0x41 dir. Yani siz klavyeden 'A' tuşuna bastığınız anda seri port çıkışından 0x41 sayısı gönderilecektir(Tx). Ve Tx ve Rx uçları birbirine bağlı olduğundan bu bilgi tekrar seri potunuzdan geri gelip(Rx) HyperTerminal programında görünecektir. Bu şekilde iletişiminizin sağlıklı çalışıp çalışmadığını kontrol edebilirsiniz. Eğer iletişim başarılı olduysa şimdi bu işlemi Atmega168 ile de yapabiliriz demektir. Bunun için breadboard üzerine aşağıdaki şemada verilen bağlantıları yapmanız gerekmektedir.
Atmega8 ve MAX232 devresi. Eagle schematic / PDF Bağlantıları yaptıktan sonra breadboard üzerinde aşağıdaki gibi Tx ve Rx uçlarının Atmega168'e bağlandığı devremiz bilgisayar ile seri iletişim yapmaya hazır haledir.
Tx ve Rx Bağlantıları Atmega168 ile YapılıyorNot : Bu devrede MAX232 kullanılmadı. Çünkü MAX232 çıkış olarak sadece 5v çıkış vermektedir. Fakat bazı durumlarda bazı mikrodenetleyiciler 3.3v ile çalışıp portlarınında maksimum 3.5v gibi bir gerilime izin verdikleri için SP232 kullanıldı. SP232, Sipex firmasının ürettiği çıkışı 3v olan bir seri iletişim entegresidir. MAX232'den tek farkı budur. Ve 5v sistemlerle sorunsuz olarak çalışabilmektedir.
Bu dersin tüm parçalarını buradan edinebilirsiniz.
0 yorum:
Yorum Gönder