Зв’язок з FTDI в Ubuntu
Рішення - використання відкритої бібліотеки libFTDI
з сайту infra2net.com.
Встановлення LibFTDI
- Встановлюємо залежності:
sudo apt-get install swig # потрібен для біндінгу до Python sudo apt-get install python-dev # потрібні для SWIG sudo apt-get install libusb-dev # потрібні для компіляції LibFTDI
- Завантажити останню версію бібліотеки можна тут: libftdi at www.intra2net.com.
Я завантажив архів libftdi-0.20.tar.gz
.
- Розархівовуємо:
tar -xvf libftdi-0.20.tar.gz
cd libftdi-0.20
- Компіляція та встановлення бібліотеки
LibFTDI
Я збираюсь писати програму на Python, тому потрібно активувати python-біндінг.
./configure --enable-python-binding make sudo make install
- Щоб не тільки адміністратор мав доступ до пристрою:
sudo vim /etc/udev/rules.d/60-FTDIRT232R-usb.rules
Додаємо рядок:
ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", MODE="0666"
idVendor
та idProduct
можна подивитись у списку пристроїв, що підключені до USB:
lsusb
Для FT245R у мене показало:
0x0403, 0x6001
Приклад використання (надсилаю 1 байт до пристрою)
import ftdi if __name__ == '__main__': ftdic = ftdi.ftdi_new() res = ftdi.ftdi_usb_open(ftdic, 0x0403, 0x6001) print res, ftdic res = ftdi.ftdi_write_data(ftdic, chr(0x77), 1) print 'result =', res
Список функцій для роботи з FTDI.
UPD 2012-08-10
Section 5 update:
Create file 10-ftdi.rules
in /etc/udev/rules.d/
and fill it with:
SUBSYSTEM=="usb_device", BUS="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", MODE="0666"
Посилання:
- Документація до LibFTDI з intra2net.com
- libFTDI v0.18 with Ubuntu on idle-logic.com by Chris Zeh
- embeddedheaven.com
Licensed under CC BY-SA 3.0