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.

USB etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
USB etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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


17 Temmuz 2013 Çarşamba

Atmega8 ve LM75 çipi ile USB iletişimli termometre

Değişik haberleşme tiplerini kullanan sıcaklık ölçüm entegreleri vardır.DS1820 bir telli (hatlı) haberleşme tipini kullanan çıkış verirken, LM35'de çıkışını analog olarak vermektedir. Yaygın olarak kullanılan i2c haberleşmesi üzerinden öçülen sıcaklık bilgisini ileten entegreler vardır. Bunlardan biri de LM75'dir.

Bu projede Atmega8 ve LM75 çipi ile USB iletişimli termometre oluşturulacaktır.

i2c

Şekil-1 :Tipik bir i2c bağlantısı

Fiziksel olarak i2c bağlantısı 2 pull up direnç ile seri saat ve veri hatları Vcc konumuna çekilir. Dolayısı ile master veya slave bağlantı uçları kendileri aktif olarak lojik-1 konuma doğrudan etkilemez. Sadece Lojik-0 konumuna etkileri vardır. Master veya slave veri hattını lojik-0 çekmediği sürece pull up dirençleri sayesinde daima lojik-1 konumunda kalır. (lojik-1 kaynağı pull up dirençleridir. Bu dirençler bağlanmazsa, hat lojik 1 seviyesine ulaşmaz) Bu sistem özellikle birden fazla slave olduğu durumlarda aynı anda birden çok slave aktif olması durumnda birbirlerini yüklememesi için kullanılan bir yöntemdir.

Bu bağlanı türünde 2 tane bağlantı için kullanılan bacak var. Birisi saat sinyali. Bu master tarafından üretilen bir darbe dizisidir. Tüm haberleşme bu saat darbesi dizisine göre yapılır.

Diğer bacak veri bacağıdir ki, bu haberleşmenin yönüne göre master veya slave üzerinden yönlendirilebilir tek olayı her kim veri gönderiyorsa 8 bitlik veri sonunda alıcı tarafından bir kabul (ack) sinyalinin oluşturulmasıdır.(Bu durum başlangıç ve son veri istisnadır. Başlangıçta 8 bit yoktur ki son veriden sonra ack sinyali yoktur)

Bu haberleşmeyi basitçe ele alırsak; haberleşme bir başlangıç durumu ile başlar. Yani master alet slave alete i2c haberleşmesinin yapılacağını haber verdiği bir durumdur.
Şekil-2 :Başla/Durdur durumları

Her i2c iletişi bir BAŞLA durumu ile başlar. Saat hattı "1" konumunda iken veri hattı "1-0" geçişi ile oluşturulur.

Tabii ki haberlleşme sonunda veya herhangi bir noktada bir hata alındığında bu haberleşmeyi sonlandırmak gerekir.

Her i2c iletişimi DURDUR durumu ile sonlandırılır. Saat hattı "1" konumunda iken veri hattı "0-1" geçişi ile oluşturulur.

