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... Görüleceği gibi ilk örneklerimizde çoğunlukla ASM üzerinde iken daha sonraları C üzerinde örnekler yer almaktadır. Hatta ilerleyen zamanlarda Arduino örneklerinin yer alması kaçınılmaz olacaktır.

23 Aralık 2009 Çarşamba

Atmega8 ile Seri Port üzerinden Bilgisayar Ses Kontrol


Giriş

Çoğumuzun bir bilgisayarı vardır. Çoğu kişinin de bu bilgisayarın yanında bir hoparlörü, belki bazıları için hoparlör demek belki biraz hakaret olabilir. Bu bilgisayarın ses sistemini kontrol eden bir uzaktan kumandası yoksa, müzik dinlenirken veya film izlerken ses seviyesini ayarlamak için bilgisayarın yanına kadar gitmek gerekebilir. Hani şöyle rahat bir koltukta oturur veya yatakta sere serpe uzanırken bilgisayarın sesini ayarlamak için sen kalk ta bilgisayarın başına git. Olur mu olur. Peki buna bir çözüm sunarsak, mesela bir RS485 iletişimi ile ses seviyesini ayarlama olanağına ne dersiniz?

Şu ana kadarki çoğu projede kullanılan RS485 iletişimini kullanan Atmega8 işlemcisi ile bir ses kontrol sistemi oluşturacağız.
Bilgisayar Ses Sistemi

Normalde bilgisayar üzerindeki ses sistemi bir ses işlemcisi (kontrol) üzerinden bilgisayar yazılımlımları ile kontrol edilir. Tabii ki işletim sisteminin kontrolu altında. Eskiden ek bir kart olarak takılan bu sistem artık günümüzde ana karta tümleşik olarak gelmekte, hatta özel kartlarda dudak uçuklatacak ses sistemleri ile gelmekte.

Bu ses sistemleri bir hoparlör sistemi ile desteklenerek bilgisayar programları ile kullanıcı arasında ses arayüzünü rahatlıkla ulaşabilir. Ayrıntılı bilgi için internet üzerinde araştırma yapabilirsiniz.

Şekil-1:Bilgisayar üzerindeki TV ekranında gösterilen ses seviyesi

Devre

Sistem aslında bir potansiyometre üzerine kurulu. Potansiyometrenin bir ucu Vcc, yani beslemeye, diğer ucu GND ve ortadaki ucunda ki ayar ucu oluyor, işlemciye bağlanıyor. Bu elemanın direnç değeri değiştiğinde işlemcinin ADC5 üzerinde bir gerilim değişimini sağlıyor. Bu noktada zaten iş işlemciye devrediliyor. İşlemci bu değeri okuyup RS485 üzerinden bilgisayara gönderiyor. Çok mu basit oldu? Zaten öyle. İşlemcinin tek yaptığı belirli aralıklarla potansiyometre üzerindeki gerilim değerini okuyup, bu değeri RS232 portu üzerinden RS485 iletişimi için kullanılan elemana iletmektir. (Şu hali ile 8 bitlik kontrol sağlıyor. Unutmamak gerekir ki ses kontrolu 16 bitliktir- en azından XP sistemi üzerinde öyle.)

Şekil-2:Atmega8 işlemcisi, RS485 ve potansiyometre ile kart görünümü

RS485 elemanı kendi üzerine düşeni yaparak bunu bilgisayara bağlı RS485 dönüştürücü kartına bilgiyi iletmektir. RS485 hakkında ayrıntılı bilgi için internet iyi bir bilgi kaynağı olabilir.

Aref ve GND arasına bağlı olan kondansatör bu işlemci için iç referans kaynağı kullanılabileceği anlamını taşımakta. AVCC üzerindeki kondansatör ve bobin ise besleme hatları üzerinde oluşabilecek olası parazitleri süzecektir.

Besleme artık her projede kullanılan köprü, 7805 ve kondansatörlerden oluşuyor.

Şekil-3:Potansiyometre ve bağlantısı

