[LinuxFocus-icon]
<--  | Ana Sayfa  | Eri�imd�zeni  | ��indekiler  | Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  ChineseGB  Deutsch  Francais  Russian  Turkce  Polish  

[Photo of the Author]
Guido Socher (homepage)

Yazar hakk�nda:

Guido Linux'u, kendi yaz�l�m veya donan�mlar�n� geli�tirmek isteyenler i�in bir cennet oldu�u i�in be�enmektedir.



T�rk�e'ye �eviri:
Erdal Mutlu <erdal(at)linuxfocus.org>

��erik:

 

Watchdog ve tu�lu Linux USB LCD ekran�

[Illustration]

�zet:

Bu yaz�, donan�m konusunda yazd���m yaz�lardan gelen olumlu tepkilerin sonucu olarak ortaya ��kt�. Sizler, yani LinuxFocus okuyucular�, ger�ekten �ok g�zel okuyuculars�n�z! Baz�lar�n�z USB veriyolu ile nas�l ileti�imde bulunaca��n� ��renmek istemi�ti. ��te size g�zel bir ��z�m. LCD ekran�n� 2002 May�s yaz�s�ndan ald�k ve USB ile �al��mas�n� sa�lad�k. Dolay�s�yla, fazladan bir g�� kayna��na gereksiniminiz olmayacakt�r.

Bu yaz� i�in en az�ndan AVR yaz�l�m geli�tirme ortam�n�n bir k�sm�n� y�klemeniz gerekecektir. Nas�l yap�ld���na ili�kin a��klamalar� AVR mikroi�lemcisini GCC ile programlamak yaz�s�nda bulabilrisiniz.

_________________ _________________ _________________

 

Giri�

USB'nin g�zelli�i, modern bir aray�z olmas�ndan ve ona ba�l� ayg�tlar�n do�rudan USB veriyolu �zerinden beslenebilmelerinden ileri gelmektedir. Ba�lant� u�lar� k���kt�r ve ufak bir kablo �zerinden b�y�k miktarda veri aktar�labilmektedir. Bunlar USB'nin olumlu y�nleridir. Olumsuz y�nlerine gelince, y�ksek frekans kullan�ld���ndan dolay� donan�m tasar�m� zordur ve kullan�lan protokol de olduk�a karma��k�t�r. USB 1.1 s�r�m�n�n http://www.usb.org/developers/ adresindeki belirtimlerine (specification) bakarsan�z, ne demek istedi�imi daha iyi anlam�� olursunuz. Belge hem 327 sayfadan olu�maktad�r ve hem de anla��lmas� �ok zordur. Dolay�s�yla, bu kadar �ok hatal� USB ayg�t�n�n ortal�kta olmas�na �a�mamal�d�r. Konuyla ilgili daha kullan��l� belgeye http://www.beyondlogic.org/ adresinden ula�abilirsiniz. Ancak, belirtiminin yine de karma��k oldu�u ger�e�i de�i�memektedir.

Ne yapmal�? Mikroi�lemcimizi USB veriyolu ile nas�l kullanabiliriz? Bir �sko� �irketi olan FTDI'n�n (http://www.ftdichip.com) buna bir ��z�m� vard�r. Bu �irket, USB aray�z� olu�turan bir �ip geli�tirmi�tir. FT232BM adl� �ipin bir taraf� rs232, di�er taraf� ise USB'dir. Ba�ka bir deyi�le, rs232'de kullanm�� oldu�umuz MAX232 g�� d�n��t�r�c�s�n�, FT232BM ile de�i�tirmemiz yeterli olacakt�r. ��te bu kadar.  

S�r�c�

