FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  


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
 on: September 30, 2022, 04:34:29 PM 
Started by kalesha - Last Post by FTDI Community

Does you Microcontroller already have UART or say I2C ports?
If so you could consider that method rather than using FT230X which would complicate your design by adding an additional USB Host.

If you require a USB Host capable of hosting FTDI devices then the best solution I can recommend is FT90x from our sister company Bridgtek.

See AN 360 FT9xx Example Applications section 2.23.6 USBH Example FT232.

Take a look at FT90x UART to FT232 Host Bridge, there is already a software example which can host FTDI devices including FT230X.
A video has been created which demonstrates this:


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

If you require support with this IC then please contact Bridgetek for support:

Best Regards,
FTDI Community

 on: September 30, 2022, 12:28:15 PM 
Started by ohnthomas - Last Post by FTDI Community
Your company has already contacted us via email about this issue, please continue to work with us via email.   

FTDI Community

 on: September 30, 2022, 06:23:48 AM 
Started by kalesha - Last Post by kalesha
Is there any alternate way to communicate two boards like in one board USB device and other board has USB host IC so that the boards can communicate. Suggest one USB Host IC

 on: September 29, 2022, 05:01:38 PM 
Started by ohnthomas - Last Post by ohnthomas

Our system environment and issue are as follows.
- OS: ubuntu 22.04
- Multi device: 8 x ft601q devices are used
- Linux driver version: previous version other than 0.6.4
- Issue: The device list (result of FT_CreateDeviceInfoList) does not work properly.

In driver 1.0.0, the device list works normally, but we cannot use our existing code.

I think the best way is to use version 0.6.4.
Can you provide a linux device driver(0.6.4) for ft601?

 on: September 29, 2022, 04:31:04 PM 
Started by kalesha - Last Post by FTDI Community

FT230XS is a USB device and must be connected to a USB Host.

So you can't connect two of them together like that with the USB signals.

Best Regards,
FTDI Community

 on: September 29, 2022, 08:22:09 AM 
Started by kalesha - Last Post by kalesha
I have two boards which has FT230XS and interfaced with microcontroller and now I want to communicate those two boards using FT230XS as bridge

My doubt is how to connect two FT230XS signals (DP DM VCC GND) from one board to other board, we tried connected usb-usb cable and we drive voltage over VCC and found not communicating each other

Both boards working individually when connected to PC.

 on: September 27, 2022, 06:34:18 PM 
Started by a4711 - Last Post by a4711
I am observing an issue when calling FT4222_I2CMaster_GetStatus() after FT4222_I2CMaster_Write().

I am doing this:

Code: [Select]
FT4222_STATUS stat = FT4222_I2CMaster_Write(data_handle, slaveAddress_, data, size, &bytesWritten);
if (stat != FT4222_OK)
    throw std::runtime_error("Error writing data over FT4222");
uint8_t flags = 0;
do {
    for (uint32_t retries = 3; retries > 0; --retries) {
        stat = FT4222_I2CMaster_GetStatus(data_handle, &flags);
        if (stat == FT4222_OK)
        // Add an arbitrary wait time
    if (stat != FT4222_OK)
        throw std::runtime_error("Error reading status from FT4222");
    if (I2CM_DATA_NACK(flags) || I2CM_ADDRESS_NACK(flags))
        throw std::runtime_error("The peripheral did not acknowledge the message as expected");
} while (!I2CM_IDLE(flags));

I read the status after the write operation because FT4222_I2CMaster_Write() returns before the FT4222 has written all data. I need to verify that the transaction completed.

After about 90 minutes of heavy traffic I am sometimes observing that the SCL line is stuck low and flags reports 0x40 (bus busy) forever. I can confirm that the peripheral is not the problem. The SCL line remains low even when I disconnect the peripheral in that situation. It seems that the FT422 is the problem. In that case, the last message being sent is corrupted: The address is wrong and hence the peripheral device does not acknowledge the message.

Now I found this information in the errata sheet https://ftdichip.com/wp-content/uploads/2022/03/TN_161_FT4222H-Errata-Technical-Note.pdf:

An error would happen when i2c master is writing data and FT4222_I2CMaster_GetStatus is being called
at the same time.

Call FT4222_I2CMaster_GetStatus after the end of i2c transmission.

The wording in the errata sheet is confusing. In above code snippet I call FT4222_I2CMaster_GetStatus() after FT4222_I2CMaster_Write(). But I also know that FT4222_I2CMaster_Write() may return while the transmission on the bus is ongoing which is not explicitly described in the application note.
Could you therefore please answer the following questions:

  • Is above code affected by the problem described in the errata?
  • If yes, how do I determine the end of the i2c transmission so that I can immediately verify success/fail of the transaction? Feel free to take and change my code from above.

Thank you in advance.

 on: September 22, 2022, 10:44:31 AM 
Started by a4711 - Last Post by FTDI Community

If you call FT4222_ChipReset / FT4222_Close, you need to restart all chip configuration process from the beginning.

Best Regards

FTDI Community

 on: September 21, 2022, 11:30:51 AM 
Started by gripennn - Last Post by FTDI Community
Hi Michal,

The recommended way of connecting VBUS depends on your application:

 (a)  For self-power application, refer to the UMFT600x/UMFT601x datasheet;

(b)  For bus-power application, VBUS is the 5V power input for all circuits. If a 5V to 3.3V regulator is used, connect the 3.3V to the FT601 VBUS pin.

 Note, the voltage divider in the Development Module between the USB power and VBUS pin is used to lower the voltage level from 5V to 3.3V so that FT601 can take it as a 3.3V logic input for VBUS sensing purpose.

If you haven’t already, please refer to AN_412 FT600/FT601 Bridge Chips Integration. This application note is for designers who want to integrate the FT60x into new designs. As well as this have a look at our FT600Q-FT601Q SuperSpeed USB3.0 IC Datasheet and Technical Note TN_168 FT600_601 Errata Technical Note.

Best Regards
FTDI Community

 on: September 20, 2022, 07:19:13 PM 
Started by a4711 - Last Post by a4711
After about 60-90 minutes heavy I2C traffic I run into the situation that the FT4222 holds the SCL line (yes the clock line, not SDA) low and FT4222_I2CMaster_GetStatus() keeps reporting 0x4e as status flags (error condition, bus busy, slave address not acknowledged, data not acknowledged). Further read/write transactions always fail. It's indeed the FT4222 that keeps pulling the SCL line low, because the SCL line remains low even when disconnecting the slave but keeping the pull-ups connected.

Though closing and reopening the FT_Handle does make it work again, the GPIO interrupt timing is not as expected. Only disconnecting/reconnecting the USB cable resets the original behavior.

As a workaround I would like to perform FT4222_ChipReset() right after opening the driver handle, but the function is not working as expected and it's also unclear what the function exactly does. I call FT4222_ChipReset() after FT_open() as shown in the application note. Calling FT4222_I2CMaster_Init() right after that returns FT4222_DEVICE_NOT_SUPPORTED.

I would like to have an advice how to properly use FT4222_ChipReset(), especially what to do after the function call. Is some delay needed? Do I need to close and re-open the driver instance? The example in the application note is not sufficient and indicates that I can just call this function after FT_Open() and before other things.


Pages: [1] 2 3 ... 10