Hi,
I have a FT2232H chip where I intend to use interface_B in MPSSE mode.
If I use ftdi_set_interface() specifying INTERFACE_B, later on when
closing the device I always get an error (-1) but with error string set
to: all fine.
This only happens with INTERFACE_B not INTERFACE_A.
Why does this happen?
Am I misunderstanding something?
I'll try to attach my piece of code.
Regards
Mikael
--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to [email protected]
#include <stdio.h>
#include <ftdi.h>
int main(void)
{
int ret;
struct ftdi_context ftdic;
struct ftdi_device_list *devlist;
// Init context
if((ret = ftdi_init(&ftdic)) < 0) {
fprintf(stderr, "ERROR: ftdi_init(%d), %s\n", ret,
ftdi_get_error_string(&ftdic));
return EXIT_FAILURE;
}
// Find connected USB devices
if((ret = ftdi_usb_find_all(&ftdic, &devlist, 0x0403, 0x6010)) < 0) {
fprintf(stderr, "ERROR: ftdi_usb_find_all(%d), %s\n", ret,
ftdi_get_error_string(&ftdic));
return EXIT_FAILURE;
} else {
printf("Found %d device(s)\n", ret);
}
// Open device
if((ret = ftdi_usb_open_dev(&ftdic, devlist->dev)) < 0) {
fprintf(stderr, "ERROR: ftdi_usb_open_dev(%d): %s\n", ret,
ftdi_get_error_string(&ftdic));
return EXIT_FAILURE;
}
// Set interface
if((ret = ftdi_set_interface(&ftdic, INTERFACE_B)) < 0) {
fprintf(stderr, "ERROR: ftdi_set_interface(%d), %s\n", ret,
ftdi_get_error_string(&ftdic));
return EXIT_FAILURE;
}
// Close device
if((ret = ftdi_usb_close(&ftdic)) < 0) {
fprintf(stderr, "ERROR: ftdi_usb_close(%d): %s\n", ret,
ftdi_get_error_string(&ftdic));
return EXIT_FAILURE;
}
ftdi_list_free(&devlist);
ftdi_deinit(&ftdic);
return EXIT_SUCCESS;
}