Şekil-3 üzerinde potansiyometre bağlantısı görülmektedir.Kenarlardaki VCC ve GND yeri değiştirildiğinde sadece potansiyometre dönüş yönüne göre ses seviyesi ayarı tersine döner.
Sistemin Çalışması

Çalışmasını basitçe şöyle özetleyebiliriz:

Potansiyometre üzerindeki konum orta ucundan VCC ve GND' göre bir gerilim bölücü olarak bir gerilim olarak alınır

Bu değer işlemcinin ADC ucuna uygulanır (ADC ayarı; Referans Gerilimi VCC olmak üzere atanmıştır)

İşlemcinin iç zamanlayıcı belirli aralıklarla bir tetikleme oluşturarak, ADC'nin (Potansiyometrenin bağlandığı bacağın) okunmasını sağlar.

Okunan değer 10 bitliktir. Bu iki 8 bitlik veri halinde gönderilir

Alt baytın 7. biti Üst baytın 0.biti olarak düzenlenir ve alt baytın 7.biti=0 Üst baytın 7.biti=1 olarak atanır(bilgisayara gelen verinin ne olduğu anlaşılması için)

RS485 üzerinden bilgisayara bağlı RS485/RS232 dönüştürücü yardımıyla bilgisayara gelir.

Bilgisayara gelen veri konunu çözer ve ses kartı 16 bitlik olduğundan

Ses kartı bilgisi=(((Veri(üst)-128)*128)+Veri(alt))*64 şeklinde bir ifade ile hesaplanır

Ve bu bilgi yardımıyla ses seviyesi ayarlanır

Şekil-4:Ses kartının başka bir görünümü

Şema

Sistemin kalbi IC1 Atmega8 oluşturuyor. Bu işlemcinin bilgisayar ile iletişimini RS485-RS232 dönüştürücü IC2 üstlenmiş durumda. İşlemcinin çalışması D2,R2'den oluşan LED direnç grubu ile izleniyor. L1,C10 grubu işlemcinin ADC beslemesi için filtre görevini yerine getiriyor. C5,C6 ve XTL1 işlemci için gereken saat frekansını üretiyor. IC2 bacaklarına bağlı R1 direnci aslında bir sonlandırıcı olarak görev yapıyor. D1,IC3,C2, C3,C7 ve C8 besleme devresi grubunu oluşturuyor. Nede olsa işlemci besleme gerekiyor. (+5V) Pot1 Şu anda devre için bir yerde algılayıcı olarak işlem görüyor. Çünkü sistem bu elemanın orta ucundaki gerilimi ölçüyor. Geriye kalan kondansatörler aslında sadece filtreleme yani hatlarda olabilecek elektriksel parazitik etkileri ortadan kaldırmaya yaramakta.

Not: RS232/RS485 dönüştürücü sistemi çalışması zaten "RS232/RS485 dönüştürücü arabirim" bölümü altında anlatıldı.

Şekil-5:Blok şeması


Şekil-6:Devrenin şeması

Devre Yapımı

Devre yapımında kritik bir eleman yok. Baskı devre kartı üzerinde geçekleştirildiğinde standart eleman yerleşimi göz önüne alınarak devre kurulabilir. Bu noktada diğer devre montaj teknikleri kullanıldığında bacakların doğru bağlanması önemlidir. Tabii ki kristal topraklanmalıdır. Devrede 7805 5V gerilim regülatörü üzerinden geçen akım göreceli olarak küçük olduğu için ek bir soğutucu kullanımına gerek duyulmamamıştır.
Tüm dirençler çeyrek wattır.
Besleme konusunda bir sorun oluşturmayacağınızı düşünüyorsanız girişteki köprüyü devre dışı bırakabilir veya tek bir diyotla değiştiribilirsiniz. (Kendi besleme kaynağınız varsa ve devreyi kendiniz kullanacaksanız). Bacak bağlantıları uyan başka bir LED kullanılabilir. Entegreler için soket kullanılması sonradan oluşabilecek sorunların çözümünde size yardımcı olabilecektir. Belki daha sonra tümdevreleri başka bir devre üzerinde kullanmak isteyebilirsiniz. Sizin imkan ve tercihlerinize kalmış bir durum...