FT232BM ortamlardan ba��ms�z bir ��z�md�r. �e�itli i�letim sistemleri i�in s�r�c� programlar� vard�r. Linux i�in olan �ekirdek mod�l�n�n ad� ftdi_sio olup, a��k kaynak kodu alt�nda bulunmaktad�r. FT232BM USB'den rs232'ye d�n��t�r�c� i�levinden fazlas�n� yerine getirmektedir ve Linux �ekirdek mod�l� de t�m i�levleri yerine getirmede hen�z geli�tirme a�amas�nda bulunmakad�r. Ancak, USB'den rs232'ye d�n��t�r�c� k�sm� haz�rd� ve ben onu, RedHat 7.3'�n standart �ekirde�ini (2.4.18) derlemeksizin ve de�i�iklik yapmaks�z�n kullanabildim. Sadece ba�lant�s�n� yapman�z yeterlidir.

ftdi_sio s�r�c�s�n�n geli�tirme �al��malar� http://ftdi-usb-sio.sourceforge.net/.
adresinde yap�lmaktad�r.
RedHat 7.3'te USB ba�la��n� bilgisayara ba�lad���mda, t�m ayg�t s�r�c�leri kendili�inden sisteme y�klenmektedir. E�er, sizin Linux da��t�m�zda �al��m�yorsa, a�a��daki (USB-UHCI) mod�llerinin varl���na bakabilirsiniz:

/sbin/lsmod usb-uhci
/sbin/lsmod usbcore
/sbin/lsmod usbserial
/sbin/lsmod ftdi_sio

Donan�mla haberle�meyi yerine getiren ayg�t dosyas� /dev/ttyUSB0 d�r.

Ayg�t s�r�c�s�n� geli�tirenler en az�ndan 2.4.20 s�r�ml� �ekirde�i �nermektedirler, ancak benim �rne�imde de g�r�ld��� �zere mod�l 2.4.18 alt�nda da �al��maktad�r. En az�ndan benim kullanm�� oldu�um i�levleri yerine getirmektedir.  

�izim

