FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  

News:

Welcome to the FTDI Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ FTDI Support


New Bridgetek Community is now open

Please note that we have created the Bridgetek Community to discuss all Bridgetek products e.g. EVE, MCU.

Please follow this link and create a new user account to get started.

Bridgetek Community

Pages: [1] 2 3 ... 10
 1 
 on: Today at 02:27:59 PM 
Started by piezontm - Last Post by piezontm
I was wondering if there were any improvements or other things I can try?

 2 
 on: Today at 11:01:44 AM 
Started by dsl400 - Last Post by FTDI Community
Hello,

Unfortunately it is not possible to access the EERPOM from the UART side of the IC.

Best Regards,
FTDI Community

 3 
 on: October 14, 2019, 06:28:40 PM 
Started by dsl400 - Last Post by dsl400
Hello forum.

one of my devices decided to die. The usb device is no longer recognized when it is plugged in.
Is it possible to access /read the eeprom of the FT232RQ  from the UART  side ?
thanks

 4 
 on: October 14, 2019, 08:58:06 AM 
Started by atom1477 - Last Post by FTDI Community
Hello,

In 245 Synchronous FIFO mode the TXE_N is an output signal, Transmit FIFO Empty. It is active low and when active it indicates the Transmit FIFO has space and it is ready to receive data from the FIFO master. It indicates there is a minimum, or at least 1 byte of space available.

By the way if you contact support1@ftdichip.com we have a new driver I can provide to you.

Thanks,
FTDI Community

 5 
 on: October 11, 2019, 11:33:14 AM 
Started by FTDI Community - Last Post by FTDI Community
Hi,

We also have a new example which uses LibFT260 in C#. It includes imports for the I2C functions to allow them to be used in managed code. You can also add the UART ones in a similar way if you require these. Here is a draft version of the document and a beta version of the code below.

AN_438 Draft

AN_438 Beta Code

Note that these are subject to change and provided as a draft version only until fully released to our website,

The example may help if you're looking to create your own C# GUI applications using the FT260 etc.

Remember our Shared Projects section on the forum if you would like to show any of your projects which you make with the FT260.

Best Regards, FTDI Community

 6 
 on: October 11, 2019, 08:46:58 AM 
Started by atom1477 - Last Post by atom1477
Are TXE_N really indicates only 1-byte/8-bit free space in FIFO?

FT601Q have 32-bit input/output port. To achieve full throughput, all of this 32 bits should be used.
But:

So it looks like that only 1-byte/8-bit input is correct to manage FIFO. Wider input, with only 1-byte TXE_N indication, could cause overflow the FIFO.
Is it even possible to achieve transmit without losing some of data, in this mode and 32-input?
I misunderstand something, or it is error in the structure of FT601Q, not described in the FT601Q errata?
Or maybe it is error in description, and TXE_N really indicates free words, not free bytes?

 7 
 on: October 09, 2019, 01:06:14 PM 
Started by gordlw - Last Post by gordlw
Hi there, I was hoping someone could help me with a particular issue I was having.
I am currently using the VNC2-32 chip as a USB host and I am trying to communicate with a USB device which has two bulk endpoints:
Snippet from USBView:

Configuration Descriptors:
 wTotalLength:             0x0029
 bNumInterfaces:         0x01
 bConfigurationValue:   0x01
 iConfiguration:            0x00
 bmAttributes:              0xc0
 MaxPower:                  0xfa

Interface Descriptors:
 bInterfaceNumber:      0x00
 bAlternateSetting:       0x00
 bNumEndpoints:          0x00
 bInterfaceClass:           ff
 bInterfaceSubClass:      ff
 bInterfaceProtocol:       ff
 iInterface:                   0x00

Interface Descriptors:
 bInterfaceNumber:         0x00
 bAlternateSetting:          0x01
 bNumEndpoints:            0x02
 bInterfaceClass:             0xff
 bInterfaceSubClass:       0xff
 bInterfaceProtocol:        0xff
 iInterface:                    0x00

Endpoint Descriptors:
 bEndpointAddress:         0x81    IN
 Transfer Type:                Bulk
 wMaxPacketSize:            0x0040 (64)
 bInterval:                      0x00

Endpoint Descriptors:
 bEndpointAddress:          0x02   OUT
 Transfer Type:                Bulk
 wMaxPacketSize:            0x0040 (64)
 bInterval:                      0x00

However with my code I am unable to get handles for these two bulk endpoints, both function calls to retrieve the these endpoint handles return USBHOSTGENERIC_NOT_FOUND. I suspect what the issue is, is that this particular device has an interface with an alternate setting (see  bNumInterfaces: 0x01, bAlternateSetting: 0x01) and that needs to be selected to allow access to these two bulk endpoints.
 (see https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/select-a-usb-alternate-setting).

my code is as follows:

Code: [Select]
// attach for IOCTL call
unsigned char usbhostGeneric_attach(usbhostGeneric_ioctl_t *cb, usbhostGeneric_context_t *ctx)
{
int tempIn, tempOut, tempCtrl;
usbhostGeneric_ioctl_cb_attach_t *atInfo;
// ioctl request block
usbhost_ioctl_cb_t hc_ioctl;
usbhost_ioctl_cb_vid_pid_t hc_iocb_vid_pid;

usb_deviceRequest_t set_configuration;
usb_deviceRequest_t set_alt_interface;

unsigned char status = USBHOSTGENERIC_INVALID_PARAMETER;

atInfo = cb->set.data;
ctx->hc = atInfo->hc_handle;

// find VID/PID
hc_iocb_vid_pid.vid = CUSTOM_VID;
hc_iocb_vid_pid.pid = CUSTOM_PID;

// user ioctl to find first hub device
hc_ioctl.ioctl_code = VOS_IOCTL_USBHOST_DEVICE_FIND_HANDLE_BY_VID_PID;
hc_ioctl.handle.dif = NULL;
hc_ioctl.set = &hc_iocb_vid_pid;
hc_ioctl.get = &atInfo->ifDev;

if (vos_dev_ioctl(ctx->hc, &hc_ioctl) != USBHOST_OK)
{
return USBHOSTGENERIC_NOT_FOUND;
}

do
{
// user ioctl to find control endpoint on this device
hc_ioctl.ioctl_code = VOS_IOCTL_USBHOST_DEVICE_GET_CONTROL_ENDPOINT_HANDLE;
hc_ioctl.handle.dif = atInfo->ifDev;
hc_ioctl.get = &ctx->epCtrl;
tempCtrl = ctx->epCtrl;
if (vos_dev_ioctl(ctx->hc, &hc_ioctl) != USBHOST_OK)
{
status = USBHOSTGENERIC_NOT_FOUND;
break;
}


set_configuration.bmRequestType = USB_BMREQUESTTYPE_HOST_TO_DEV |
  USB_BMREQUESTTYPE_STANDARD |
  USB_BMREQUESTTYPE_DEVICE;
set_configuration.bRequest = USB_REQUEST_CODE_SET_CONFIGURATION;
set_configuration.wValue = 1; // "SetConfiguration(1);"
set_configuration.wIndex = 0;
set_configuration.wLength = 0;
hc_ioctl.ioctl_code = VOS_IOCTL_USBHOST_DEVICE_SETUP_TRANSFER;
hc_ioctl.handle.ep = ctx->epCtrl;
hc_ioctl.set = &set_configuration;
if (vos_dev_ioctl(ctx->hc, &hc_ioctl) != USBHOST_OK)
{
status = USBHOSTGENERIC_NOT_FOUND;
break;
}

set_alt_interface.bmRequestType = USB_BMREQUESTTYPE_HOST_TO_DEV |
  USB_BMREQUESTTYPE_STANDARD |
  USB_BMREQUESTTYPE_INTERFACE;
set_alt_interface.bRequest = USB_REQUEST_CODE_SET_INTERFACE;
set_alt_interface.wValue = 1; // "SetAltInterface(1);"
set_alt_interface.wIndex = 1;
set_alt_interface.wLength = 0;
hc_ioctl.ioctl_code = VOS_IOCTL_USBHOST_DEVICE_SETUP_TRANSFER;
hc_ioctl.handle.ep = ctx->epCtrl;
hc_ioctl.set = &set_alt_interface;
if (vos_dev_ioctl(ctx->hc, &hc_ioctl) != USBHOST_OK)
{
status = USBHOSTGENERIC_NOT_FOUND;
break;
}

// user ioctl to find bulk endpoint on this device
hc_ioctl.ioctl_code = VOS_IOCTL_USBHOST_DEVICE_GET_BULK_IN_ENDPOINT_HANDLE;
hc_ioctl.handle.dif = atInfo->ifDev;
hc_ioctl.get = &ctx->epBulkIn;
tempIn = ctx->epBulkIn;
if (vos_dev_ioctl(ctx->hc, &hc_ioctl) != USBHOST_OK)
{
status = USBHOSTGENERIC_NOT_FOUND;
break;
}

// user ioctl to find bulk endpoint on this device
hc_ioctl.ioctl_code = VOS_IOCTL_USBHOST_DEVICE_GET_BULK_OUT_ENDPOINT_HANDLE;
hc_ioctl.handle.dif = atInfo->ifDev;
hc_ioctl.get = &ctx->epBulkOut;
tempOut = ctx->epBulkOut;
if (vos_dev_ioctl(ctx->hc, &hc_ioctl) != USBHOST_OK)
{
status = USBHOSTGENERIC_NOT_FOUND;
break;
}

status = USBHOSTGENERIC_OK;
}
while (0);

return status;
}

Could someone please help explain what I am doing wrong here? The documentation isn't very clear on how to achieve this, and none of the example code does this either.
Regards,

Gord.


 8 
 on: October 07, 2019, 05:27:25 PM 
Started by bludin - Last Post by bludin
AN_395 doesn't explain how to use the I2C flags for a read-from-register (=combined write/read operation) and the examples do not contain this either, as far as I can see.
I would expect to work the way I outlined it in my initial post, however, it is confusing that there is only an enumeration for FT260_I2C_START_STOP but not for FT260_I2C_REPEATED_START_STOP.

Thanks for your help,
Beat

 9 
 on: October 07, 2019, 04:35:14 PM 
Started by bludin - Last Post by FTDI Community
Hello,

Please refer to AN_395 User Guide for LibFT260.

There are also software examples provided with LibFT260 download.

Best Regards,
FTDI Community

 10 
 on: October 07, 2019, 04:34:49 PM 
Started by Liam - Last Post by FTDI Community
Hello,

What are the differences between the old and new CPU models?

The hub is part of the issue, you have mentioned resetting clears the problem.

Please test with our know good hardware. Links to these are in the previous post.

Best Regards,
FTDI Community

Pages: [1] 2 3 ... 10