Şekil-7:Devrenin baskı planı(eleman yüzünden göründüğü gibi)


Şekil-8:Devrenin yerleşim şekli


Şekil-9:Devrenin yerleşim planı


Şekil-10:Kartın alttan görünümü. Devre görüldüğü gibi fazla karışık değil.

Devre Elemanları

10µHL1
120RR1
1KR2
27pFC5,C6
100nFC1,C3,C4,C7,C9,C10,C11
10µFC2,C8
B125C1500 veya benzeriD1
3mm Kırmızı LEDD2
ATMEGA8IC1
MST485IC2
7805IC3
3,6864Mhz kristalXT1
6p2c RJ12 prizP1
6 Header (ISP6)ISP
4K7 potansiyometrePot1


Malzeme listesi. Burada işlemci için soket ve 9V adaptör verilmemiştir. Kaliteli 8 ve 28 bacaklı soketler oluşabilecek problemlerin önüne geçecektir.

Burada RS232/RS485 dönüştürücü malzeme listesi "RS232/RS485 dönüştürücü arabirim" proje bölümünden erişilebilir
Bilgisayar Programı

Bilgisayar üzerinde kullanılan program Delphi 7 ile yazıldı.Aslında ses kontrol bölümü ile ilgili temel kodları başka yerden aldım ama tam yerini hatırlamıyorum. Sadece RS485 ile ilgili erişim ve projeye uyarlamayı yaptım.

Program penceresi ilk açıldığında ses kontrol bölümü ve bir seri port seçme açılır kutusu görülür. Ses kontrolu bu pencere üzerinden de yapılabilir. Kaydırma çubuğu kullanılarak istenen ses seviyesi ayarlanabilir.

Şekil-11:Ses seviye kontrol programı


Şekil-12:Ses seviye kontrol programı

Sistem çalışması gerekli bağlantılar yapıldığında sistem sadece potansiyometre konumu değiştirilerek ses şiddetinin değiştiği görülür..

Şekil-13: Kartın potansiyometre ile başka bir görünümü

Film izlenirken görüleceği üzere kırmızı led yanıp sönmektedir. Bu yanma anlarında sistem ölçüm yapıp bilgiyi gönderir. Film üç bölümden oluşuyor: Potansiyometre ayarı, ayarın kontrol programı üzerindeki değişimi ve TV programı üzerindeki ses seviyesindeki değişimi.


Ekler:

ATMEGA8 hakkında bilgi

Atmega8 ile Seri Port üzerinden Bilgisayar Ses Kontrol için dosyalar- birleşik


Devreye potansiyometre bağlantısı

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

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

FT232BL USB-Seri Dönüştürücü


Giriş

Bilgisayar ile kontrol sistemleri uğraşmaya başlayan kişiler ilk olarak çoğunlukla paralel port veya seri port ile başlar. Göreceli olarak kullanımı ve kontrolu kolay ve bol miktarda örnek uygulama yer alır. Belki dikkatinizi çekmiştir son zamanlarda üretilen bilgisayar ana kartları üzerinde artık paralel ve seri portlar yer almıyor. Şimdilik bu portlar için PCI genişletme yuvalarına takılabilen ek kartlar var. Yine de kendiniz bazı uygulamalar yapmanız gerekiyorsa yeni bilgisayar ile uyumlu olmasını istersiniz. Günümüzde ise bilgisayar ile çevre birimler arasındaki en yaygın iletişim yöntemi USB portudur.
USB

Normalde Seri ve Paralel port kullanımı basittir. Birçok işlemci ve eski çevre birim bu portları desteklese de yeni üretilen bilgisayarlar ile iletişim zorlaşıyor. Bu problemin çözümü için yeni çevre birimler almak olabilir. Ama siz çevre birim geliştiriyorsanız, özellikle işlemciler ile çalışıyorsanız ne yazık ki birçok işlemci üzerinde USB portu standart bir iletişim yöntemi değildir.