Bask� devresi tasar�m� bellidir. Yapman�z gereken tek �ey, FT232BM'yi mikroi�lemcinin Rx/Tx hatlar�yla USB ba�la��n�n aras�na ba�lamakt�r. FDTI'nin tasar�m belirtimlerinde a��kland��� gibi 6 MHz kristal ile ba�ka baz� par�alara gereksinim duyacaks�n�z. �eman�n sa� taraf�nda yer alan ferrite bead, y�ksek frekanslar� (USB veriyolu 48MHz'de �al��maktad�r.) s�zmeye yarayan ufak bir karbon �ubuktur. Bunun yerine 1K'l�k direncin etraf�n� kal�n bir telle 10 kere sararak da karbon �ubu�un g�rd��� i�i g�rd�rebilirsiniz.

Çizim
Dikkat etmeniz gereken bir konu var, o da g�� kullan�m�d�r. E�er, veriyolu �zerinde g�� kullanmay� d���n�yorsan�z, 100mA'in alt�nda bir g�� kullanan bir ayg�t tasarlaman�z gerekecektir. Ayr�ca, ayg�t�n�z USB ask�ya alma (suspend) kipini destekliyor olmas� gerekir. FT232BM'in "uyu" ("sleep") baca��n seviyesi d��erse, ayg�t�n�z�n g�� kullanmas� 0.5mA'e d��mesi gerekir. Bunlardan sonuncusu, yerine getirilmesi zor bir �nko�uldur. AVR mikroi�lemcisi, 2mA �ekti�i "bo� kipini" (idle mode) veya sadece 20uA �ekti�i "g�� kesimi" (power down) kipini desteklemektedir. Ancak, mikroi�lemciyi uykusundan uyand�rmak, kendisi "bos kipte" iken daha kolay g�z�kmektedir. Dolay�s�yla ben, her ne kadar USB belirtimleri biraz �i�nemi� olsam da, "bos kipini" kullanmaya karar verdim. Ekran�n se�imlik arka plan ����� kapat�lacak ve b�ylece t�m devre sadece 3mA �ekecektir. 3mA'lik ak�m 0.5mA'den �ok fazlad�r, ama USB konak denetleyicisi �ipinin bunu �l�ecek kadar duyarl� olamayaca��ndan, devre �al��acakt�r.

B�t�n bunlar� s�yledikten sonra, itiraf etmeliyim ki duraksatma (suspend) �zelli�i olan bir bilgisayar�m yok. Dolay�s�yla, bu k�sm� deneyebilmi� de�ilim. E�er, duraksatma �zelli�i olan yeni bir bilgisayar�n�z varsa, belkide bir diz�st� bilgisayar�, bu �zelli�i deneyerek sonucu bana bildirirseniz �ok sevinirim.

�eman�n geri kalan k�sm� 2002 May�s say�s�nda oldu�u gibidir. Dolay�s�yla, ayr�nt�lara burada girmeyece�im.
Bask� devre resminin �zerine t�klayarak, daha b�y�k g�r�nt� elde edebilirsiniz. Eagle dosyalar� yaz�l�m ile birlikte paketlenmi�tir. Dosyalar� indirmek isterseniz, yaz�n�n sonundaki ba�lant�lara bak�n�z.
board
Bask� devre tek tarafl�d�r ve sadece mavi renkli katman� devre bas�m�nda kullan�lmaktad�r. K�rm�z� ile g�sterilenler kablolard�r.

Bu devrede kullanaca��n�z USB B t�r� ba�lant� ucunun bacaklar� a�a��daki gibidir:
type B Receptacle

 

SMD �ipleri ile �al��mak

SMD �ipleri �ok g�zel mekanik ve elektriksel �zelliklere sahiptir, ancak elektronikle hobi olarak u�ra�anlar i�in bir kabus gibidirler. Ger�ekten �ok iyi lehim yapan birisi olman�z gerekiyor. Hi� olmazsa, SMD �ipinin tak�laca�� bask� devresi k�sm�n�n �ok temiz ve y�ksek kalitede yap�lm�� olmas� gerekmektedir. Ba�ka bir deyi�le, bu i� �aylaklara g�re de�ildir. E�er, bask� devresini ��kartmada zorlan�r�m veya bu �ipi takabilece�imden pek emin de�ilim diyenler, a�a��daki se�eneklerden yararlanabilirler.

Bask� devresi �zerine ba�ka par�a takmadan �nce SMD �ipini tak�n�z.
�ipin tak�laca�� yere, �nce biraz lehim yerle�tirerek lehimleyin. Daha sonra, �ok az lehim pastas� SMD'nin bacaklar�na s�r�n. Lehim pastas� yerine, "Kontakt Chemie" ad�nda bir Alman �irketinin �retti�i "Lötlack" adl� bir spreyi de kullanabilirsiniz.

Havyan�z�n ucunu iyice temizleyin. Havyan�n ucunda hi� lehim kalmamal�d�r. Daha sonra FT232BM �ipini tam olarak bask� devresi �zerine yerle�tirin. Son olarak havyan�zla, �ipin her baca��n� hafif�e bast�r�n. Sak�n fazladan lehim katmay�n. ft232SMD

Bu tarif gayet iyi �al��maktad�r. Burada �nemli olan k���k bir havyaya sahip olman�z de�ildir. S�radan bir havya kullan�yor olman�z yeterlidir. Dikkat etmeniz tek �ey, �ipin bacaklar�na bast�rmadan �nce, havyan�z�n �ok temiz olmas�d�r. Mutfakta kullan�lan tost makinelerini veya buna benzer y�ntemler uygulaman�z� �nermem. Ba�ka y�ntemler kullan�larak �ipe b�y�k bir olas�l�kla zarar verirsiniz.  

Deneme

Devrenizi iki a�amada denemenizi �neririm. �lk �nce, devrenizi AVR mikroi�lemcisiz bilgisayara ba�lay�n. Linux, FTDI �ipini tan�mal� ve /proc/bus/usb/devices de a�a��daki verileri g�rebilmelisiniz:

T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0403 ProdID=6001 Rev= 2.00
S: Manufacturer=FTDI
S: Product=USB <-> Serial
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 90mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=serial
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms

Bundan sonra, AVR mikroi�lemcisini tak�n ve LED'in yan�p s�nmesini sa�layan deneme program�n� y�kleyin. linuxusblcd paketini (Paketi indirmek i�in yaz� sonunda yer alan kaynak�a k�sm�na bak�n.) a��n ve a�a��daki komutu �al��t�r�n:

make testload0

Programlay�c� kablosu ile USB ba�la��n�z�n tak�l� olmas�na dikkat edin.
E�er, bu deneme ba�ar�yla sonu�lan�rsa, mikroi�lemcinizin �al��aca��ndan emin olabilrisiniz.

Bundan sonra, t�m yaz�l�m� mikroi�lemciye y�kleyebilirsiniz:

make load

USB seri ba�lant�s�n� ilklendirmek i�in "ttydevinit /dev/ttyUSB0" komutunu kullanabilir ve "cat > /dev/ttyUSB0" komutuyla da devrenizle "konu�abilirsiniz".

ttydevinit /dev/ttyUSB0
cat > /dev/ttyUSB0
D=hello world

Ekrana "hello world" yazacakt�r. Ayr�nt�lar i�in May�s 2002 say�s�ndaki yaz�ya bak�n�z. May�s 2002 yaz�s� llp.pl ad�nda bir program i�ermektedir. Bu program sayesinde, LCD (S�v� Kristal Ekran�) ekran� �zerinde bulunan iki tu� arac�l��� ile bilgisayar�n�zla etkile�me olana�� sa�lanmaktad�r. Program� burada yeniden kullanabilirsiniz.

... ve iste size i� ba��nda olan ekran (Resim �ekildi�i s�rada tu�lar hen�z tak�l� de�ildi. FT232BM devrenin arka taraf�ndad�r.):
usb lcd
 

Di�er se�enekler

Burada g�sterilen devre �ok basit olmas�na kar��n, SMD �ipinin lehimlenmesi konusunda gerekli yetenekler dolay�s�yla, ba�layanlar�n yapabilecekleri bir i� de�ildir. SMD �ipi takamam diyorsan�z, haz�r ve ticari bir ��z�m� de d���nebilirsiniz. Ancak, LCD ekran�, watchdog, LED'ler ve tu�lar gibi ekstralar� elde edemeyeceksiniz. Genelde sadace LCD ekran� elde edersiniz. Haz�r al�nacak USB ekranlar�n�n fiyat� olduk�a y�ksektir. Burada kullan�lan par�alar�n fiyat� yakla��k 30 Euro'dur ve sadece haz�r yap�lm�� ekranlar�n f�yat� yakla��k bu kadar tutmaktad�r.

Ne yaz�k ki bir �ok ticari �r�n, her ne kadar ftdi tabanl� olsalar da, kendi kimliklendirme numaras�n� (ID) kullanmaktad�r. Bunun anlam� �udur: �ekirdek mod�l� bu kimliklendirme numaralar�n� kulland��� i�in, o �ipleri tan�mayacakt�r. �ekirdek kaynaklar�nda de�i�iklik yaparak o numalar� de�i�tirmeniz ve yeniden derlemeniz gerekecektir. E�er, biri kaynak kodlar�n� g�ncellediyse, ileriki �ekirdek s�r�mlerinde belkide bunu yapman�za gerek kalmaz.
 

Kaynak�a

 

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

<--, Bu say�n�n ana sayfas�na gider

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Guido Socher
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
�eviri bilgisi:
en --> -- : Guido Socher (homepage)
en --> tr: Erdal Mutlu <erdal(at)linuxfocus.org>

2004-10-15, generated by lfparser version 2.48