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

Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - FTDI Community

Pages: 1 ... 19 20 [21] 22 23 ... 60
301
Hello,

Thank you for your question.

1) Given my use case, am I using the most appropriate mode ?

Yes, give your use case I believe that the CPU-style FIFO interface would be the most appropriate.


2) In changing the port settings for the VCP in Windows 10 Device manager - Port settings - Advanced settings, do I really need to reboot for settiing to take effect ?

No, a reboot is not required, these setting should take effect immediately. But please, close any open VCP connections before altering these settings.
   
3) Is it true that the baud rate setting here is ignored ?

In FIFO modes yes this is correct the baud rate setting is ignored.

4) What exactly do the "Minimum Read/Write Timeout (msec)" settings control ?

These settings control the read and write timeouts for the IC, but for the best performance I would leave these at the default 0msec.

I would suggest alerting the latency timer value. The latency timer can only be set to 1ms minimum for our High Speed USB products and nothing less.
In bulk mode there will usually be no transfer of data until the packet size threshold (64/512) has been reached. However there are conditions where you may never reach this amount of data and you need to transfer a “short” packet. The mechanism to achieve this is called a latency timer timeout. This is simply a mechanism to flush the buffer of the device back to the PC after a pre-set time delay.

Sometimes the inherent behaviour of USB can be a problem and applications cannot be guaranteed throughput.
If there is more USB traffic then the OS and USB have to schedule the communication with each of the USB devices.
It’s highly dependent on the OS and USB Host and is out with our control.

Best Regards,
FTDI Community

302
Discussion - Drivers / Re: FT3XX latency issue
« on: April 27, 2021, 02:06:51 PM »
Hello,

When using bulk USB transfers, it is better to buffer up several readings and then transfer these together. Bulk USB works more efficiently when transferring in larger data packets compared to sending lots of small packets.

The Bulk mode does not offer guaranteed latency and so may also not work in all cases if you want to stream the data in real time where any delay will be noticeable. Many of the USB audio devices which you mentioned on USB2 use the isochronous transfer type which get schedules to offer more consistent latency by the host.

We have the FT602 which uses UVC class instead and so for video-based applications this device would suit well,

Best Regards, FTDI Community

303
Hello,

You need to edit the INF files in the driver install files (2.12.28) to include your changed PID. See this App Note which should help (Section 4):
AN_107_AdvancedDriverOptions_AN_000073.

Connect the device and point the driver install to the INF files that you edited in Device Manager. They should install and device should enumerate ok.
Note that editing the driver files breaks any certification and some OS versions (Windows 7 x64 and newer) require drivers to be certified. See TN_129 Driver Release Signing to try and overcome this problem. Disabling the OS certification check is an easy temporary method.

You can now use FT_PROG to change the VID and PID back to their defaults:
https://ftdichip.com/utilities/#ft_prog

Now the device should enumerate automatically next time it’s connected.

If you have any further problems please contact your local support office:

https://ftdichip.com/technical-support/

Best Regards,
FTDI Community

304
Hello,

Please note that this beta version is now a release version on the FTDI website:

https://ftdichip.com/utilities/#ft_prog

Best Regards,
FTDI Community

305
Hi,

It is normal for the V2EVAL to show two COM ports as it uses a four port FT4232H device which has the COM port enabled on two of it's ports (and uses D2xx for the other two).

The IDE requires to talk to the VNC2 chip on the daughter card before it will show up in the list. Even if the V2EVAL is connected and powered, it will not show if it does not hear a reply back from the VNC2.

