VCP kullanmamın sebebi, C dışında başka dillerle de ftdi çipini kullanmak istemem. Önceleri libftdi kullanmamın bana daha esneklik vereceğini düşünüyordum. Fakat neredeyse her programlama dili ile pc'nin seri portuyla (com port) konuşabilirim. Libftdi gibi ozellesmis bir kutuphane yerine cok daha yaygin olarak kullanilan seri port kutuphaneleri ile is yapmak daha mantikli.
VCP'yi yuklemek icin ftdi'in web sitesinden suruculeri indirdim. make komutunu dedigim zaman
cc1: fatal error: /lib/modules/2.6.35-22-generic/build/include/linux/modversions.h: No such file or directory
diye hata verdi. Biraz arastirdigimdan anladigim kadari ile bu dosya daha eski linux versiyonlarinda buluyormus (Su an Ubuntu 10.04 kullaniyorum). http://ftdi-usb-sio.sourceforge.net/#sec6 adresinde eger vcp dogru yuklenmisse su sekilde anlayabilirsiniz diyor. Yazilanlari yaptigimda dogru yuklendigini gordum :)
Vcp'yi kullanmak icin C yerine python dili ile bir program yazdim. Python'da seri iletisim icin pySerial modulu gerekiyor. Kurulum icin http://pypi.python.org/pypi/pyserial adresindeki modulu indirdim. Kurulumun nasil olacagi indirilen klasorun icinde de yaziyor. Indirdigim klasore gidip
sudo python setup.py install
komutunu verdigimde kurulum tamamlaniyor.
http://pyserial.sourceforge.net/shortintro.html adresindeki kucuk orneklere bakarak fpga'e data yollayip alabilen bir program yazdim. Program cok kisa oldugu icin buraya yaziyorum.
#python serial read-write
import serial
#baud rate = 19200, timeout = 10 sec
ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=10)
ser.write("5")
x = ser.read()
print(x)
ser.close()
Artik de0 kartina bilgisayardan komut gonderebiliyor ve kartin tepkisini okuyabiliyorum. Bundan sonra komut alma/verme isini kolaylastiran bir komut cozucu yazacagim.
Hiç yorum yok:
Yorum Gönder