"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.
"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.
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.
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.
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.
27R | R9,R10 |
220R | R1,R2 |
470R | R5 |
1k5 | R8 |
2k2 | R4 |
4k7 | R6 |
10K | R3,R7 |
27pF | C1,C2 |
100nF | C3,C4,C5 |
3mm Kırmızı LED | D2 |
3mm Yeşil LED | D1 |
FT232BL | IC1 |
93C46 (DIL) | IC2 |
6Mhz kristal | XTL1 |
10 Header | P1 |
USB-A konnektör | USB-A |
3 bacak sıra pin | P2,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µF | C6 |
3mm LED | D3 |
ATMEGA8 (DIL) | IC3 |
7,3728Mhz kristal | XTL2 |
2x3Header (ISP6) | isp |
mini DIN-6 dişi konnektör | P5 |
2x5 Header | P4 |
28 bacaklı entegre soketi (DIL) | - |
kartlar arası kablo | - |
USB kablosu | - |
PS/2 F-Klavye | - |
"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.
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.
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)
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
Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
- Bilgisayarda bulunan seri portları ve seçilmiş olan seri portu gösteren açılır menü penceresi.
- Basılan tuşu göstere yazı alanı (basılan tuş ile güncellenir)
- Bilgisayarın ekranında en öndeki açıl olan programın class adı (basılan tuş ile güncellenir).
- 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.
"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.
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.)
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:
Yorum Gönder