Haberleşme de BAŞLA durumundan sonra master alet tarafından slave aletin tanıtım kodunu gönderir burada bazı slave aletlerde donanımsal olarak eklenen bazı adresleme bacakları olabilir. Bu adresleme bacaklarının bağlantısı bu tanıtım koduna eklenir ki 0. bit ise slave alete oku/yaz işleminin yapılacağını belirtir. Bu tanıtım kodu slave tarafından kabul edilirse bir kabul biti (ack) 9. saat sinyalinde yayılanır (veri hattı lojik-0'a çekilir)

Artık bu noktadan sonra gereken veri iletişimlerine geçilir.

Aynı i2c hattı üzerine eklenen aletlerin tanımları (dolayısı adresleri) değiştirilerek 127 taneye kadar alet bağlanması mümkündür. Bu tür haberleşmeyi kullanan en yaygın çipler eepromlardır.

LM75

Şekil-3 :Küçük bir kart üzerindeki LM75. i2c pull-up dirençleri görülmektedir. Üstteki kondansatörler 100nF ve 10µF'dır

8 bacaklı entere biçimindeki alet,besleme hatları i2c bağlantı, adres seçme hatları ve sıcaklık sınır değer aşımı alarmı çıkış (bu bölüm inceleme dışı tutulmuştur)verebilen yapıdadır. Alet 9 bitlik delta sigma analog dijital çevirici içermekter. Bu da alet çıkışının 9 bit veri uzunluğuna sahip olduğunu gösterir. -55 ile +125 derece arasında ölçüm yapabilen alet, 3 ve 5.5V aralığında çalışabilmektedir. (gerilime uygun model ile)

Entegre üzerinde analog dijital çevirici olduğundan üzerinden ADC bulunmayan işlemciler ile kullanılabileceği anlamını taşır.LM75 0.5V'luk bir çözünürlük ile sıcaklığı okuyabilmektedir. i2c okumasından 9. bit işaret bitidir. Yani 9. bit 0 ise pozitif sıcaklıklar ve 1 ise negatif sıcaklıkları gösterir. Aynı zamanda 0. bit 'de ondalık sayıyı göstermektedir. 0 ise 0 gösterirken, 1 olması .5 değerini göstermektedir. Böylece işlem yapılması gereken 7 bit kaldığını gösterir.

LM75 için alet adresi 1001,A2,A1,A0 ve oku/yaz biti ile oluşturulur. Bu projede A2,A1 ve A0 bacakları toprağa bağlandığından 0 olur ve dolayısı ile alet slave adresi 1001000+oku/yaz şeklinde düzenlenir. Buna göre LM75 yaz tanım kodu 10010000(0x90) ve oku tanım kodu 10010001 (0x91) şeklinde olmaktadır.
Şekil-4 :i2c üzerinden işlemci ve LM75 arasındaki iletişim..

Bir sıcaklık verisinin okunmasında;

  • LM75'e başlama durumu gönder 
  • LM75'e tanıma kodunu (çip kodu+adres+ yaz biti) gönder ---LM75'den kabul durumu bekle 
  • LM75'e okunacak bayt adresini (0x00) gönder --- LM75'den kabul durumu bekle 
  • LM75'e başlama durumu gönder --- LM75'den kabul durumu bekle 
  • LM75'e tanıma kodunu (çip kodu+adres+ oku biti) gönder ---LM75'den kabul durumu bekle 
  • LM75'den sıcaklık yüksek anlamlı baytı oku --- LM75'e kabul durumunu gönder 
  • LM75'den sıcaklık düşük anlamlı baytı oku --- LM75'e kabul değil durumunu gönder 
  • LM75'e durdur durumu gönder...

kabul durumu:Lojik-0 
kabul değil durumu: Lojik-1



Artık bu noktadan sonra okunan verinin değerlendirilerek sıcaklık değeri ile eşleştirilmesine kalmıştır.

Düşük anlamlı baytı sadece bit7 değerlendirelmektedir. bit.7'de sıcaklık değerinin ondalık hanesine denk düşmektedir ki sadece 0 ve 5 değerini almaktadır.
Şekil-5 :LM75'den alınan sıcaklık verisi.

Yüksek anlamlı baytın bit-7 ise sıcaklığın negatif veya pozitif değerini ayırmak için kullanılmaktadır.

Yüksek anlamı bayt değeri onluk sistemde doğrudan sıcaklık değerine denk düşmektedir ki bu bir çevirme işlemine gerek olmayacağı anlamını taşır. Sadece sıcaklık değeri sıfırın altında ise o zaman elde edilen değerinden 256'nın çıkarılması gerekmektedir. (yüksek anlamlı baytın bit-7 dahil)

Değerlendirme açısından basitçe gözden geçirirsek,
pozitif sıcaklık için;
yüksek anlamlı bayt (onluk sistem). düşük anlamlı baytın bit 7 ( bit7=0 ise değer 0, bit7=1 ise değer 5)

negatif sıcaklık için;
(yüksek anlamlı bayt (onluk sistem). düşük anlamlı baytın bit 7 ( bit7=0 ise değer 0, bit7=1 ise değer 5))-256

ile istenen değerler hesaplanabilir...

Bu proje açısından aslında bu işlem bilgisayar üzerinde gerçekleştirilecektir. Yani LM75 üzerinden okunan sıcaklık değerleri USB üzerinden bilgisayara aktarılacak ve bundan sonraki hesaplamalar ve değerlerin değerlendirilmesi konusu bilgisayar üzerindeki program tarafından gerçekleştirilecektir. USB iletişim için Atmega8 ile birlikte FTDI firmasının ürettiği FT232BL çipi ile çalışan bir USB modül kullanılmaktadır


Not : i2c ile bu şekilde veri alınmasına rağmen bilgisayar önce LSB (düşük anlamlı bayt) sonra MSB (yüksek anlamlı bayt) gönderilir ve bu şekilde işlem yapılır.

Devre

Projedeki devre iki ana bölüme ayrılabilir.
Şekil-6 :İşlemci kartı. Sol taraftaki küçük kartta LM75 takılıdır. Sağ taraftaki kart işlemlerin kontrol edildiği Atmega8'i barındırır.

LM75'inde dahil olduğu işlemci devresi; besleme, Atmega8 işlemcinin bulunduğu LM75 ile i2c bağlantısıno kurup gerekli sıcaklık bilgilerinin alıp bunları UART bağlantısı (USB ile arabirim bağlantısı) üzerinden USB modüle iletir.
Şekil-7 :USB-UART kartı. FTD232BL çipi SMD yapıda olduğu için kartın altındadır.

USB modül ise üzerinde USB portu bulunmayan Atmega8 gibi işlemcilerin UART bağlantısını kullarak bilgisayarın USB bağlantısı arasında köprü olarak kullanılan devredir.
Şekil-8 :işlemci ile USB-UART kartı arasındaki bağlantıyı sağlayan uçlarına IDC10 konnektör takılı 10 yolllu yassı kablo.

Sonuçta bilgisayardan gelen sıcaklık bilgisini ölç komutunu alan işlemci devresi i2c bağlantısı üzerinden LM75'den sıcaklık bilgisini alır ve yine USB bağlantısı üzerinden bu sıcaklık bilgisini bilgisayara gönderir. Bilgisayar üzerindeki programda gelen bu bilgiyi yorumlar ve kullanılır hale getirir.
Şekil-9 :Proje başlığı olarak USB ile bağlantı belirtildi ise de sadece bilgisayar arayüz bağlantıları değiştirilerek diğer iletişim yolları ile bilgisayar ve işlemci kartı arasında bağlantı kurulması mümkündür. Soldan sağa doğru, FTD232BL USB, FT232RL USB, Bluetooth, RS232 bağlantı kartları ve burada belirtilmeyen diğerleri ile kullanılabilir.

Şema

USB seri dönüştürcü Devresinin 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 (27R) seri USB akım sınırlama dirençleri. Burada R9 (27R) 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 LED1 ve LED2 LED’lerinin akım sınırlama dirençleridir. LED1 ve LED2 LED’leri seri port iletişim monitörü olarak çalışır. R3(10K) ve R4 (2K2) IC2 (93C46) 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 XT1 (6MHz)ise IC1 için saat frekans üretim sistemini oluşturuyor. USB-A USB bağlantı konnektö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ü y ardımıyla kullanılabilir.

İşlemci kartının elbetteki asil iş gören parçası IC3 (Atmega8)'dir. İşlemcinin zamanlama ihtiyacını karşılamak için XT2(3.6864MHz) kristal ile C6 ve C7 (27pF) kondansatörler ile birlikte işlemci için gereken zamanlama frekansını üretirler. R11 ( 1K) ve LED3 (LED) ile devrenin çalışmasını izlemek üzere kullanılmaktadır.

Sıcaklık algılayıcısı IC5 (LM75) olarak çalışır. Bu enterenin i2c bacaklarındaki dirençler R12 ve R13(10K) Pull-up dirençleri olarak iş görür.


D1 (W10M), IC4 (7805), C10,C11 (100nF), C8 (10µF/25V) besleme devresini oluşturmaktalar. Geriye kalan bütün kondansatörler devre oluşabilecek gürültüleri süzme görevini yerine getirir.
Şekil-10:Blok şeması
Şekil-11:Devre şeması (P1,P4 ve P6 konnektörü gösterilmemiştir)

Devre Yapımı

Devre montajı açısından kritik bir durum yoktur. Görüldüğü gibi devre son derece sadedir. Sadece kabloları karta lehimlerken kısa devre olmamaları için dikkatli olmak yerinde olacaktır.
Şekil-12:Kartların yollar

Şekil-13:Kartların üstteki eleman yerleşimi

Şekil-14:Kartların alttaki eleman yerleşimi

Şekil-15:Kartların yolları birlikte üstteki eleman yerleşimi

Şekil-16:Kartların yolları birlikte alttaki eleman yerleşimi

Şekil-17:Kartların bağlantıları. .

Şekil-18:USB kartındaki köprülerin konumları

Şekil-19:Tüm sistemin bağlantı yapılmış hali.

Devre Elemanları

27R R9,R10
470R R5
1K R1,R2,R11
1K5 R8
2K2 R4
10K R3,R7
10K (1206 smd) R12,R13
4K7 R6
10µH L1
27pF C1,C2,C6,C7
100nF C3, C4, C5, C9, C10, C11, C12, C13
100nF (1206 smd) C15,C17
10µF (1206 smd) C16
10µF/25V C8
LED LED1,LED2,LED3
FT232BL IC1
93C46 IC2
Atmega8 (DIL) IC3
7805 IC4
LM75 IC5
W10M veya benzeri D1
6 Mhz kristal XT2
3,6864 Mhz kristal XT2
2x3 Header (ISP6) isp
2'li klemens P1
28 bacaklı entegre soketi (DIL) -
8 bacaklı entegre soketi (DIL) -
10 yollu şerit kablo (10cm) -
IDC10 kablo dişi konnektör 2 adet -
IDC10 kart tipi erkek konnektör P1,P4
1x3 sıra pin erkek p2,p3
USB-A konnektör USB-A
p2 ve p3 için köprü dişi -
Besleme için 9V'luk adaptör unutulmamalıdır.

Bilgisayar Programı

Şekil-20:Bu proje için C# üzerinde yazılmış bilgisayar programı simgesi.

"M8_USB_LM75_termometre.exe" C# ile yazılmıştır. Bu nedenle çalıştırabilmek için Frameworks.net runtime sürüm 4'ün bilgisayarınızda yüklü olması gerekiyor. Program Win xp üzerinde geliştirilmiş ve denenmiştir.

"M8_USB_LM75_termometre.exe" simgesi üzerine iki kez tıklayıp çalıştırıyoruz.

Ana pencere
Şekil-21:Ana pencere.

Program ilk açıldığında gösterildiği penceredir. Bu pencere üzerindeki öğelerin açıklaması aşağıda verilmiştir.
  1. Ana pencere-Ayarlar penceresi arasında geçişi sağlayan etiketler;
  2. Ölçülen değerlerin görüntülendiği alan.
  3. Ölçülen son değerin görüntülendiği alan.
  4. Sürekli okuma veya sürekli okumayı sonladırmak için buton.

Ayarlar penceresi
Şekil-22:Ayarlar penceresi.
  1. Ana pencere-Ayarlar penceresi arasında geçişi sağlayan etiketler.
  2. Seri port seçimi için seçenekler.
  3. Baud seçimi için seçenekler.
  4. Rapor dosyasının kaydedildiği yer(ölçüm sonuçlarının kaydedildiği).
  5. Ölçüm sonuçlarını kaydetme seçeneği.
  6. Ölçüm aralıkları ayarı için seçenekler.
Program üzerinde sınırlıda olsa bir hata kontrolu vardır. Yani çalışırken USB bağlantısı koparsa ekranda bir uyarı verecek ve cihazlarınızı kontrol etmenizi isteyecektir.

Son olarak bilgisayar tarafının programını yazmak isteyenler için veri şu şekilde iletilmektedir
Bilgisayar devreye "0x17" değerini gönderir.

Sıcaklık bilgisi olarak iki bayt veri gelir. Sırası ile: Düşük anlamlı baytı sadece bit7 değerlendirelmektedir. bit.7'de sıcaklık değerinin ondalık hanesine denk düşmektedir ki sadece 0 ve 5 değerini almaktadır.Yüksek anlamlı baytın sıcaklık işareti dahil olmak üzeri onluk sayı sisteminede sıcaklık bilgisi gelir.



Ekler:
Atmega8 hakkında bilgi için

"Atmega8 ve LM75 çipi ile USB iletişimli termometre" projesi için gereken dosyalar

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

15 Mayıs 2013 Çarşamba

FT232RL ile USB-Seri Dönüştürücü



Günümüzde üretilen bir çok mikrokontroller üzerinde USB portu bulunmakta iken ne yazık ki bir çoğunun üzerinde USB portu yoktur. Bununla birlikte üretilen birçok bilgisayar üzerinde de seri port artık yoktur. Peki USB portu olmayan bir işlemciyi seri portu olmayan bir bilgisayara bağlamamız gerekirse ne yaparız? (ne de olsa seri port mikrokontroller için standart bir port konumundadır) Birçok seçenek vardır bunlardan biri FTDI firması tarafından üretilmiş olan FTDI entergesini kullanmaktır.

Bu projede "FT232RL ile USB-Seri Dönüştürücü" konusu anlatılacaktır.

Not:Elbette piyasada ucuz ve küçük modül olarak bulunmaktadır.


USB Portu
Şekil-1 :USB için kullanılan simge.
Bilgisayarların USB (Universal Serial Bus) portları sınıfındaki cihazlar. Bunlar kabaca master sınıfına sokulur ki USB bağlantısının yürütülmesini sağlayan mimariye sahiptir. Bunlara en güzel örnek olarak günümüz televizyonlarına takılan USB bellek ile bellek içindeki film ve resimlerin görüntülenebilmesidir.

Bilgisayara takılabilen her türlü cihaz (kamera,klavye, usb bellek, gibi) slave grubuna girer ki, bu cihazlar kendi başlarınu USB bağlantısını yürütemezler. USB bağlantısının yapılabilmesi için mutlaka bir master cihazla bağlantıya ihtiyaç duyarlar. 


Şekil-2 :Kullanılan bazı USB konnektör şekilleri (USB3 için kullanılanlar hariç).

Bu projede kullananılan FT232R entegresi slave özellikli cihazlarda kullanılmaktadır.

USB port USB1.1, USB2.0 ve şu anda farklı bir bacak bağlantı yapısına sahip USB3.0 şeklinde iletişim sunmaktadır. USB3.0 şu an için konumuz dışıdır.

USB1.1 ve USB2.0 seçimi sırası ile D- ve D+ bacakları ile +5V arasına 1.5k direnç bağlanarak sağlanmaktadır.

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.

FT232R entegresi üzerinde bu seçin doğrudan enterge içinde sağlanmaktadır.

FT232RL

Şekil-3 :FT232RL çipinin bacak bağlantıları

FTDI firmasına ait FT232BL entegresi daha önce işlenmişti. Tabii FT232RL entegresi daha sade bir devre tasarımına sahip. Daha az harici eleman ile kolaylıkla devrenin gerçekleştirilmesi mümkün. Zorluğu bacak aralıklarından kaynaklanmakta. Özellikle bacakları elle lehimlemek gerçekten hüner gerektiriyor.
Şekil-4 :FT232RL USB konnektörleri

İçinde 1024 bit eeprom bulunması, USB iletişim için gereken dirençlerin entegre içine gömülü olması, harici saat frekansı için kristale ihtiyaç bulunmaması yanında, 128 bayt için rx için tampon ve 256 bayt tx için tampon bulunması sayesinde kesintisiz iletişime olanak tanımaktadır.


Şekil-5 :Kart üzerindeki LED'ler. Elimde sadece kırmızı renkli LED'ler vardı.

USB aletler için bilgisayar tarafından (HID özellikli USB cihazlar) bağlanan cihazı kendisini tanıtmasında önemli olarak eşsiz USB FTDI Chip -ID özelliği alet üzerine eklenmiştir. Ayrıca çip üzerindeki power on reset devresi ile ilk açılıştaki devrenin resetlenme ihtiyacı karşılanmaktadır.


Şekil-6 :Bilgi alışverişi esnasında yanan LED'ler. Soldaki bilgisayara bilgi gönderirken, sağdaki bilgisayardan bilgi alırken.

USB aletin işlemci ile iletişim kurmakta kullanılan bacakların bağlantı gerilimi ya dışarıdan seçilen bir gerilimle ayarlanabilmekte, yada çip üzerindeki 3.3V regülatör ile doğrudan 3.3V olarak atanabilmektedir.

FT232R entegresi USB2.0 ile tamamen uyumludur.

Şekil-7 :Kart üzerindeki köprüler. Yeşil ve mavi renktekiler seri port yön seçimleri için kullanılırken, kırmızı renkli köprü seri port çıkış seviye siçimi için kullanılmaktadır.

Dışarıdan bağlanan iki LED ile FT232R seri port iletişimi izlenebilmektedir. Her ne kadar burada bağlanmasa da Seri port için kullanılan bacaklar çip üzerinde yer almaktadır.

FTDI firması tarafından FT232R entegresi için bilgisayar üzerindeki sürücülerin veriliyor olması önemli bir konu. İki tip sürücüsü var: Sanal seri port ve D2XX direkt sürücüler. Entere hakkında ayrıntılı bilgi üretici firmanın "http://www.ftdichip.com" adresinden erişilebilir.

FTDI entegresi 28 bacaklı SSOP kılıfında ve QFN32 kılıfında elde edilebiliyor. Projede 28 bacaklı olan versiyonu kullanılmıştır. QFN32 kılıfının lehimlenmesi konusu biraz zor olabilir. Krem lehim ve fırınlama gibi bazı işlemlere ihtiyaç duyabilir)


