Перейти к содержанию
    

ARM linux ft2232H

Всем привет.

 

Есть проблема с подключением микросхемы FT2232H через USB host микроконтроллера ARM9SAM9G45.

установлен на АРМ линукс с ядром 2.6.30 + libusb 1.0.8 + ftdilib 0.19.

При подключении FTDI все вроде как определяется хорошо:

 

hub 1-0:1.0: unable to enumerate USB device on port 2

usb 2-2: new full speed USB device using at91_ohci and address 2

usb 2-2: not running at top speed; connect to a high speed hub

usb 2-2: New USB device found, idVendor=0403, idProduct=6010

usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3

usb 2-2: Product: USB <-> Serial Converter

usb 2-2: Manufacturer: FTDI

usb 2-2: SerialNumber: FTUOYSAY

usb 2-2: configuration #1 chosen from 1 choice

ftdi_sio 2-2:1.0: FTDI USB Serial Device converter detected

usb 2-2: Detected FT2232C

usb 2-2: FTDI USB Serial Device converter now attached to ttyUSB0

ftdi_sio 2-2:1.1: FTDI USB Serial Device converter detected

usb 2-2: Detected FT2232C

usb 2-2: FTDI USB Serial Device converter now attached to ttyUSB1

 

при попытке открытия устройства получаю ошибку:

 

find ftdi vid=1027 pid=24592 device: 0

unable to open ftdi vid=1027 pid=24592 device: -3 (device not found)

 

Исходный код программы:

 

int main(void)

{

int ret;

struct ftdi_context ftdic;

if (ftdi_init(&ftdic) < 0)

{

fprintf(stderr, "ftdi_init failed\n");

return EXIT_FAILURE;

}

int vid=0x0403;

int pid=0x6010;

struct ftdi_device_list** devlist;

if ((ret = ftdi_usb_find_all(&ftdic,devlist,vid, pid)) < 0)

{

fprintf(stderr, "unable to find ftdi vid=%d pid=%d device: %d (%s)\n", vid, pid,ret, ftdi_get_error_string(&ftdic));

return EXIT_FAILURE;

}

else

{

fprintf(stderr, "find ftdi vid=%d pid=%d device: %d\n", vid, pid,ret);

}

 

if ((ret = ftdi_usb_open(&ftdic,vid, pid)) < 0)

{

fprintf(stderr, "unable to open ftdi vid=%d pid=%d device: %d (%s)\n", vid, pid,ret, ftdi_get_error_string(&ftdic));

return EXIT_FAILURE;

}

 

Может кто сталкивался с подобной проблемой ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исходный код программы:

 

Пример самой библиотеки работает ?

http://developer.intra2net.com/git/?p=libf...72d;hb=HEAD#l26

 

UPD просмотрел - не там ошибка.

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример самой библиотеки работает ?

http://developer.intra2net.com/git/?p=libf...72d;hb=HEAD#l26

 

UPD просмотрел - не там ошибка.

 

Я конечно проверил - но:

Number of FTDI devices found: 0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я конечно проверил - но:

Number of FTDI devices found: 0

 

Проверьте - смонтированы ли sysfs и usbfs и есть ли доступ на запись юзеру от чьего имени запускаете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте - смонтированы ли sysfs и usbfs и есть ли доступ на запись юзеру от чьего имени запускаете.

 

Ура !!! все дело было в usbfs: :1111493779:

 

find ftdi vid=1027 pid=24592 device: 1

 

Премного благодарен за подсказку ! :biggrin:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Радость была не долгой :)

 

при вызове функции open :

 

ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0

ftdi_sio 2-2:1.0: device disconnected

open ok

 

исходный код:

 

int ret;

struct ftdi_context *ftdic;

 

if ((ftdic = ftdi_new()) ==0)

{

fprintf(stderr, "ftdi new failed\n");

return EXIT_FAILURE;

}

ftdi_set_interface(ftdic, INTERFACE_A);

int vid=0x0403;

int pid=0x6010;

ret = ftdi_usb_open(ftdic,vid, pid);

if ( ret < 0 && ret!=-5)

{

fprintf(stderr, "unable to open ftdi vid=%X pid=%X device: %d (%s)\n", vid, pid,ret, ftdi_get_error_string(ftdic));

ftdi_deinit(ftdic);

exit(-1);

return EXIT_FAILURE;

}

else printf("open ok \n");

 

Мысли ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Радость была не долгой :)

 

при вызове функции open :

 

ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0

ftdi_sio 2-2:1.0: device disconnected

open ok

 

Непонятно - что тут может огорчать ? так и должно быть, там помоему где-то в недрах автоматом драйвер serial отключается при инициализации, о чем ядро и сообщает.

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Непонятно - что тут может огорчать ? так и должно быть, там помоему где-то в недрах автоматом драйвер serial отключается при инициализации, о чем ядро и сообщает.

 

Да действительно так. Последовательный драйвер отключается, на работоспособность не влияет, все работает за что Вам "sasamy" отдельное спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...