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

10 Eylül 2014 Çarşamba

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

Giriş
Her ne kadar bu proje daha önce gerçekleştirilse de bootloader konusu ortaya çıkınca, USB dönüştürücü gerekliliği nedeniyle bu proje bootloader konusuna destek olarak yönlendirildi. Görüleceği gibi bu proje önceki DIP kılıf FTDI232BL projelerinin SMD kılıflı sürümü gibidir. Aslında bir yerde doğrudur.

Bu projede "FT232BL Bootloader USB-Seri Dönüştürücü" konusu incelenecektir.

FTDI232BL
Geniş bir uygulama alanında kullanılabilecek şekilde tasarlanan ürün, özellikle bilgisayarın USB portu ile işlemciler UART arasında (bu blog sayfalarında kullanılan ATMEL serisi gibi) bir köprü hizmeti vermektedir. 5V ile çalışan bir çok sistemde rahatlıkla ihtiyacı karşılayabilir.

Günümüzde artık pek çok 8 bitlik işlemciler üzerinde USB modülü bulunmaktadır. Ama Üzerinde USB portu bulunmayan işlemciler için FTDI232BL ve benzerleri elemanlar proje için işlemcinin USB bağlantı ihtiyacını karşılamak için gerekli bir öğe olacaktır.

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.(3.0 sürümünün farklı bir bağlantı şekline ve kablo sayısına sahiptir.) 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.
Şekil-1:USB 5V çıkış ayarlanmış köprü bağlantısı

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. Bunun için FT232 üzerindeki VCCIO bacağına uygulanan 3.0 ile 5.25V arasındaki besleme gerilimine göre çıkışlar üzerindeki gerilim değerleri kontrol edilebilmektedir. VCCIO bacağına uygulanan gerilim seviyesinden;

BacakSimgesiDurumu
10SLEED#çıkış
11RXLED#LED sürücü
12TXLED#LED sürücü
14PWRCTLgiriş
15PWREN#çıkış
16TXDENgiriş
18RI#giriş
19DCD#giriş
20DSR#giriş
21DTR#çıkış
22CTS#giriş
23RTS#çıkış
24RXDgiriş
25TXDçıkış
bacakları etkilenmektedir.

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

Bu devredeki kırmızı köprü ile belirtilen seçme bölümüdür. Bu köprü çıkışların 3.3V ve 5V arasında bir seçme imkanı tanıyacaktır. Yeşil ve mavi renkli köprülerin olduğu gibi kullanılmaları önerilir. Aksi durumu devre için harici besleme gerekecektir. Bu durum bu sistem için öngörülmemiştir.
Şekil-2:Kart üzerine köprülerin bağlantıları. Kullanılmakta olan projede devre 5V olacak şekilde ayarlanmıştır.

Ş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 (27 Ohm) seri 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 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 (220 Ohm) 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. Bu bağlantı şekli konusunda ayrıntılı bilgi için FT232BL veri kağıtlarını incelenmesi yerinde olabilir. C1,C2 (27pF)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 (RXD,TXD ve DTR uçları) programlama portu olarak kullanılmaktadır.. P2 ve P3 ise besleme bağlantısı için seçim konektörleridir. P4 ise 5V ve 3.3V arasında seçme içindir Her üçüde takılacak köprü yardımıyla kullanılabilir. Geri kalan kondansatörler ise filtre için kullanılıyor
Şekil-3:Blok şeması

Şekil-4:Devrenin şeması

Devrenin Çalışması
Devre üzerinde çalışma durumanda fazla bir ayar yok. Sadece P2, P3 ve P4 ü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.

Buradaki asıl marifet POWERCTL ucunda(P3):POWERCTL=1 ise harici beslemeli olur, POWERCTL=0 ise USB üzerinden beslenir
Şekil-5:Kırmızı köprülü bacak çıkış gerilimini ayarlamaktadır. Soldaki 3.3V için, sağdaki 5V içindir.

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. Geri kalan elemanların takılmasında bir şey yok. 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.

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

Şekil-7:Devrenin yerleşim şekli

Şekil-8:Devrenin yerleşim şekli (SMD kılıftaki elemanlar).

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

Şekil-10:Devrenin yollarla birlikte yerleşim planı(SMD kılıftakiler)

Şekil-11:Kartın alttan ve üstten görünümü.

Eğer devrenin ayarlarında bir değişiklik yapılması düşünülmüyorsa köprü yerine doğrudan tel lehimlenebilir. Bu şekilde köprülerin kaybolması veya biri tarafından kurcalanma riski ortadan kalkar
Şekil-12:İşlemci kartı ile bağlantı için kullanılacak şerit kablonun bağlantı şekli.

Devre Elemanları
27R (SMD-1206)R9,R10
220R (SMD-1206)R1,R2
470R (SMD-1206)R5
1k5 (SMD-1206)R8
2k2 (SMD-1206)R4
4k7 (SMD-1206)R6
10K (SMD-1206)R3,R7
27pF (SMD-1206)C1,C2
100nF (SMD-1206)C3,C4,C5,C7
Kırmızı LED (SMD-1206)D2
Mavi LED (SMD-1206)D1
FT232BLIC1
93C46 (SO8)IC2
6Mhz kristalXTL1
10 HeaderP1
USB-B konnektörUSB-A
3 bacak sıra pinP2,P3,P4
köprü3 köprü(jumper)
IDC101 adet
10'lu şerit kablo1 adet

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-13:Klavye-seri dönüştürücü devresi için oluşturulmuş metin düzenleme programı

Ş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-14: 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. 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.


Ekler:

FT232BL için bilgi

"FT232BL Bootloader USB-Seri Dönüştürücü" için gereken dosyalar.

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


Hiç yorum yok:

Etiketler

İzleyiciler