Зв’язок з FTDI в Ubuntu

ft232rl

Рішення - використання відкритої бібліотеки libFTDI з сайту infra2net.com.

Встановлення LibFTDI

  1. Встановлюємо залежності:
sudo apt-get install swig # потрібен для біндінгу до Python
sudo apt-get install python-dev # потрібні для SWIG
sudo apt-get install libusb-dev # потрібні для компіляції LibFTDI
  1. Завантажити останню версію бібліотеки можна тут: libftdi at www.intra2net.com.

Я завантажив архів libftdi-0.20.tar.gz.

  1. Розархівовуємо:
tar -xvf libftdi-0.20.tar.gz
cd libftdi-0.20
  1. Компіляція та встановлення бібліотеки LibFTDI

Я збираюсь писати програму на Python, тому потрібно активувати python-біндінг.

./configure --enable-python-binding
make
sudo make install
  1. Щоб не тільки адміністратор мав доступ до пристрою:
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"

Посилання:

Licensed under CC BY-SA 3.0