Seri portları kullanan ürünler için bir hazır USB seri dönüştürücü kullanmak çözüm olabilir. Tabi ki bu ürün dışına takılan ayrı bir parça olduğu için maliyet ve ürün ciddiyeti açısından bir sorun oluşturabilir.

Bunun için en iyi çözüm USB-seri dönüştürücüyü kendi cihazınıza uyarlamaktır. Başka bir ifade ile cihazınızın içine takmaktır. FTDI Chip firması tarafından üretilmiş FT232BL ile USB Seri dönüştürücü yapımını inceleyeceğiz. Bu tümdevre halihazırda doğrudan USB portu (çevre birim olarak) üzerinden yaptığı iletişimi kendi üzerindeki seri portu üzerinden yayınlayarak (kontrol yazılımına bağlı olarak) bir köprü oluşturur.

Şekil-1:Kartın üstten görünümü


Şekil-2:Kartın alttan görünümü-özellikle FT232BL

USB portu

USB portu şu anki durumda 1.1 ve 2.0 sürümlerinde sadece 4 kablo üzerinden çevre birimlerin bağlanmasına olana tanıyan bir iletişim sistemidir. Değişik şekillerde bulunan bağlantı kabloları basitçe +5V,D+,D- ve GND uçlarından oluşan bir bağlantı içerir. USB portuna bağlanan çevre birim çektiği akım 500mA geçmediği sürece bilgisayar üzerindeki USB portundan beslenebilir. Eğer 500mA geçerse bu durumda bilgisayara zarar vermemesi için harici besleme sistemleri gerekir.

Bu durumda +5V ve GND uçlarının besleme uçları olduğu açıktır. Kullanılan FT232BL tümdevresi bu besleme üzerinden beslenebildiği gibi harici besleme hattı üzerinden de beslenebilir. Bu yöntemlerden hangisi olacağı kullanılacak proje ve kişinin seçimine kalmıştır. (örnekler için FT232BL veri kağıtları incelenebilir).

Şekil-3:USB portunun eleman yüzü tarafından bacak bağlantıları

Her ne kadar FT232 5V ile beslense de, üzerinde 3.3V için bir çıkış ucu mevcuttur. Gerektiğinde düzenlemeler yapılarak sistem 3.3V ile çalıştırılabilir.
D+ ve D- uçları ise iletişim uçlarıdır. Her iki yöndeki iletişim bu hatlar kullanılarak yerine getirilir. Şimdi bu alet USB1.1 veya USB2.0 olduğunu nasıl anlar. Aslında bunu çip üzerindeki bir parça değil de, D+ veya D- uçlarına bağlanmış bir direnç belirler.

D- ile +5V arasına eklenen 1K5 direnç USB1.1 belirler
D+ ile +5V arasına eklenen 1K5 direnç USB 2.0 olmasını sağlar.

Bunun anlamı eğer herhangi bir alet yokken bu bağlantıları yaparsanız bilgisayarınız doğrudan USB cihaz bulduğunu ama tanımlayamadığını belirtir. Çünkü bu USB tipini belirledikten sonra bilgisayar USB çevre birimle iletişime geçer ve ne olduğunu öğrenmeye çalışır.

Bu noktada dikkate alınması gereken D- ve D+ uçlarının lojik seviyesinin 3.6V civarında olduğunu unutmamak olur. Zaten FT232BL çip üzerinde bu konu çözümlenmiş, donanım olarak sunulduğundan bizim yapmamız gereken fazla bir şey yok.
Devre

Devre zaten başlıktan anlaşılacağı üzere iki adet USB bağlantı ucu (D+ ve D-) var. Bu uçlar direnç üzerinden USB portuna bağlanabilir.

Devre üzerinde bazı ayarlamalar yapılacak ve saklanacaksa devreye bir EEPROM eklenme gerekir. Tüm devre üzerinde donanım olarak yer alan EEPROM sürücüsü sayesinde bu ihtiyacı çözecektir. Önerilen EEPROM çeşitli üreticiler tarafından üretilen 93C46,93C56 ve 93C66 ailesidir.

