Gelişen mikrokontrol teknolojileri ve artan bilgi birikimi sayesinde geliştirici düzeyinde daha yaygın kullanımına olanak tanımıştır. Burada elimden geldiği kadar bazı örnekler sunmaya çalışacağım...

14 Şubat 2011 Pazartesi

Atmega8 ile USB (FT232) İletişimli Bilgisayar Klavyesi


"Atmega8 ile Seri İletişimli Bilgisayar Klavyesi" projesi ile PS/2 bağlantısı kullanan bir bilgisayar klavyesi ile Atmega8 işlemcisi arasında iletişim sağlanarak seri port üzerinden bilgisayara bilgi aktarılmıştı. Günümüzdeki bilgisayarların seri portları olmadığı düşünülürse, bazı sorunlara yol açacağı açıktır.

Bu projede PS/2 bağlantısı kullanan bir F tipi bilgisayar klavyesini Atmega8 işlemcisi üzerinden bir seri-USB dönüştürücü devresi (FT232) ile bilgisayarın USB bağlantısı oluşturulmaya çalışılacaktır.
USB

"FT232BL USB-Seri Dönüştürücü" projesinde USB konusunda ve devrenin çalışması konusunda ayrıntılı olarak işlenmişti. FTDI Chip firması tarafından üretilmiş FT232BL ile USB Seri dönüştürücü kullanılarak oluşturulmuş devre FT232 çipine ek birkaç eleman ile kolaylıkla oluşturulmaktadır. Tek yapılması gereken birkaç kablo bağlamak ve kart üzerindeki köprüleri ayarlamak.

FT232 devresi bilgisayardan beslenecek şekilde köprüleri ayarlanmalıdır. Bu şekilde ek bir besleme gerekmeden, sistem kolaylıkla kullanılabilir. Bilgisayarın USB portu yaklaşık 500mA ve +5V besleme sağlayabilecek yapıdadır.
Devre

Sistem üç ana parçadan oluşmaktadır. Aslında isteyen Atmega8 kartı ile USB kartını birleştirebilir.

Bilgisayar klavyesi üzerindeki tuşlar basıldığında mini-din 6 bağlantısı üzerinden elektrik sinyalleri oluşturur. (Basılan tuşa göre değişiklik gösteren yapıda).

Atmega8 devresi klavyeden gelen elektrik sinyallerini yorumlayarak seri port (UART) üzerinden veri aktarımı yapar.

FT232 devresi ise Atmega8 işlemcisinden seri port (UART) verilerini alır ve bilgisayarın USB portuna) yönlendirir. Bu projede doğrudan USB port uygulaması oluşturulmamıs, sadece FT232 devresinin oluşturduğu sanal seri port kullanılarak FT232 ile bilgisayar arasında iletişim sağlanmıştır.

Yani bilgisayar programı çalıştırıldığı zaman bilgisayar üzerinde seri port yok ise, Seçenekler penceresinde görülecek tek seri port FT232 sürücüleri tarafından oluşturulan seri port olacaktır. Seçenekler diyalog kutusundan bu seri portun seçilmesi gerekiyor.

Bilgisayar üzerinde seri port varsa, var olan seri porta ek olarak FT232 tarafından oluşturulan seri port bu portlara eklenecektir.

Şekil-1 :Klavye-UART arayüz kartı.


Şekil-2 :UART-USB arayüz kartı.


Şekil-3 :Projede kullanılan F-klavye. (10 yıllık bir klavyedir).


Şekil-4 :Klavye-UART arayüz kartı ile UART-USB arayüz kartı arasındaki bağlantıyı sağlayan kablo.


Şekil-5 :USB kartı ile bilgisayar arasındaki bağlantı kablosu.

Şema

Atmega8 işlemcimiz olan üzere IC3 ile temsil ediliyor. Bunun saat frekansı üretimini sağlayan XTL2 kristal olup 7,3728MHz değerinde ve bu kristale eşlik eden C7 ve C8 kondansatörleri 27pF değerindeler. İşlemcinin programlanmasında kullanılan ISP konnektörüdür. D3 ledi işlemci ve devrenin çalışmasının gösterirken, LED ve işlemci arasında 1K'lık R15 dirençleri akım sınırlama elemanı olarak iş görürler. 10K'lık R11 ve R12 dirençleri pull-up dirençleridir. P4 USB kartı ile UART bağlantısı için kullanılır. P5 konnektörü 6 bacak mini DIN konnektörüdür ki bu klavye girişidir. R13 ve R14 kısa devre elemanıdır. (Köpreleme teli yeri kullanılmaktadır). C6,C9 ve C10 Atmega8 devresinde filtreleme elemanlarıdır.

