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...

20 Aralık 2009 Pazar

Yazılım Emülasyonu ile USB-Seri çevirici


Gelişen bilgisayar bileşenlerinden olan USB portlarının giderek yaygınlaşması beraberinde bilgisayar için bileşen geliştirenlere sorunları getirdi. Yani Seri port kullanımı yaygın ve işlemciler üzerinde standart olarak gelirken, bilgisayarların üzerindeki seri port kullanımı ve kontrolu kolaydı. USB portların kullanımı kolay ama kontrolu oldukça karmaşık bir yapıdadır. Peki gelişim sürecinde ne yapılabilir. Aslında özel USB portu bulunan işlemcilerin kullanımı bir çözüm olabilir. Tabii bu işlemcilerin geliştiriciler için fiyat,ulaşılabilirlik, hatta yazılım geliştirilmesi gibi bazı sorunların olduğu açıktır. Çünkü bu noktada sadece işlemcinin yazılımını geliştirmek yetmeyecek, ciddi bir şekilde bilgisayar üzerindeki USB kontrol yazılımınıda geliştirmek gerekecektir.

Hazır bir USB seri donanımı kullanımıda her zaman bir seçenektir. Bu durumda büyük miktarlardaki bir üretimde fiyat yükselmesi gibi bir durum ortaya çıkar.

Bu iş için geliştirilmiş donanımlarda mevcuttur.Bunların kullanımıda mümkün.

Burada sunacağımız çözüm AVR olarak isimlendirilen ATMEL firmasının ürettiği AT90S2313 işlemcisi kullanarak yazılım emülasyonu ile USB-seri dönüştürücü kullanmak. Devre hakkında daha fazla bilgi ATMEL firmasının internet sitesinde ve intenet üzerinde diğer kullanıcılara ait sayfalarda bulunabilir

Devrenin genel tanımı

Devrede anlatılacak fazla bir şey yok. Devre üzerinde herşeyi zaten işlemci gerçekleştiriyor. Üzerindeki program işlemcinin seri portu ve USB arasındaki köprülemeyi sağlıyor. Şu anda gösterilen kartta kullanılmasada USBportu ile kartın üzerindeki 8 bacaklar arasında köprüde mevcuttur. Ayrıca işlemcinin içinde bulunan eeprom'da USB portu üzerinden yazılıp okunabilmekte. Tabii ki bilgisayar üzerinde uygun yazılım kullanıldığı zaman. Devrenin beslemesi USB portu üzerinden sağlanmakta. USB portu ile ilgili bir durum olacak ki, işlemcinin 3.6V ile beslenmesi gerekiyor.(Ama 3.5V ile 4V aralığında çalışabiliyor) Bu besleme için LM317 kullanılarak elde ediliyor. Bunun bir zener diyotlu bir regüle sistemi ile de elde edilebilir. Seri port üzerine bağlamayı düşündüğüm devreler 5V ile çalıştığı için seri portların yolu üzerine 100R dirençler eklendi.


Şekil-1 :Devre çalışırken görünümü. Devrenin çalışması hakkında bir fikir verecektir.

Sistemin kalbi olan IC1 (AT90S2313) entegresi tüm usb haberleşmelerin kontrolu, ve seri bağlantıların kontrolu hatta iç eeprom iletişimi ve bacaklara bağlı 8 bağlantı portu denetimini yerine getirir. Bu entegreye bağlı olan C3,C4 ve XTL1 işlemci için gereken saat sinyallerini oluşturur.
Temelleri

USB üzerine biraz ele alacak olursak. 4 bağlantısı vardır. +5V, toprak hattı, VERİ+ ve VERİ- bağlantı noktaları vardır. +5V ve toprak hattı zaten besleme için gereklidir. Normalde bilgisayar üzerinden 500mA akım çekimine izin verir. VERİ+ ve VERİ- hatları bilgisayar ile bağlı olan aletler arasındaki iletişimi yönetir. Bu hatlar üzerindeki sinyaller iki yönlüdür. Bazı durumlar hariç iki hattın gerilim seviyeleri farklıdır. USB standart sinyal seviyesi 3-3.6V aralığındadır. Besleme hattı 5V civarında olduğu halde VERİ hattı seviyeleri 3.3V civarında olmalıdır.

Düşük hızlı aletlerin bilgisayar tarafından algılanması VERİ- hattına bağlanan 1.5K pull up direnci ile sağlanır. (bu yüksek hızlı aletlerde VERİ+ hattına bağlanır)

Sinyal alış verişlerinde sinyal senkronizasyonu için her haberleşme başında bir uyumlama yapılması gerekir. Bu başlık karedalga sinyali (101010) gönderilir sonra veri gönderildikten sonra 00 eklenir.

Burala kadarki basit düzeyde bir USB haberleşmesi olur ki bundan daha ayrıntılı öğrenmek isteyenler konuyu internette www.usb.org sitesinden ve bu devrenin kaynağı olan ATMEL'in sitesinden öğrenebilir.

Hatta intenet üzerinde ATMEL firmasına ait değişik entegrelere ait örneklerde mevcuttur. Hatta bu devrenin bulunduğu örnekte ATMEGA8 ile yapılmış bir devrede mevcuttur.(ATMEGA8 ile yapılan devre özellikleri burada verilen devreye göre daha geniştir.)