Seri port için ek kontrol bacakları (özellikle modem gibi araçlar ile iletişimde) ek kontrol olanakları sunacak şekilde eklenmiştir.
Seri port üzerinden iletişim yaparken bir şekilde bu iletişimin izlenmesi gerekir. Bunu olanak tanıyan iki adet LED bacağı var.
Tüm devre üzerinde kristal veya rezonatör bağlantısı mevcut. Üretici firma tarafından verilen örneklerde bu 6MHz olduğu görülür. Ama bu sizi yanıltmasın tüm devre içinde frekans çarpıcı devre var ve devre 12MHZ ve 48MHz iç sistemlerinde kullanılmak üzere üretiliyor.

FT232BL görüldüğü üzere 32 bacaklı bir yüzey montaj yapısında. Aslında internet üzerindeki birçok örnekte tüm elemanların (US port hariç) yüzey montaj olacak şekilde örnekler mevcut. Ama devrenin bu şekliyle de çalıştığını söyleyebilirim. Bu tüm devrenin başka bacak bağlantı yapısına sahip sürümü yok

Şekil-4:Kart üzerine konnektörler takılı iken

Şema

Devrenin kalbi zaten görüldüğü üzere FT232BL IC1. Tüm iletişim sistemini bu eleman kontrol ediyor. Bu tüm devreye bağlı olan R9 ve R10 seri USB akım sınırlama dirençleri. Burada R9 ucuna bağlı olan R8 direnci USB’nin tipini (USB2.0) belirleyen dirençtir. Buradaki R6 ve R7 devre harici besleme durumunda bilgisayarın kapatılması durumunda USB cihazın sıfırlanması ile ilgili bir görevi var. R1 ve R2 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 ve R4 IC2 EEPROM’un veri aktarma uçlarının FT232BL entegresine bağlantısında kullanılır. Bu bağlantı şekli konusunda ayrıntılı bilgi için FT232BL veri kağıtlarını incelenmesi yerinde olabilir. C1,C2 ve XTL1 ise IC1 için saat frekans üretim sistemini oluşturuyor. USB-A USB bağlantı konektörü. (isteyen doğrudan USB kablosunu doğrudan lehimleyebilir.) P1 seri bağlantı için bağlantı portudur. P2 ve P3 ise besleme bağlantısı için seçim konektörleridir. Her ikisine takılacak köprü yardımıyla kullanılabilir. Geri kalan kondansatörler ise filtre için kullanılıyor

Şekil-5:Blok şeması


Şekil-6:Devrenin şeması

Devrenin Çalışması

Devre üzerinde çalışma durumanda fazla bir ayar yok. Sadece P2 ve P3 üzerindeki köprülerin konumu ayarlanması gerekiyor. Bu köprüler devrenin USB hattından mı, yoksa ayrı bir besleme üzerinden mi besleneceğini belirler. Şekil-7 köprülerin nasıl ayarlanacağını göstermektedir.
Buradaki asıl marifet POWERCTL ucunda(P3):POWERCTL=1 ise harici beslemeli olur, POWERCTL=0 ise USB üzerinden beslenir

Şekil-7:Kırmızı köprülü soldaki USB hattından beslenir;mavi köprülü sağdaki ayrı dışarıdan beslenir

Devre Yapımı

Devrenin yapımına aslında her zaman direnç ve köprülerle başlanır. Ama bir değişiklik olarak yüzey montaj elemanları önce yapmak yerinde olabilir. Dikkatlice FT232BL yerine doğru olarak bacakları PCB üzerindeki yollara hizalanmış olarak sabitlenir ve sonra iki bacağı sabitlenerek diğer bacakları dikkatlice lehimlenir. ( Ne yalan söyleyeyim beni en çok korkutan bölüm burası idi. Bu yüzden bu tüm devre elimde 3-4 yıldır yatıyordu-ama gördüğüm kadarıyla o kadar da korkulacak bir yanı yokmuş!)Eh geri kalan elemanların takılmasında bir şey yok. Burada söyle IC2 için bir entegre soketi kullanılması olası durumlarda bu tüm devre üzerindeki hataları ortadan kaldırmak için gerekebilir. Sadece lehimlerken soğuk lehim yapılmaması veya kısa devreye yol açabilecek durumlardan kaçınılması için dikkatli olmak yerinde olacaktır.
Tüm dirençler çeyrek wattır.