UART-usb köprüsü olarak kullanılan FT232BL IC1. Bu tüm devreye bağlı olan R9 ve R10 27R USB akım sınırlama dirençleri. Burada R9 ucuna bağlı olan R8 1K5 direnci USB’nin tipini (USB2.0) belirleyen dirençtir. Buradaki R6 4K7 ve R7 10K devre harici besleme durumunda bilgisayarın kapatılması durumunda USB cihazın sıfırlanması ile ilgili bir görevi var. R1 ve R2 1K dirençleri D1 ve D2 LED’lerinin akım sınırlama dirençleridir. D1 ve D2 LED’leri seri port iletişim monitörü olarak çalışır. R3 10K ve R4 2K2 IC2 EEPROM’un veri aktarma uçlarının FT232BL entegresine bağlantısında kullanılır. C1,C2 27pF ve XTL1 6MHz ise IC1 için saat frekans üretim sistemini oluşturuyor. USB-A USB bağlantı konnektörü. P1 seri bağlantı için bağlantı portudur. P2 ve P3 ise besleme bağlantısı için seçim konnektörleridir.

Geriye kalan kondansatörler filtre amaçlıdır.

Şekil-6:Blok şeması


Şekil-7:Devrenin şeması

Devre Yapımı

Devre yapımınde SMD elemanların lehimlenmesi biraz daha özen gerektiriyor. Devre yapılırken öncelikle SMD elemanların lehimlenmesi sonra bazı sorunların önüne geçecektir. Dikkate edilmesi gereken SMD elemanlarda Eleman yüzü üzerinde gösterilmiştir. IC1 noktası sağa bakar halde gösterilmiştir ama PCB tarafında lehimlenirken bu elemanın noktası sola bakacak şekilde yerleştirilmelidir. Yani IC1 eleman tarafından görüldüğü gibi gösterilmiştir.

Şekil-8:Devrenin baskı devresi şekli-kartın eleman yüzü tarafından görünümüdür


Şekil-9:Devrenin yerleşim planı-kartın eleman yüzü tarafından görünümüdür


Şekil-10:Eleman ve yolların birlikte görünümü


Şekil-11:Kartların alttan görünümü .


Şekil-12:Kartlar arasındaki bağlantı çizimi


Şekil-13:Bağlantıları yapımış kartlar

Devre Elemanları

27RR9,R10
220RR1,R2
470RR5
1k5R8
2k2R4
4k7R6
10KR3,R7
27pFC1,C2
100nFC3,C4,C5
3mm Kırmızı LEDD2
3mm Yeşil LEDD1
FT232BLIC1
93C46 (DIL)IC2
6Mhz kristalXTL1
10 HeaderP1
USB-A konnektörUSB-A
3 bacak sıra pinP2,P3
köprüköprü(jumper) 2 Adet
8 bacaklı entegre soketi (DIL)-
1K(1206 smd)R15
10K(1206 smd)R11,R12
27pF(1206 smd)C7,C8
100nF(1206 smd)C9,C10
10µFC6
3mm LEDD3
ATMEGA8 (DIL)IC3
7,3728Mhz kristalXTL2
2x3Header (ISP6)isp
mini DIN-6 dişi konnektör P5
2x5 HeaderP4
28 bacaklı entegre soketi (DIL)-
kartlar arası kablo-
USB kablosu-
PS/2 F-Klavye-

Bilgisayar Programı

"Klavye-USB.exe" programı Borland Delphi ile yazıldı ve derlendi. Bazı kodlar internet üzerindeki sitelerden alınarak istenen amaç doğrultusunda birleştirildi. Program çalıştırıldığında Windows araç çubuğundaki Görev Çubuğu bölümünde bir simge olarak eklenecek ve gerektiğinde Seri Port gibi bazı seçeneklerin seçilmesi için erişim imkanı sağlarken, ön plandaki açılmış olan herhangi bir uygulamaya basılan tuşun gönderilmesini sağlamaktadır.

