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.

Topics - HI_type

Pages: [1]
1
Discussion - Software / FT4222H - Clock rate issues and pauses. Again?
« on: October 12, 2021, 07:17:04 AM »
Hello

After finding the FT260 not suitable to our purpose due to inherent limitations of HDI (https://www.ftdicommunity.com/index.php?topic=705.0), we jumped on the FT4222H but see similar issues again:


- Requesting a 2 MBit clock, the chip sents the address byte at a meager 40 kBit. [-> "16 Bytes Write 2000 kbps (addr measurement).png"]

- There is still a pause in the range of a byte time and more. [-> "16 Bytes Write 2000 kbps (payload gap measurement).png"]

- At 800kBit, the clock starts out correctly and even has the first 2 bytes abutted, but then shows a sending pattern with gaps. [-> "16 Bytes Write 800 kbps (payload gap measurement)(2).png"]


Can FTDI or someone else propose an approach which does not show the above issues?
We are limited by maximum clock speed but need to reach a minimum data throughput. The gaps, more or less, half effective throughput, the clock timing issue in the first byte on the 2 MBit packet defeats the purpose of using a higher clock rate.


Setup:
- UMFT4222EV-D board with pull-ups only (no slave connected).
- LibFT4222 on top of the D2XX driver.
- Repeated start send routine.
- We tested setting the FT4222_SetClock (ftHandle, clock) to SYS_CLK_24 and every other option. SYS_CLK_60 worked best (Which i believe was stated as the default).
- OS: Windows 10; Programming language: Delphi.
- The test software is virtually identical to the pseudo-code shown in the FT260 post linked above, simply replaced the calls to the new library.

As we assume the hardware is more than capable of sending an infinite stream of bytes abutted, I post this in the software section of the forum. If someone knows for a fact that this assumption is wrong, let us know.

2
Discussion - Software / FT260 - Pauses in I2C comunication.
« on: July 27, 2021, 09:41:43 AM »
Hello

Hope this is the right place to ask.

Problem: Using LibFT260 (form here: https://ftdichip.com/products/ft260q/) we can successfully read from our slave device, but at an effective speed lower than the clock speed would allow. The issue is pauses in between frames:

X -> Byte + ACK
_ -> Clock held low by FT260 (Pause)

XX_X_X_X_X....

See attached images. The slave device is not clock stretching as it has a weak driver and it is clearly visible by the low level of the clock when that happens. The duration of the pause at 2Mbit clock is shorter than at 400kbit.

The pauses occur during read and write.

Questions:
- Is the FT260 capable of communicating without these pauses?
- If so, how, and can it be done with the dll provided in LibFT260?

Our software Engineer has provided c++ pseudo code to illustrate what he is doing:

##############################################################
FT260_HANDLE FFT260Handle;
FT260_STATUS status;
...
uint32 kbps = 400;
int dwBytesToWrite = 7;
uint8 writeBuffer[dwBytesToWrite] = (0x01, 0x81, 0x80, 0x00, 0x00, 0xA0, 0x15);
DWORD dwBytesToRead = 14;
uint8 deviceAddress = 0x60;
uint8 readBuffer[dwBytesToRead];
DWORD dwBytesReturned;
...
    status = FT260_I2CMaster_Init(FFT260Handle, kbps);
    if (status== FT260_OK)
    {
       status= FT260_I2CMaster_Write(FFT260Handle, deviceAddress,
          FT260_I2C_START, writeBuffer, dwBytesToWrite, dwBytesWritten);
       if (status== FT260_OK)
       {
           status= FT260_I2CMaster_Read(FFT260Handle, deviceAddress,
              FT260_I2C_START_AND_STOP, readBuffer, dwBytesToRead, dwBytesReturned);     
       }
...   
    }
##############################################################

Pages: [1]