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 4 ... 10
 11 
 on: April 19, 2024, 12:06:32 pm 
Started by Slava - Last Post by cioma
I believe you can switch between UART and MPSSE (I2C/SPI/JTAG) modes in software using set_bit_mode USB control request but I don't know if it's exposed in FTDI drivers.

 12 
 on: April 19, 2024, 12:01:34 pm 
Started by jaypdx - Last Post by cioma
I worked with FT2232H directly through libusb, without FTDI drivers.

Here are notes from my code regarding latency timer:

Set receive buffer latency timer (vendor-specific command)
Latency Timer is used as a timeout to flush short packets of data back to the host
The default is 16 ms, but it can be altered between 0 ms and 255 ms
At 0 ms latency packet transfer is done on every high speed microframe (every 125 us)
For MPSSE it's recommended to set it to the default 16 ms and use "send_immediate" command to send bytes back to host when required
This approach seems to be working fine for FT2232H but with FT232H there seems to be a latency delay present on the first small packet transfer therefore latency is set to 1
This was observed while programming SPI flash and checking its status register value

 13 
 on: April 19, 2024, 11:49:21 am 
Started by sagar - Last Post by cioma
I've been working with FT2232H a lot but I don't use FTDI drivers, instead I work directly through libusb.

Quote
1. Does FT2232H support 30MHz at JTAG-TCK?

IIRC, yes, I think I measured it at some point.


Quote
2. Is it required for platform to provide 60MHz clock to FTDI or 12MHz crystal is sufficient? Or any other hardware change required?

12 MHz crystal is sufficient, nothing else is needed in HW.


Quote
3. Any reference driver/test to enable FT2232H JTAG TCK operating at 30MHz?

These are notes from my code:

Master clock is 60 MHz after /5 clock divider is disabled
required_clock = master_clock / (2 * (divider + 1))
divider = master_clock / required_clock / 2 - 1

If you set it to 30 MHz but actually measure 6 MHz then the /5 clock divider is enabled.


 14 
 on: April 17, 2024, 05:22:09 am 
Started by sagar - Last Post by sagar
Hi

I was trying to use FT2232H Channel A as JTAG and configured it. I have enabled JTAGHiSpeed API's from driver and disabled divide_by_5, to get 30MHz as TCK. But when I probe, I see 6MHz at TCK Pin.

1. Does FT2232H support 30MHz at JTAG-TCK?
2. Is it required for platform to provide 60MHz clock to FTDI or 12MHz crystal is sufficient? Or any other hardware change required?
3. Any reference driver/test to enable FT2232H JTAG TCK operating at 30MHz?

 15 
 on: April 12, 2024, 02:59:01 am 
Started by TonySH - Last Post by TonySH
Hi,
  I got it, thank you.

Best Regards
Tony

 16 
 on: April 11, 2024, 02:45:46 pm 
Started by TonySH - Last Post by FTDI Community
Hi Tony,

Your only option would be to add some external pulldown on the GPIOH pins. Even if they have been set as low and input, if there is no connection they will be pulled high by the internal pullups.

Best Regards
FTDI Community

 17 
 on: April 11, 2024, 08:05:09 am 
Started by TonySH - Last Post by TonySH
Hi,
  I do connect the GPIOH with the slave device, I use GPIO to listen pull-high signal from the slave when the slave have data to send to the master via SPI.
 
  It works on our windows application used 232H and slave device when they are both power on. but it is a little bit bothered that I need to add time stamp in the test log and find out the first successful transfered message.
 
  I expect that I run my windows application first, and power on the slave device in second action, then the first log message on the application is what I need. so far, I will get the redundant message because of the default state "TriSt-PU" when starting to run the application. On my current test SOP, the default state is the fake signal for my application. How do I bypass this default state?

Quote
8. TriSt-PU – Input pulled up, not used
  Is the definition of TriSt-PU as defined above? What is the definition of "used"? I use FT_writeGPIO() to initialize to zero, is it not defined as "used"?

Best Regards
Tony

 18 
 on: April 10, 2024, 03:47:23 pm 
Started by TonySH - Last Post by FTDI Community
Hi Tony,

The default for these GPIO pins is TriSt-PU. See table 5.1 in FTDI Device Input Output pin States.

what are you planning on connecting the GPIOH pins to? have you tried connecting the pins to a slave device and performing a GPIO read?

Best Regards
FTDI Community

 19 
 on: April 10, 2024, 10:20:45 am 
Started by kiran - Last Post by FTDI Community
Hello,

When using LibMPSSE, GPIOL[0:3] can only be used as SPI chip selects.
 
When using LibMPSSE, there is no way to control GPIOL[0:3] as GPIO.
 
LibMPSSE demonstrates controlling the higher line bytes (GPIOH) while using SPI on the lower line bytes using the following functions:
 
FT_WriteGPIO
FT_ReadGPIO
 
If you want to control some of the unused lower line bytes on the same ADBUS as SPI then see AN_411 FTx232H MPSSE I2C Master Example in C which demonstrates GPIO usage with MPSSE using D2xx direct (not using LibMPSSE).
This could be used as a base to understand using both SPI/GPIO in the same code.
OK this example is for I2C but the same principles apply to SPI.

Best Regards
FTDI Community

 20 
 on: April 10, 2024, 02:00:28 am 
Started by axxel95 - Last Post by axxel95
Hi everybody

I'm trying to read an external I2C 24LC256 eeprom content using a FT2232D connected to the computer with USB
I have a very old (2007) c++ application that works and I can see the signals with a logic analyser (az delivery + saelae)

But when I try to do it with a new c# code, it fails. Here is my code to read 32 bytes

using Iot.Device.Ft232H;
using Iot.Device.FtCommon;
using System.Device.I2c;
....
Ft232HDevice ft232h = new Ft232HDevice(FtCommon.GetDevices()[0]);
I2cConnectionSettings i2cSettings = new I2cConnectionSettings(0, 0xA0);
I2cDevice i2cDevice = ft232h.CreateI2cDevice(i2cSettings);
byte[] b = new byte[32];
i2cDevice.WriteByte(0);
i2cDevice.WriteByte(0);
i2cDevice.Read(b);
Console.WriteLine(BitConverter.ToString(b));


When I look the logic analyser, there is no signal between the FT2232D and the EEPROM
It would be great if someone could give me any idea to fix this...
Thanks

Pages: 1 [2] 3 4 ... 10