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�
�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.
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.
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:
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.
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.):
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.
- http://www.matrixorbital.com/ Bunlar da ftdi 232bm'yi
kullan�yorlar, ama kendi kimliklendirme numaralar�yla.
Ekran�n ad� LK202-24-USB'dir.
- http://www.usblcd.de/ Bu ��z�mde, kendilerine ait �ekirdek mod�l�
kullan�lmaktad�r. Ancak, bu mod�l standart Linux �ekirde�ine dahildir.
Dolay�s�yla mod�l, sorunsuz olarak 2.4.x �ekirdekleriyle �al��acakt�r.
Belkide bu �ok g�zel bir ��z�md�r.
- http://crystalfontz.com/ Bunlar�n ekranlar� (632 ve 634) da
FT232AM'i kullanmakta, ama kendi kimliklendirme numaralar�yla.
- http://www.cwlinux.com/eng/products/products_lcd.php
Bu yeri yak�nlarda ke�fettim. Bunlar�n LCD ekranlar� klavye
kullanmaktad�r. Ancak, fiyat� bu yaz�da kullan�lan malzemelerin
iki katad�r.
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.
<--, Bu say�n�n ana sayfas�na gider
2004-10-15, generated by lfparser version 2.48