gorobey 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Всем привет. Есть проблема с подключением микросхемы 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; } Может кто сталкивался с подобной проблемой ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 11 16 октября, 2011 Опубликовано 16 октября, 2011 (изменено) · Жалоба Исходный код программы: Пример самой библиотеки работает ? http://developer.intra2net.com/git/?p=libf...72d;hb=HEAD#l26 UPD просмотрел - не там ошибка. Изменено 16 октября, 2011 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gorobey 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Пример самой библиотеки работает ? http://developer.intra2net.com/git/?p=libf...72d;hb=HEAD#l26 UPD просмотрел - не там ошибка. Я конечно проверил - но: Number of FTDI devices found: 0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 11 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Я конечно проверил - но: Number of FTDI devices found: 0 Проверьте - смонтированы ли sysfs и usbfs и есть ли доступ на запись юзеру от чьего имени запускаете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gorobey 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Проверьте - смонтированы ли sysfs и usbfs и есть ли доступ на запись юзеру от чьего имени запускаете. Ура !!! все дело было в usbfs: :1111493779: find ftdi vid=1027 pid=24592 device: 1 Премного благодарен за подсказку ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gorobey 0 16 октября, 2011 Опубликовано 16 октября, 2011 · Жалоба Радость была не долгой :) при вызове функции 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"); Мысли ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 11 16 октября, 2011 Опубликовано 16 октября, 2011 (изменено) · Жалоба Радость была не долгой :) при вызове функции open : ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0 ftdi_sio 2-2:1.0: device disconnected open ok Непонятно - что тут может огорчать ? так и должно быть, там помоему где-то в недрах автоматом драйвер serial отключается при инициализации, о чем ядро и сообщает. Изменено 16 октября, 2011 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gorobey 0 17 октября, 2011 Опубликовано 17 октября, 2011 · Жалоба Непонятно - что тут может огорчать ? так и должно быть, там помоему где-то в недрах автоматом драйвер serial отключается при инициализации, о чем ядро и сообщает. Да действительно так. Последовательный драйвер отключается, на работоспособность не влияет, все работает за что Вам "sasamy" отдельное спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться