Bilgisayarla FPGA'i konusturmak icin bilgisayarda COM portunu kontrol edebilmek gerekiyor. Windows'ta COM portu sadece Hyper Terminal ile kontrol edilebiliyor. Windows'ta calisan herhangi bir COM port kutuphanesi yok. Hyper Terminal ise oldukca hantal bir program. Linux'ta ise COM portu kontrol eden kutuphaneler var. Biraz dolambaclilar ama yine de calisiyorlar. Bu yuzden bu isi Linux'ta yapmaya karar verdim.
USB hakkinda iyi olan iki firma biliyorum, Cypress ve FTDI. Cypress bu konuda daha tecrubeli ve yetenekli gozukuyor. Cypress'in urunleri daha kapsamli. FTDI'nin cipleri ise daha basit islerde kullanilacak turden. Basit olmasi benim icin daha iyi. Ayrida FTDI'in Turkiye distributoru var. Az bir kargo ucreti ile siparis verebiliyorum. Bu yuzden FTDI almaya karar verdim.
FTDI'in sitesinde 2 surucu var. Bir tanesi anlattigim gibi sanal COM portu olusturuyor. Digeri ise sanal COM portu olusturmadan dogrudan USB portunu kontrol ediyor. Ikinci yontem cok daha kolay. Aslinda ikinci yontem surucu degil, bir C kutuphanesi. Kutuphanedeki fonksiyonlari kullanarak bir C programi ile cip kontrol edilebiliyor. Bu tam istedigim sey.
Bu kutuphaneyi incelerken FTDI ciplerinin baska bir ozelliginin oldugunu ogrendim. Normalde RS232 ile seri iletisim en az 2 pin ile (Rx ve Tx) gerceklesiyor. FTDI ciplerinde 1'er tane de handshaking icin pin var. Toplam 4 pin, 2'si giris, 2'si cikis. Ayrica cikis pinlerinin degeri de RS232 protokolune gore belirleniyor. Fakat bitbang denilen modda bu 4 pin sanki mikroislemci pini gibi giris ve cikis olarak programlanabiliyor ve mikroislemcilerdeki gibi degerleri istenildigi gibi degistirilip istenildigi zaman okunabiliyor. Yani bilgisayardan kontrol edilen, bilgisayarda yazilan c programina gore calisan 4 pinli bir mikroislemci gibi davranabiliyor. Bu da harika bir ozellik. RS232 standartina bagli kalma zorunlulugu yok.
FTDI'in sitesinden 2 kart siparis ettim. Bir tanesi FPGA kartinin RS232 portuna baglayabilecegim, arada voltaj kaydiricinin oldugu EVAL_232R karti, digeri ise dogrudan FPGA pinlerine baglayabilecegim sekilde olan TTL-232R karti. Bunu ucu ciplak kablo olan modelini aldim. Pinleri, Digilent'in PMOD kartlarina uygun sekilde kendim dizip FPGA kartina kolayca baglayabilecegim.
FTDI cipleri icin iki farkli kutuphane var. Bunlardan D2XX kutuphanesi FTDI'nin yazdigi kutuphane. Kaynak kodlari acik degil. Ikincisi ise libftdi kutuphanesi. Bu acik kaynak kodlu. libftdi'yi Linux'ta kurmak
sudo apt-get install libftdi
komutu ile oluyor. libftdi hakkinda daha fazla bilgi http://www.intra2net.com/en/developer/libftdi/index.php adresinden edinilebilir. http://hackaday.com/2009/09/22/introduction-to-ftdi-bitbang-mode/ adresinde de cok guzel bir program ornegi var. Ayni zamanda bitbang modu anlatiliyor. C programi icin herhangi bir metin editorune yazilan program
gcc -lftdi -o main main.c
komutu ile derleniyor. -lftdi bayragi ftdi kutuphanesini eklemek icin yaziliyor. Programin icine yazilan #inlclude
Yazdigim programi bir sonraki yazida anlatacagim.
ii ya anlasilir yazmissin takdirle takip ediyorum seni..
YanıtlaSil