|
ARM linux ft2232H, подключение FTDI к ARM под linux libusb libftdi |
|
|
|
Oct 16 2011, 10:53
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 4-01-06
Пользователь №: 12 829

|
Всем привет.
Есть проблема с подключением микросхемы 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; }
Может кто сталкивался с подобной проблемой ?
|
|
|
|
|
 |
Ответов
|
Oct 16 2011, 11:31
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(Gorobey @ Oct 16 2011, 14:53)  Исходный код программы: Пример самой библиотеки работает ? http://developer.intra2net.com/git/?p=libf...72d;hb=HEAD#l26UPD просмотрел - не там ошибка.
Сообщение отредактировал sasamy - Oct 16 2011, 11:40
|
|
|
|
|
Oct 16 2011, 12:12
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 4-01-06
Пользователь №: 12 829

|
Цитата(sasamy @ Oct 16 2011, 14:31)  Пример самой библиотеки работает ? http://developer.intra2net.com/git/?p=libf...72d;hb=HEAD#l26UPD просмотрел - не там ошибка. Я конечно проверил - но: Number of FTDI devices found: 0
|
|
|
|
|
Oct 16 2011, 13:25
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 4-01-06
Пользователь №: 12 829

|
Цитата(sasamy @ Oct 16 2011, 15:20)  Проверьте - смонтированы ли sysfs и usbfs и есть ли доступ на запись юзеру от чьего имени запускаете. Ура !!! все дело было в usbfs: find ftdi vid=1027 pid=24592 device: 1 Премного благодарен за подсказку !
|
|
|
|
|
Oct 16 2011, 14:59
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 4-01-06
Пользователь №: 12 829

|
Радость была не долгой  при вызове функции 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"); Мысли ?
|
|
|
|
|
Oct 16 2011, 15:36
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(Gorobey @ Oct 16 2011, 18:59)  Радость была не долгой  при вызове функции 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 - Oct 16 2011, 15:39
|
|
|
|
|
Oct 17 2011, 08:46
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 4-01-06
Пользователь №: 12 829

|
Цитата(sasamy @ Oct 16 2011, 18:36)  Непонятно - что тут может огорчать ? так и должно быть, там помоему где-то в недрах автоматом драйвер serial отключается при инициализации, о чем ядро и сообщает. Да действительно так. Последовательный драйвер отключается, на работоспособность не влияет, все работает за что Вам "sasamy" отдельное спасибо.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|