Besleme konusunda bir sorun oluşturmayacağınızı düşünüyorsanız girişteki köprüyü devre dışı bırakabilir veya tek bir diyotla değiştiribilirsiniz. (Kendi besleme kaynağınız varsa ve devreyi kendiniz kullanacaksanız). Bacak bağlantıları uyan başka bir LED kullanılabilir. Entegreler için soket kullanılması sonradan oluşabilecek sorunların çözümünde size yardımcı olabilecektir. Belki daha sonra tümdevreleri başka bir devre üzerinde kullanmak isteyebilirsiniz. Sizin imkan ve tercihlerinize kalmış bir durum...

Şekil-8:Devrenin baskı planı(eleman yüzü tarafından görünüm)


Şekil-9:Devrenin yerleşim şekli(IC1 kartın yollar tarafında lehimlenir-ters çevrilir,nokta sola bakar)


Şekil-10:Devrenin yollarla birlikte yerleşim planı



Şekil-11:Kartın alttan görünümü. Elemanlar lehimli ve lehimlenmemiş.

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
93C46IC2
6Mhz kristalXTL1
10 HeaderP1
USB-A konnektörUSB-A
3 bacak sıra pinP2,P3
köprüköprü(jumper)

Malzeme listesi. Burada işlemci için soket verilmemiştir. Kaliteli 8 bacaklı soketler oluşabilecek problemlerin önüne geçecektir.
Program

Bu noktada bilinmesi gereken şey, gerekli sürücü EEPROM programlayıcı ve devre ile ilgili örnekler için FTDI Chip firmasının internet sitesi size yardımcı olacaktır.
Bir USB alet tek başına doğrudan bilgisayara bağlanmaz, yani bilgisayar için sürücü gerekir. Devreyi bilgisayara bağladığınızda zaten bilgisayar durumu algılar ve sürücü yüklenmesi konusunda size uyaracaktır ve sizden sürücüleri isteyecektir. Siz bu sürücülerin yerini belirledikten sonra bilgisayar sürücüleri yükleyecek, USB alet olarak tanıyacak ve seri port bölümüne alet için bir port ekleyecek.
İsteyen FTDI sitesinden elde edebileceği programlayıcı program ile aletin ismi ve seri numarası ve birkaç seçeneği ayarlayıp devreye yükleyebilir.

Şekil-12:Devrenin EEPROM'u üzerindeki ayarların USB üzerinden değiştirilmesi(programlanması)

Şekil-12 EEPROM programlamak için yapılan düzenlemeler için bir örnek göstermektedir. Burada USB alet için özel bir isim ve seri numarası atandığı görülmektedir. Bu kısım özellikle birden fazla aynı özellikli USB aletin takıldığı bilgisayarlarda neyin ne olduğunu belirlemek açısından önemlidir.
Yani iki tane alet bilgisayara takıldığında seçilen USB cihazın hangisi olduğunu belirlemek için gereklidir. Özellikle USB üzerinden doğrudan kontrol ediliyorsa..

Şekil-13: Bilgisayara takılan USB-seri dönüştürücünün "Aygıt Yöneticisi" üzerinde belirlenmesi

Bu proje üzerinde doğrudan bir program verilmeyecektir. Çünkü programlar kendi uygulama özelliği olan devreler ile verilecektir. FTDI Chip internet sitesinden bu devre için gerekli sürücü ve programlara erişilebilir.

Şekil-14: Kartın RS232 bağlantıları(P1)

Ekler:

FT232BL için bilgi

FT232BL USB-Seri Dönüştürücü için dosyalar-birleşik

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

Translate

Sayfalar

Etiketler

İzleyiciler