Şekil-14:Açılmış program ile birlikte yerleşmiş Görev çubuğu simgesi.

Program basitçe şöyle çalışmakta;

Program ilk açıldığında Görev çubuğu alanına kendi simgesini ekler. Bu simge üzerinden program kapatılabildiği gibi seçenekler pencresinin açılmasına da olanak tanımaktadır.

Program kendi ini dosyasından Seri port numarasını okur ve seçenekler penceresindeki seri porta atar.

Program klavye üzerindeki tuş basılması ile sanal seri port üzerinden gelen veriyi bekler. Veri geldiğinde ilk olarak ön planda açık olan uygulamanın class adını alır. Çünkü class adı o uygulmaya erişim için gereklidir. Class adını seçenekler penceresindeki gerekli alana yazar.

Tuş basılması ile gelen veri okunarak öncelikle Seçenekler penceresindeki alana yazılır. Sonra gelen tuş karakteri class adına uygun olarak o programa gönderilir.

Not:Bazı karakterin ASCII tablosuna uygun olarak diğer uygulamalara gönderilmediğini belirtmek gerekiyor.

Bilgisayar programının kullanımı

Program konusunda söylenecek fazla bir şey yok. Basitçe "Klavye-USB.exe" uygulamasını çalıştırıyorsunuz.

Gerekirse seçenekler penceresindeki seri port (sanal) seçiyorsunuz. Seri port seçiminden sonra Tamam butonuna basarak onaylıyorsunuz. Bu işlem Seçenekler penceresini kapatacaktır.

Yazı yazılacak bir metin programı açıyorsunuz. Artık tek yapmanız gereken sadece klavyenin tuşlarını basmak. Tuşları basıp bıraktıkça metin programı üzerinde bilgisayarın kendi programını kullanıyormuş gibi yazacaktır.

Projede bazı sınırlamalar var. Fonksiyon tuşları (F1,F2…),Caps Lock, Ctrl, Alt tuşları ve Sağ Ctrl tuşunun sağında kalan tuşlar kullanım dışıdır. (Klavye üzerindeki LED'leri kullanım dışı olduğunu belirtmek gerekiyor)

Şekil-15:Klavyede kullanım dışı tuşlar kırmızı alanlar ile gösterilmiştir.

Not:Program XP işletim sistemi üzerinde denenmiştir."Bilgisayar programı" ve "Bilgisayar programının kullanımı" başlıkları altındaki metin bu proje kullanımıyla yazılmıştır

Şekil-16:Seçenekler penceresi.

Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Bilgisayarda bulunan seri portları ve seçilmiş olan seri portu gösteren açılır menü penceresi.
  2. Basılan tuşu göstere yazı alanı (basılan tuş ile güncellenir)
  3. Bilgisayarın ekranında en öndeki açıl olan programın class adı (basılan tuş ile güncellenir).
  4. Yapılan ayarları onaylayıp Seçenekler penceresini kapatır.

Görev çubuğundaki program simgesini farenin sağ butonu ile ulaşılabiler iki menü öğesi vardır. "Kapat" menü öğesi programı kapatır. "Seçenekler" menü öğesi "Seçenekler" penceresini açar.

Ayarlamalar

"Klavye-USB" programındaki ayarlar zaten tek seçenek olan seri port seçim için "Seçenekler" penceresindedir.

Donanım için ise UART-USB arayüz kartı üzerindeki P2 ve P3 konnektörlerine takılacak olan köprülerdir.

Şekil-17:USB kartı üzerindeki köprülerin yerleşimi.


Şekil-18:USB üzerindeki köprülerin konumu açıkça görülmektedir.

Not:Program üzerinde hata kontrolu yoktur. Yani program çalışırken USB kablosunu bilgisayardan çıkartırsanız program hata döngüsüne girecektir. Bu nedenle USB kablosunu bilgisayardan çıkarmadan önce çalışan programın Görev Çubuğundan kapatılması gerekmektedir. ("Klavye-USB" programı hata döngüsüne girerse "Windovs Görev Yöneticisi" altındaki "İşlemler" etiketi altından kapatılabilir.)

video
Ekler:

ATMEGA8 hakkında bilgi için

"Atmega8 ile USB (FT232) İletişimli Bilgisayar Klavyesi" için dosyalar-birleşik

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A....

Hiç yorum yok:

Etiketler

İzleyiciler