Devre
Devre sadece USB-seri dönüştürücü olduğu için sadece çevirici kartı bulunmaktadır. Kart için gerekli besleme dolayısı ile bilgisayardan sağlanmaktadır.

Şekil-8 :Kartın SMD elemanların monte edildiği ve yolların bulunduğu yüzü.

Şema
IC1 FT232RL entegresi devrenin kendisini oluşturmaktadır. Dolayısı ile bilgisayar arasında köprü oluşturuyor R1 (220 Ohm) , D1 (LED) ve R2 (220Ohm), D2 (LED) elemanları devrenin iletişim esnasındaki aktifliği göstermektedir. C1 (22µF) ve C2 (100nF) filtre kondansatörleridir. P1 USB bağlantı konnektöre ve P2 işlemci için UART (RS232) bağlantıyı sağlar.



Şekil-9:Blok şeması


Şekil-10:Devre şeması. (Şemada C3 (100nF) kondansatör gösterilmemiştir)

Devre Yapımı

Devreni tek zorluğu FT232RL entegresini lehimlemektir. Bacak aralıkları 0.35mm gibi küçük bir aralığa sahip olduğu için lehimleme esnasında dikkatli olmak gerektmektedir..
Şekil-11:Kartın yollar

Şekil-12:Kartın üsttteki eleman yerleşimi



Şekil-13:Kartın alttaki (yolların olduğu taraf) eleman yerleşimi

Şekil-14:Kartın yolları birlikte üstteki eleman yerleşimi
Şekil-15:Kartın yolları birlikte alttaki eleman yerleşimi

Şekil-16:5V çıkış için köprü yerleşimi
 Şekil-17:3.3V çıkış için köprü yerleşimi
Not: PNP(ütü) ile baskı yapmak isteyenler için PDF çıkış ters baskı yapmadan kullanıma hazırdır

Devre Elemanları

220R R1,R2
0R (köprü) J1,J2,J3,J4
100nF C2,C3
22µF/25V C1
LED D1,D2
FT232RL IC1
IDC10 kart tipi erkek konnektör P2
USB B Konnektör P1
3'lü tek sıra pin erkek K1,K2,K3
Sıra pinlere köprü 3 Adet


Çalışması



Şekil-18:FT232RL USB-seri kartı ile bir seri port haberleşmesi olan kartın bağlantısı. Burada bir seri portu bulunan devre RS232 bağlantısı (seviye dönüştürme modülü üzerinden )ile bilgisayara bağlanırsa doğrudan çalışır.

Devrenin çalışması için bilgisayarın USB portuna bağlanması yeterlidir. RS232 bağlantısı olmasa bile modül bilgisayar tarafından tanınır ve modül için gerekli sürücülerin yüklenmesi için kullanıcı yönlendirilir. (Sürücülerin yerinin belirtilmesi istenir). Sürücülerin üretici firma sitesinden indirildiği ve paketin açıldığı varsayılmaktadır.
Sürücülerin bilgisayara yüklenmesinden sonra alet kullanıma hazırdır. (Sanal seri port sürücüleri yüklendiği varsayılarak)

Bu noktada modülün seri port bağlantısına seri port bağlantısı olan bir modül bağlanması gereklidir. Seri port ile ilgili alet bağlanır ve bilgisayar USB bağlantısı yapıldığında alet kullanıma hazırdır. (seri porta bağlı alete besleme verilerek) Geriye modülün seri portuna bağlı alet için bilgisayar programını çalıştırmak kalır. Program çalıştırıldığında ayarlar bölümünden seri portuna uygun (USB modül için bilgisayar atanmış olan) seri port seçilir Eğer her şey tamamsa, program ile seri portlu alet iletişime geçecektir. Haberleşme esnasında USB-seri modülün üzerindeki LED'ler haberlemeye uygun olarak yanıp sönecektir.



Şekil-19:Yok ben bu kadar şeyle uğraşamam diyorsanız, böyle bir modülü hazır alıp da kullanabilirsiniz..


Ekler:
FT232RL hakkında bilgi için (Aynı zamanda bilgisayar için gereken sürücüler için)

"FT232RL ile USB-Seri Dönüştürücü" projesi için gereken dosyalar.

C3 kondansatörü için güncelleme.(06-12-2013)

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


Translate

Sayfalar

Etiketler

İzleyiciler