Jump to content

    

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;

}

 

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

Share this post


Link to post
Share on other sites
Я конечно проверил - но:

Number of FTDI devices found: 0

 

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

Share this post


Link to post
Share on other sites
Проверьте - смонтированы ли sysfs и usbfs и есть ли доступ на запись юзеру от чьего имени запускаете.

 

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

 

find ftdi vid=1027 pid=24592 device: 1

 

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

 

Share this post


Link to post
Share on other sites

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

 

при вызове функции 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");

 

Мысли ?

Share this post


Link to post
Share on other sites
Радость была не долгой :)

 

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

 

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

ftdi_sio 2-2:1.0: device disconnected

open ok

 

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

Edited by sasamy

Share this post


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

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this