If you have the IDE and utilities installed, you can check using vinprg though the command line on Windows, if you run it with the -a switch it should show the device similar to this:
(with relevant serial # from the FT4232H and package type from the VNC2 card)

C:\>vinprg -a
Available debugger interfaces:
V2EVAL Board C (FTTPIM3KC) VNC2 64-pin package

Best Regards, FTDI Community

306
Hello,

We just read the number of bytes in the buffer. We did not output or examine the buffer contents. We could see the values were correct on the USB analyser.

The USBview output is taken when the device is connected to a High-Speed USB host. There will be other speed descriptor for Full-speed USB hosts.

Can this be plugged into a Full-speed host for USB? If not then the USBDescritptor sample code will dump the Full-speed descriptors to the UART. The descriptor may be different for Full-speed.

Which endpoint is being used? Is it being correctly selected by the right Alternate Setting?

Best Regards,
FTDI Community

307
Discussion - Hardware / Re: FT232H is not detecting in FT_Prog
« on: April 20, 2021, 04:52:08 PM »
Hello,

Please email your local support team where we will send a utility to output all the USB parameters which will help debug what the exact issue is:

https://ftdichip.com/technical-support/

Best Regards,
FTDI Community

308
Hello,

We plugged your code into a VNC2 and a Logitech web cam. The code worked straight away with a transfer size of 192 bytes using the simple GET_CUR (probe) and SET_CUR (commit). We used a USB Analyser to observe the output. This particular webcam defaulted to a resolution 320x240 at 15 fps in MJPEG. There were 12 bytes of header per packet leaving up-to 180 bytes of data.

However the program printed out zero bytes per read. The cause is the USB Host read and writes work slightly differently from other read and writes. When a USB host read or write is used the actual length of data transfer is held in the usbhost_xfer_iso_t structure and not in the parameters passed to vos_dev_read/write.

See the page “USB Host Read and Write Operations” in the help file.
“In vos_dev_write() the num_to_write and num_written parameters are ignored and in vos_dev_read() the num_to_read and num_read parameters are ignored as this information is provided and returned in the transfer block.”

Specifically for isochronous transfers the maximum transfer length is specified in the len structure member of the usbhost_xfer_iso_t structure. In the “USB Host Isochronous Transfer Block” page the note for this member says “When the operation completes, the value of len is not updated. However, the transfer length for each frame transaction is updated.” So, the total count of bytes transferred is obtained by reading and checking the condition code of all the deployed len_psw members and summing the sizes there. This is done to ensure that any missed isochronous transfers are accounted for properly in code.

We’ve modified the code as follows and can see 192 bytes reported in the while loop correctly.

                xfer.frame = frame + 1;
               
                *num_read = 0; // LAZ, Added  /*Note this is a pointer and needs dereferenced. */
               
                // now start the read from the ISO endpoint (line 511)
                status = vos_dev_read(ctx->hc, (unsigned char *) &xfer, sizeof(usbhost_xfer_t), num_read); /*(2)*/

                // Sum the total data transferred in each of the isochronous packets for the actual transfer size.
                while (i > 0)
                {
                                *num_read += xfer.len_psw[i - 1].size;
                                i--;
                }
               
                if (status != USBHOST_OK)
                {
                                return UVC_ERROR;
                }

If we set the number of transfers in the usbhost_xfer_iso_t structure to 8 via the ISO_TRANSFER_COUNT macro and disable the printf then we can get meaningful measurements of data transfer from the web cam. In this default resolution the bus utilisation was between 10% and 25%. Maximum throughput can be achieved with the USBHOST_XFER_FLAG_NONBLOCKING set and semaphores used to signal completion as in the original app note code.

Best Regards,
FTDI Community

309
Hello,

If you can get whoever has that keyboard to run the USBDescriptors sample code and log the response then we may be able to help.

Best Regards,
FTDI Community

310
Discussion - Hardware / Re: FT232H failed to program Xilinx XC3S50AN
« on: April 13, 2021, 01:46:31 PM »
Hello,

The FT232H/MPSSE itself is not specific to the type of FPGA but it requires that the programming software supports the MPSSE JTAG programming for the selected target. I have never used xc3sprog but it may be that it does not have support for the XC3S50AN and so it would be worth checking with the developers of the utility.

Best Regards, FTDI Community

311
Hello,

It only works with the one particular camera model that could send data in such a low resolution to be suitable for both the VNC2 and the OLED display.

So, in this example code there is a deliberate dependency on the Logitech Webcam Pro 9000 camera for input. The output format, frames and resolution for the chosen camera and the OLED display are matched.

As for all UVC devices, the USB isochronous reads are matched exactly to the camera output agreed upon by the SET_CUR/GET_CUR during probe exchanges. The parameters requested in the SET_CUR probes are fixed (WebCamApp.c line 320) to what this camera supports and there is no verification in the code that this was accepted by the camera. If the chosen camera does not have a matching mode then it will respond with invalid values in the VProbeAndCom structure in the GET_CUR reply to the probe (line 332) request. You can check the response to the probe request for your cameras at this point before the commit is sent (line 348). The GET_MIN and GET_MAX requests can be used to query likely modes that cameras can support.

The VNC2 is a very mature IC and only operated at Full Speed USB which brings limitations.

Our sister company Bridgetek have an MCU with High Speed USB which is more suited to UVC cameras:

https://brtchip.com/ft900/

The FT9xx Modules (eg MM900EV3A) include an OmniVision OV9655 camera module (1 megapixel).
This uses raw images and doesn’t support compressed images which limits throughput.

FT90x UVC Webcam example includes support for an OmniVision OV5640 (5 megapixel) which is on the CleO Camera module.
This supports compressed MPEG images (compressed) which allows for higher throughputs.
Note some hardware modifications are required to support this camera:

TPS76915DBVR (1.5V) for U17.
FT531GA (2.8V) for U16 and remove C109.

Also there are known issues with the FT90x UVC Webcam example code on our website. We are in the process of uploading a new working version (which can be downloaded on our FTP server for now: AN_414_FT90x_USBD_UVC_Webcam rev 2131.zip).
The example code supports the following resolutions:

QVGA: 320 x 240
VGA: 640x480
SVGA: 800 x 600

Uncompressed at 30fps would only work for QVGA. Lowering the fps would allow for higher resolution.
Compressed at 30fps would work at SVGA.

Higher resolutions and frame rates can be achieved with a different senor and settings.

The FT9xx Toolchain can be used to build, program and make changes to the example code.

Also please note that the MM900EV3A contains RevB silicon. The latest is RevC.
We only have MM900EV1B which contains RevC silicon but we don’t have any RevC hardware with a camera.
The RevB should be ok for test and evaluation purposes though.
You can refer to the following documents:

PCN BRT 005
BRT AN 019 Migration Guide Moving from FT90x Revision B to FT90x Revision C

Best Regards,
FTDI Community

312
Shared Projects / Re: FT4222H Terminal Exerciser .exe application
« on: April 09, 2021, 01:17:26 PM »
Hello,

Thank you for your question.

Unfortunately we have not developed a terminal equivalent application for the FT4222H, but maybe someone else on the forum could help you with this.

We do however have a series of software examples which can be downloaded and used to test the device, these include read/write as well as GPIO examples.

The samples are included in the LibFT4222 download, available in the 'downloads' tab on the product page:
https://ftdichip.com/products/ft4222h/


Best Regards,
FTDI Community

313
Hello,

One of the keyboards in question is an Arduino which may differ from standard USB keyboards.

If there is no traffic then maybe the set idle didn't work. More likely is that there are more than one endpoint or interface on the keyboard. The example code is the simplest one which assumes that the first interface and the first endpoint in that interface is the one to use.

                                // user ioctl to find interrupt endpoint information
                                hc_iocb.ioctl_code = VOS_IOCTL_USBHOST_DEVICE_GET_ENDPOINT_INFO;
                                hc_iocb.handle.ep = epInt;
                                hc_iocb.get = &epInfo;

It might not be of course so an examination of the config descriptor would be needed.
The USBDescriptors example code will tell you on VNC2.

The USBDescriptors program will dump the report descriptors as well. This could be helpful in debugging what's wrong.

Please note, VNC2 is a very mature product which is no longer supported by R&D. It was developed over 10 years ago.

Please note the Vinculum / Vinculum-II may not work with some USB peripheral designs, due to specific design implementations.
We have only tested with particular USB peripherals when the firmware was written many years ago.
The workaround is to use USB peripherals that are working, and disregard ones that are not working.

Another alternative is to use FT90x from our sister company Bridgetek:

https://brtchip.com/ft900/

There are significant benefits of FT9xx:

-Eclipse based IDE
-Source code for API drivers is provided
-Significant performance improvement
-Actively in development by R&D
-Improved documentation and software examples

Example code can be found in AN_360 FT9xx Example Applications.

We provide FT9xx Development Modules and a free FT9xx Toolchain for custom application development.

Best Regards,
FTDI Community

314
Discussion - Software / Re: libftd2xx.a for Apple Silicon
« on: April 05, 2021, 01:18:16 PM »
Hello,

Unfortunately the driver team are still currently working on the VCP driver, but I will see if they can expedite a ARM build for the D2XX drivers:

Is there any news on this? We have several large customers asking for a fully native driver and can't produce one until have an ARM compatible FTDI library.

Best Regards,
FTDI Community

315
Discussion - Drivers / Re: FT231X and Synchronous Bit Bang
« on: April 02, 2021, 04:25:38 PM »
Hello,

Which version of the .net library are you using? The latest can be found here:

https://ftdichip.com/software-examples/code-examples/csharp-examples/

Can you please confirm why you believe the function is not working?

What is the return code after calling the function?

Please note that other function GetBitMode does not actually get the bit mode.
It actually returns the pin state of the I/O pins (used in bit bang mode).
This can be deceiving with the function name.

Please refer to AN_373 Bit-Bang Modes for the FT-X Series which should help you.

Best Regards,
FTDI Community

Pages: 1 ... 19 20 [21] 22 23 ... 60