Bu noktada söyleyebileceğim USB-seri kartı bilgisayar ile kullanılmak üzere tasarlanmış. Aslında herşey bilgisayarda bitiyor. Çünkü normalde bu tür kartların doğrudan USB üzerinden bilgisayara iletişim kurma durumu yok. Bunu sadece bilgisayar istediği zaman ve bilgisayarın kontrolu altında yapılabiliyor. Yani basitçe bilgisayar karta ne var ne yok diye soruyor. Bu devrede seri port üzerinden gelen bir bilgi. Kart ondan sonra iletişime geçiyor. Her durumda olay bilgisayarın üzerinde. Zaten bunları ilgili belgeleri incelediğiniz kendinizde göreceksiniz.
Şema

Devre basitçe iki bölüme ayrılabilir. Besleme devresi IC1 (LC317) entegresinden oluşur. Bu devreye eklenmiş olan R4 ve R5 çıkış gerimliminin 3.6V civarında olması için basitçe ayarlanır(R4). Bu ayarlama devre kart üzerine takılmadan yapılırsa daha iyi olacaktır.

IC2 (AT90S2313) tüm işlemi yapan sistemin ana kalbidir. R1 bu kart bilgisayara takıldığı zaman kartın düşük hızlı USB olduğunu belirten pull-up direncidir. İşlemci yerine takılı olmasa bile bu kart bilgisayara takıldığı zaman bilgisayar bir usb alet bulduğunu ama tipini belirleyemediğini belirtir. R2,R3,Z1 ve Z2 elemanları bu kart üzerindeki USB hatları gerilimi yükseldiğinde bilgisayarın USB hatlarının yüklenmesini engeller. R6 ve R7 dirençleri bu karta takılacak seri hatların besleme gerilimi 5V civarında olduğunda seviye uygunlaştırıcı olarak çalışacaktır. XTAL1,C3 ve C4 işlemci için saat sinyali üretiminde kullanılmakta. Orjinal devrede C3 ve C4 yer almasa bile sisteme ekledim. (Aslında ilginçtir bu entegre 10MHz üst sınırı belirtilmiş olmasına rağmen devre 12Mhz'de çalışabilmekte.)

Şema üzerinde gösterilen D0...D7 giriş çıkış olarak kullanılabilen bacaklardır. USB hattı üzerinden kontrol edilebilen bacaklardı. Yani istenirse çıkış istenirse giriş olarak atanabilir, istenirse entegre içindeki pull-up dirençleri devree alınabilir.Bu bacaklara LED, Röle gibi elemanlar bağlanarak çıkış kontrol edilebilir.

USB seri çeviricinin blok şeması


Şekil-2:Devrenin şeması

Devre Yapımı

Devre yapımında kritik bir eleman yok. Dikkat edileceği üzere devre üzerinde entegreyi güç geldiğinde sıfırlamak için bir (power on reset) ek eleman yok. Bu entegre içinde çözümlenmekte. Devre yapımı hakkında fazla söze gerek yok. Lehimlerin temiz ve düzgün yapılması ve kaliteli eleman kullanılması yeterli. USB-A soketi kullanmak istemeyenler doğruna USB kablosu bağlayabilir. Entegre için kaliteli 20 bacaklı precision soket kullanmak olabilecek sorunların oluşumunu engelleyecektir. Kristalin topraklanması parazitik kapasitelerden devrenin etkilenmesini engeleyecektir. 10K trimpot olarak küçük yatık trimpot yeterli olmakta. İsteyen uygun sabit dirençler ile değitirebilirler.
Devre o kadar basit ki delikli bir kart üzerine bile kurulabilir. Bütün iş AT90S2313 ve programında.
Tüm dirençler çeyrek wattır.

Şekil-3:Devrenin yerleşim planı


Şekil-4:Devrenin baskı devresi şekli(kartın üstünden görünüm-büyütülmüş)


Şekil-5:İki kablo bağlantısı; birincisi USB kablo bağlantısı, ikincisi seri bağlantı için kablo bağlantısı

Devre Elemanları

100RR2,R3,R6,R7
220R R5
2K2 R1
10K trimpotR4
27pFC3,C4
100nFC2
10µFC1
3V6 ZenerZ1,Z2
AT90S2313IC2
LM317IC1
USB-A konnektörUSB-A
12Mhz kristalXTL1




Besleme mi, bilgisayar sağolsun. Bilgisayarın güç kaynağı umarım bu devreyide besleyecek kadar güçlüdür. Eğer yetmeyecek olursa bilgisayarın yeniden başlamasına sebep olabilir.
Kartı çalıştırmak için öncelikle ATMEL firmasından bu devre ile ilgili bilgisayar sürücülerini indirmeniz gerekiyor. (AVR309) Bu kartın USB sürücülerini bilgisayarınıza kurmanız gerekiyor. Ayrıca bu kartı denemek için Delphi programından yazılmış örnek bir yazılım ve Visual Basic, Delphi ve Visual C++ için temel tanımlar ve bunların yazacağınız programınızda nasıl kullanacağınızı anlatan belgeler bulacaksınız. Bu bölüm size kalmış.

Devre hakkında ayrıntılı bilgi ve örnekleri internet üzerinde bulabilirsiniz.
Ekler:
Dikkat: baskı devre şeması eleman yüzü tarafından göründüğü şekilde oluşturulmuştur.

AT90S2313 hakkında bilgi

Yazılım Emülasyonu ile USB-Seri çevirici için dosyalar- birleşik

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

Etiketler

İzleyiciler