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.

20 Aralık 2009 Pazar

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